United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7053724 Incorrect char conv. in UTF-16 and exception occurs in com.sun.tools.javac.parser.Scanner in jdk5u30
JDK-7053724 : Incorrect char conv. in UTF-16 and exception occurs in com.sun.tools.javac.parser.Scanner in jdk5u30

Details
Type:
Bug
Submit Date:
2011-06-11
Status:
Resolved
Updated Date:
2013-04-20
Project Name:
JDK
Resolved Date:
2011-10-19
Component:
tools
OS:
windows_xp
Sub-Component:
launcher
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
5.0u30
Fixed Versions:
5.0u33 (b09)

Related Reports

Sub Tasks

Description
When a JavaSE licensee's customer runs a progam which uses UTF-16 encoding, 
NullPointerException occurs in JDK5u30.

===>
null:1: \11893 is invalid character.                               <=== (A)
A problme detected during parsing.                              <=== (A)
Details, please refer to the following stack trace           <=== (A)
java.lang.NullPointerException
        at com.sun.tools.javac.util.Log.printErrLine(Log.java:202)
        at com.sun.tools.javac.util.Log.printDiagnostic(Log.java:266)
        at com.sun.tools.javac.util.Log.error(Log.java:315)
        at com.sun.tools.javac.parser.Scanner.lexError(Scanner.java:434)
        at com.sun.tools.javac.parser.Scanner.lexError(Scanner.java:455)
        at com.sun.tools.javac.parser.Scanner.nextToken(Scanner.java:1343)
        at com.sun.tools.javac.parser.Parser.ident(Parser.java:334)
        at com.sun.tools.javac.parser.Parser.qualident(Parser.java:368)
        at com.sun.tools.javac.main.JavaCompiler.resolveIdent(JavaCompiler.java:306)  <=== (B)
        at com.sun.tools.apt.mirror.declaration.DeclarationMaker.nameToSymbol(DeclarationMaker.java:149)
        at com.sun.tools.apt.mirror.declaration.DeclarationMaker.getTypeDeclaration(DeclarationMaker.java:126)
        at com.sun.tools.apt.mirror.apt.AnnotationProcessorEnvironmentImpl.getTypeDeclaration(AnnotationProcessorEnvironmentImpl.java:85)
        at TestAPF$TestAnnotationProcessor.process(TestAPF.java:39)
        at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
        at com.sun.tools.apt.comp.Apt.main(Apt.java:454)
        at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:448)
        at com.sun.tools.apt.main.Main.compile(Main.java:1075)
        at com.sun.tools.apt.main.Main.compile(Main.java:938)
        at com.sun.tools.apt.Main.processing(Main.java:95)
        at com.sun.tools.apt.Main.process(Main.java:85)
        at com.sun.tools.apt.Main.process(Main.java:67)
        at CompiletTest.main(CompiletTest.java:16)
<=====

NOTE:
  As to the lines of (A), messages are shown in Japanese. 
  The above messages are translated into Japanese by submitter.
  The original stack trace is attached as original-stack-trace.txt(can be seen in Japanese.).


CONFIGURATION:
 JDK: JDK5u30( 32bits)
 OS : WIndowsXP(SP3, **Japanese**, 32bits)
      (This problme does not occur in WinXP english edition.)


REPRODUCE:
1. Compile the attahced CompileTest.java and TestAPF.java
   ex.
    javac -classpath .;F:\export2\java\jdk1.5.0_30\lib\tools.jar CompileTest.java
2. Invoke Compile.class
  ex.
   java -classpath .;F:\export2\java\jdk1.5.0_30\lib\tools.jar CompileTest

You will see the above-listed NPE and exception messages.

NOTE:
  com.sun.tools.javac.parser.Scanner does not use UTF-16 encoding/decoding correctly.

  A little bit more details, String data passed to 
    AnnotationProcessorEnvironment.getTypeDeclaration(String name)
  is encoded by default encoding(MS932)  and converted byte array in com.sun.tools.javac.parser.Scanner.
 
  Then, this converted byte array is converted to char array by the encoding type which is specified to 
   com.sun.tools.apt.Main.process().
   The incorreect conversion seems to occurduring this operation of UTF-16.

   For more detail data used in the test program unternally, please see the data-log.txt(can be seen in
   Japanese.)

                                    

Comments
EVALUATION

Request for deferral as this bug is been reported on 5u30. We will look into it as a potential candidate for 7u2 if the issue is still there on the 7 code base.
                                     
2011-06-13



Hardware and Software, Engineered to Work Together