Today I've checked out a colleagues modules and got right away a
compile error. It was complaining that a method was not overriding a
method in any superclass. First I thought this error was caused due to
some changes in the library the class was based on. But the colleague
told me that he had checked in the latest version of the code and the
used libraries. While I was at his workplace to ask him some details
about his module he showed me the code in the IDE and there were no
error markers but it was the absolutely same code that I had.
So I've took a closer look and it turned out that the method in
question was implementing an interface method. So googling for "java interface override"
brought me to Stackoverflow.
In a comment to the answer there was a hint that the semantic of @Override annotation has
changed. In Java 6 it is allowed to annotate methods that implement an
interface while it is forbidden in Java 5. So checking the compile
options it turned out that my colleague had Java 6 while I had Java 5
enabled. After I adjusted my compile settings to Java 6 everything
worked fine.