This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
StringIndexOutOfBoundsException occurs and the explorer view of the package is not correct. How to reproduce ---------------- 1. Mount a directory (ex. /opt/ffj-applet). 2. Open the context menu from the mounted directory -> Click "NewPackage" 3. "Create New Package" dialog is opened. 4. Type Japanese package name in "Name" field. 5. The package is displayed correctly in Japanese in Explorer. 6. Open the context menu from the package -> Click "New" -> Click "AWT Forms" -> Click "Applet" or -> Click "New" -> Click "Swing Forms" -> Click "JApplet" 7. New Form Template Wizard is opened. 8. Type Japanese object name in "Name" field and push "Finish" button. 9. New Applet/JApplet is produced and its Form Editor and Source Editor are opened. 10. Add some component on each Applet/JApplet. Test environment ---------------- Forte for Java, EE v.3.0 (Build 010420_1) JDK 1.3.0 Solaris 8 u2, ja_JP.ja_EUC Issue ----- After step 9, in the Explorer class object can't be displayed. Please see the attached snapshot of Explorer. English "applet" package (upper) has 2 nodes of the class and frame object. Japanese "applet" package (lower) has 1 node of the frame object. Please see attached snapshots of Source Editor, also. These are the same code without package. package_en.gif : in case of English package name. package_ja.gif : in case of Japanese package name. However compilation (External - JDK1.3, Internal, fastjavac) and execution (AppletViewer and internal web browser) are succeeded with no error. Right after step 7 and 10, the exception comes out. [From ide.log] Exception during processing of org.netbeans.modules.java.parser.ParsingSupport$Processor@142a3f java.lang.StringIndexOutOfBoundsException: String index out of range: -7 at java.lang.String.substring(String.java:1515) at java.lang.String.substring(String.java:1482) at org.netbeans.modules.java.gj.ParserEngine.findClazzFile(ParserEngine.java:298) at org.netbeans.modules.java.gj.ParserEngine.symbolsComputed(ParserEngine.java:308) at org.netbeans.lib.javac.v8.comp.ParsingEnter._case(ParsingEnter.java:75) at org.netbeans.lib.javac.v8.tree.Tree$ClassDef.visit(Tree.java:389) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465) at org.netbeans.lib.javac.v8.comp.Enter._case(Enter.java:479) at org.netbeans.lib.javac.v8.tree.Tree$TopLevel.visit(Tree.java:326) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465) at org.netbeans.lib.javac.v8.comp.Enter.main(Enter.java:632) at org.netbeans.modules.java.gj.ParserEngine.attributeTree(ParserEngine.java:179) at org.netbeans.modules.java.gj.ParserEngine.parseObject(ParserEngine.java:150) at org.netbeans.modules.java.gj.JavaParserEngine.process(JavaParserEngine.java:107) at org.netbeans.modules.java.parser.ParsingSupport$Processor.process(ParsingSupport.java:635) at org.netbeans.modules.java.parser.ParsingSupport$Processor.parseLockModel(ParsingSupport.java:595) at org.netbeans.modules.java.parser.ParsingSupport$Processor.run(ParsingSupport.java:535) at org.openide.util.Task.run(Task.java:124) at org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:626) Exception during processing of org.netbeans.modules.java.parser.ParsingSupport$Processor@369767 java.lang.StringIndexOutOfBoundsException: String index out of range: -7 at java.lang.String.substring(String.java:1515) at java.lang.String.substring(String.java:1482) at org.netbeans.modules.java.gj.ParserEngine.findClazzFile(ParserEngine.java:298) at org.netbeans.modules.java.gj.ParserEngine.symbolsComputed(ParserEngine.java:308) at org.netbeans.lib.javac.v8.comp.ParsingEnter._case(ParsingEnter.java:75) at org.netbeans.lib.javac.v8.tree.Tree$ClassDef.visit(Tree.java:389) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465) at org.netbeans.lib.javac.v8.comp.Enter._case(Enter.java:479) at org.netbeans.lib.javac.v8.tree.Tree$TopLevel.visit(Tree.java:326) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465) at org.netbeans.lib.javac.v8.comp.Enter.main(Enter.java:632) at org.netbeans.modules.java.gj.ParserEngine.attributeTree(ParserEngine.java:179) at org.netbeans.modules.java.gj.ParserEngine.parseObject(ParserEngine.java:150) at org.netbeans.modules.java.gj.JavaParserEngine.process(JavaParserEngine.java:107) at org.netbeans.modules.java.parser.ParsingSupport$Processor.process(ParsingSupport.java:635) at org.netbeans.modules.java.parser.ParsingSupport$Processor.parseLockModel(ParsingSupport.java:595) at org.netbeans.modules.java.parser.ParsingSupport$Processor.run(ParsingSupport.java:535) at org.openide.util.Task.run(Task.java:124) at org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:626) Add component ------------- Exception during processing of org.netbeans.modules.java.parser.ParsingSupport$Processor@1a1f java.lang.StringIndexOutOfBoundsException: String index out of range: -6 at java.lang.String.substring(String.java:1515) at java.lang.String.substring(String.java:1482) at org.netbeans.modules.java.gj.ParserEngine.findClazzFile(ParserEngine.java:298) at org.netbeans.modules.java.gj.ParserEngine.symbolsComputed(ParserEngine.java:308) at org.netbeans.lib.javac.v8.comp.ParsingEnter._case(ParsingEnter.java:75) at org.netbeans.lib.javac.v8.tree.Tree$ClassDef.visit(Tree.java:389) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465) at org.netbeans.lib.javac.v8.comp.Enter._case(Enter.java:479) at org.netbeans.lib.javac.v8.tree.Tree$TopLevel.visit(Tree.java:326) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:451) at org.netbeans.lib.javac.v8.comp.Enter.classEnter(Enter.java:465) at org.netbeans.lib.javac.v8.comp.Enter.main(Enter.java:632) at org.netbeans.modules.java.gj.ParserEngine.attributeTree(ParserEngine.java:179) at org.netbeans.modules.java.gj.ParserEngine.parseObject(ParserEngine.java:150) at org.netbeans.modules.java.gj.JavaParserEngine.process(JavaParserEngine.java:107) at org.netbeans.modules.java.parser.ParsingSupport$Processor.process(ParsingSupport.java:635) at org.netbeans.modules.java.parser.ParsingSupport$Processor.parseLockModel(ParsingSupport.java:595) at org.netbeans.modules.java.parser.ParsingSupport$Processor.run(ParsingSupport.java:535) at org.openide.util.Task.run(Task.java:124) at org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:626) --- End.
Created attachment 1242 [details] The same class object in English and Japanese package name.
Created attachment 1243 [details] The source code in English package.
Created attachment 1244 [details] The source code in Japanese package.
It's impossible to fix this bug in NetBeans 3.2 (RC-4 build is scheduled tonight). The most probable cause is nonportable handling of Name objects in the netbeans-internal compiler bridge.
Problem found. We will check for the similar ones. Fix will be applied to the main trunk only.
Fixed in main trunk
Akiko Mochizuki verified this fix on [010504_1] and [dev-181]
Consistent use of the I18N keyword.
Resolved for 3.4.x or earlier, no new info since then -> closing.