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.

Bug 15634 - Sometimes impl. gen. show exception dialog
Summary: Sometimes impl. gen. show exception dialog
Status: CLOSED FIXED
Alias: None
Product: obsolete
Classification: Unclassified
Component: corba (show other bugs)
Version: -FFJ-
Hardware: Sun Solaris
: P3 blocker (vote)
Assignee: Tomas Zezula
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-09-19 13:42 UTC by issues@www
Modified: 2005-03-09 04:28 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description issues@www 2001-09-19 13:42:53 UTC
Description: 
This bug is hard to reproduce (once per 100 generations)
Exception dialog is shown this exception:


org.netbeans.modules.corba.utils.AssertionException: null
org.netbeans.modules.corba.utils.AssertionException
        at org.netbeans.modules.corba.utils.Assertion.assert(Assertion.java:40)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.work_with_guarded(ImplGenerator.java:2207)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.work_with_guarded(ImplGenerator.java:2221)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.work_with_guarded_blocks(ImplGenerator.java:3154)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.create_guarded_blocks(ImplGenerator.java:3171)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.synchronise_implementation_class(ImplGenerator.java:3466)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.synchronise_interface_class(ImplGenerator.java:3475)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate_interface(ImplGenerator.java:3878)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate_from_element(ImplGenerator.java:4074)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate_from_element(ImplGenerator.java:4068)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate(ImplGenerator.java:4174)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator$2.run(ImplGenerator.java:4377)
        at org.openide.util.Task.run(Task.java:124)
[catch] at
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:626)


When you add printing of stack trace catched exception on ImplGenerator:2207,
you will get this:


java.lang.StringIndexOutOfBoundsException: String index out of range: 4002
        at java.lang.String.charAt(String.java:516)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.work_with_guarded(ImplGenerator.java:2078)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.work_with_guarded(ImplGenerator.java:2234)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.work_with_guarded_blocks(ImplGenerator.java:3154)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.create_guarded_blocks(ImplGenerator.java:3171)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.synchronise_implementation_class(ImplGenerator.java:3466)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.synchronise_interface_class(ImplGenerator.java:3475)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate_interface(ImplGenerator.java:3878)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate_from_element(ImplGenerator.java:4074)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate_from_element(ImplGenerator.java:4068)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator.generate(ImplGenerator.java:4174)
        at
org.netbeans.modules.corba.idl.generator.ImplGenerator$2.run(ImplGenerator.java:4377)
        at org.openide.util.Task.run(Task.java:124)
        at
org.openide.util.RequestProcessor$ProcessorThread.run(RequestProcessor.java:626)


This is caused by inconsistence of java document in editor and parser java code.
This is because editor java file is not locked

Solution:
Lock java file each time you reading or modifying it.


Evaluation: 
Some kind of race condition. Locking file is not probably good way, it can cause
dead lock when witing for Java Source Hierarchy.

A comment.
Comment 1 Tomas Zezula 2001-09-25 20:58:09 UTC
Fixed by performing work in atomicSection after waiting for Java
parser to parse the java source. Also saveDocument was removed from
cycle and is called once for whole document (after it is generated).
Comment 2 Tomas Zezula 2001-09-25 20:59:45 UTC
Fixed
Comment 3 David Kaspar 2001-10-03 15:38:00 UTC
Verified
Comment 4 Quality Engineering 2003-06-30 17:07:09 UTC
Resolved for 3.3.x or earlier, no new info since then -> closing.