Edit: Why the down vote?
Still, this isn't the easy solution. The easy solution is to use a process and terminate it if it takes too long. Threads can't be reliably terminated, and especially not without accidentally ruining internal state. (what happens with locks? etc.)
One of the strengths of threads is that they don't have strong protection. If he wants runtime safety like that he should learn what a process is.
2) look at the docs for @deprecated: http://cupi2.uniandes.edu.co/web/javadoc/j2se/1.5.0/docs/api... "A program element annotated @Deprecated is one that programmers are discouraged from using, typically because it is dangerous, or because a better alternative exists. Compilers warn when a deprecated program element is used or overridden in non-deprecated code."
It says it is dangerous, and says nothing about it being removed in a future release.
That's the really big misunderstanding here. @deprecated as an API annotation does not mean "going to be removed in a future release".
Go use deprecated functions and be pleased when the compiler warns you nicely.