Name: nt126004 Date: 02/28/2003
FULL PRODUCT VERSION :
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
FULL OPERATING SYSTEM VERSION :
n/a
ADDITIONAL OPERATING SYSTEMS :
only observed this on Linux, could not reproduce on Solaris.
A DESCRIPTION OF THE PROBLEM :
javac generates deprecated warnings when a class implements
a deprecated method from an ancestor class or interface.
Deprecation warnings should not be generated for methods that
are themselves declared "@deprecated" either simply because
the implement the method or because they call deprecated methods.
This looks very similar to bug 4750187.
EXPECTED VERSUS ACTUAL BEHAVIOR :
The provided will generate a deprecated warning while
compiling bar with javac because bar implements useless().
If a method implementation itself includes a @deprecated
directive, then the compiler should omit the deprecated
warning. Doing so makes the deprecated warnings more relevant.
STEPS TO REPRODUCE THE PROBLEM :
javac -deprecation deprecated.java
rm two/bar.class
javac -deprecation deprecated.java
ERROR MESSAGES/STACK TRACES THAT OCCUR :
javac -deprecation deprecated.java
./two/bar.java:21: warning: useless() in one.foo has been deprecated
public foo useless() {
^
1 warning
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
--- foo.java ---
package one;
public interface foo {
/**
something
@deprecated no longer used.
**/
foo useless();
/**
**/
foo useful();
}
--- bar.java ---
package two;
import one.foo;
public class bar implements foo {
/**
whatever
@deprecated because i have to
**/
public foo useless() {
return this;
}
/**
because i want to.
**/
public foo useful() {
return this;
}
}
--- deprecated.java ---
import one.foo;
import two.bar;
public class deprecated {
/** Creates a new instance of deprecated */
public deprecated() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
foo foofoo = new bar();
}
}
---------- END SOURCE ----------
(Review ID: 181583)
======================================================================
- duplicates
-
JDK-4346296 Overriding deprecated method with @deprecated method should not give warning
-
- Closed
-