-
Bug
-
Resolution: Fixed
-
P3
-
5.0, 6, 7
-
b04
-
generic, x86
-
generic, windows_xp
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2213716 | 7u2 | Joe Darcy | P4 | Closed | Fixed | b08 |
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b99)
Java HotSpot(TM) Client VM (build 1.6.0-rc-b99, mixed mode)
Does this problem occur on J2SE 1.4.x or 5.0.x ? Yes / No (pick one)
Yes in build 1.5.0_08-b03.
Operating System Configuration Information (be specific):
Windows XP sp-2
Hardware Configuration Information (be specific):
Intel Pentium IV 3GHz
Bug Description:
GenericSignatureFormatError when signature includes nested inner classes.
Steps to Reproduce (be specific):
1) Compile the following source code.
/// Start Source ///
import java.lang.reflect.*;
public class SignatureTest0<T> {
class Inner1 {
class Inner11 {
}
}
public void f(SignatureTest0<String>.Inner1.Inner11 x) {}
public void g(SignatureTest0<String>.Inner1 x) {}
public static void main(String[] args) throws Exception {
Class clazz = SignatureTest0.class;
Method[] methods0 = clazz.getDeclaredMethods();
for(int i=0; i < methods0.length; i++) {
Method m0 = methods0[i];
System.out.println("#" + i + ". " + m0);
m0.getGenericParameterTypes();
}
}
}
/// End Source ///
2) Run the test case using the command "java SignatureTest0"
3) You get the following output.
#0. public static void SignatureTest0.main(java.lang.String[]) throws java.lang.
Exception
#1. public void SignatureTest0.f(SignatureTest0$Inner1$Inner11)
Exception in thread "main" java.lang.reflect.GenericSignatureFormatError
at sun.reflect.generics.parser.SignatureParser.error(SignatureParser.java:103)
at sun.reflect.generics.parser.SignatureParser.parseSimpleClassTypeSignature(SignatureParser.java:262)
at sun.reflect.generics.parser.SignatureParser.parseClassTypeSignatureSuffix(SignatureParser.java:270)
at sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature(SignatureParser.java:244)
at sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(SignatureParser.java:228)
at sun.reflect.generics.parser.SignatureParser.parseTypeSignature(SignatureParser.java:359)
at sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreTypeSignatures(SignatureParser.java:469)
at sun.reflect.generics.parser.SignatureParser.parseFormalParameters(SignatureParser.java:446)
at sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:436)
at sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:141)
at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:37)
at sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:25)
at sun.reflect.generics.repository.AbstractRepository.<init>(AbstractRepository.java:56)
at sun.reflect.generics.repository.GenericDeclRepository.<init>(GenericDeclRepository.java:30)
at sun.reflect.generics.repository.ConstructorRepository.<init>(ConstructorRepository.java:33)
at sun.reflect.generics.repository.MethodRepository.<init>(MethodRepository.java:28)
at sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:41)
at java.lang.reflect.Method.getGenericInfo(Method.java:94)
at java.lang.reflect.Method.getGenericParameterTypes(Method.java:282)
at SignatureTest0.main(SignatureTest0.java:19)
- backported by
-
JDK-2213716 (reflect) GenericSignatureFormatError When signature includes nested inner classes
- Closed
- duplicates
-
JDK-6470192 (reflect) Field.getGenericType() throws GenericSignatureFormatError
- Closed
- relates to
-
JDK-6973212 Hidden type variable incorrectly represented in generic superclass signature
- Open
-
JDK-7052360 (reflect) GenericSignatureFormatError When signature includes nested inner classes
- Closed
-
JDK-7035160 (reflect) test/java/lang/reflect/Generics/Probe.java failing
- Closed
-
JDK-6199150 (reflect) Bad interaction between generic signatures, inner classes, and reflection
- Closed
-
JDK-7052878 javac needs tests for reading/writing generic signature attributes
- Closed
-
JDK-7055295 (reflect) add conventional constructor to GenericSignatureFormatError
- Closed