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 78480 - RT doesn't work for dragging a class/interface in/out of another class/interface
Summary: RT doesn't work for dragging a class/interface in/out of another class/interface
Status: RESOLVED DUPLICATE of bug 78520
Alias: None
Product: uml
Classification: Unclassified
Component: Synchronization (show other bugs)
Version: 5.x
Hardware: PC Windows XP
: P2 blocker (vote)
Assignee: _ jyothivasa
URL:
Keywords: REGRESSION
Depends on:
Blocks:
 
Reported: 2006-06-20 10:27 UTC by bugbridge
Modified: 2006-08-31 02:29 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
message.log file (20.78 KB, text/plain)
2006-07-21 13:47 UTC, Alexandr Scherbatiy
Details
message.log file (31.36 KB, text/plain)
2006-07-21 14:00 UTC, Alexandr Scherbatiy
Details
message.log file (20.87 KB, text/plain)
2006-08-02 10:57 UTC, Alexandr Scherbatiy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description bugbridge 2006-06-20 10:27:02 UTC
Description:
Build Coke Milestone 7. Windows XP.

To reproduce:
- in project tree drag a class/interface in/out another class/interface
BUG: source code isn't updated, and following NPEs in the log or in dialog

on move-in (ide log):

java.lang.NullPointerException at
org.netbeans.modules.javacore.jmiimpl.javamodel.IndentUtil.getGarbage(IndentUtil.java:286)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.IndentUtil.printHeadGarbage(IndentUtil.java:281)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.IndentUtil.reformatHeadGarbage(IndentUtil.java:325)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.FeatureImpl.generateNewModifiers(FeatureImpl.java:467)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.getRawText(JavaClassImpl.java:802)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getSourceText(MetadataElement.java:728)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getCollectionDiff(MetadataElement.java:898)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getCollectionDiff(MetadataElement.java:796)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getCollectionDiff(MetadataElement.java:791)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.getDiff(JavaClassImpl.java:899)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getElementsDiff(MetadataElement.java:787)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getCollectionDiff(MetadataElement.java:798)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getCollectionDiff(MetadataElement.java:791)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.getDiff(ResourceImpl.java:1226)
at
org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.commitChanges(ResourceImpl.java:810)
at
org.netbeans.modules.javacore.ExclusiveMutex.notifyElements(ExclusiveMutex.java:503)
[catch] at
org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.java:358) at
org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:249) at
org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:243) at
com.sun.tools.ide.uml.integration.netbeans.NBEventProcessor.moveInnerClass(NBEventProcessor.java:3057)
at
com.sun.tools.ide.uml.integration.netbeans.NBEventProcessor.classChanged(NBEventProcessor.java:1394)
at
com.sun.tools.ide.uml.integration.ide.RoundTripClassEventsSink$7.work(RoundTripClassEventsSink.java:499)
at
com.sun.tools.ide.uml.integration.ide.RoundTripSource$RoundtripThread.run(RoundTripSource.java:106)
at
com.sun.tools.ide.uml.integration.ide.events.EventHandler$1.executeTask(EventHandler.java:72)
at
com.sun.tools.ide.uml.integration.ide.events.EventHandler$WorkerThread.run(EventHandler.java:275)


on move-out (dialog):

java.lang.NullPointerException	at
com.sun.tools.ide.uml.integration.netbeans.NBEventProcessor.moveInnerClass(NBEventProcessor.java:3002)
at
com.sun.tools.ide.uml.integration.netbeans.NBEventProcessor.classChanged(NBEventProcessor.java:1394)
at
com.sun.tools.ide.uml.integration.ide.RoundTripClassEventsSink$7.work(RoundTripClassEventsSink.java:499)
at
com.sun.tools.ide.uml.integration.ide.RoundTripSource$RoundtripThread.run(RoundTripSource.java:106)
at
com.sun.tools.ide.uml.integration.ide.events.EventHandler$1.executeTask(EventHandler.java:72)
[catch] at
com.sun.tools.ide.uml.integration.ide.events.EventHandler$WorkerThread.run(EventHandler.java:275)

Evaluation:
updated with coco_dev SR and REGRESSION according to Coke Bug Filing Convention

Evaluation (Entry 2):
Seems to be related to Refactoring regression as the code in question is not
finding the old or the new source file which is causing the NPE.

Perfomring new/clean build env to test refactoring fix on this CR.
Comment 1 Sergey Petrov 2006-06-20 10:40:29 UTC
this bug exists in earlier coke builds,
but is a regression from buzz.
*** (#1 of 8): 2006-05-06 16:21:35 MSD ----

reproducible in tpr2
*** (#2 of 8): 2006-05-06 16:39:58 MSD ----

I noticed that the SourceFile name under the superclass' UML element node in the
tree is still referring to the old name. However, if you rename the class back
to its original name, the source file name under the superclass' UML element
node is now updated to the previously new name. For example:

In Java project/sources:
- ClassA
- ClassB extends ClassA

And in UML project
- ClassA
  - Generalization (ClassB extends ClassA)
  - sourcfile: ClassA
- ClassB
  - Generalization (ClassB extends ClassA)

*** Refactor->Rename ClassA in Java project source to ClassZ

Now, we have in Java project/sources:
In Java project/sources:
- ClassZ
- ClassB extends ClassZ

And now, in UML project
- ClassZ
  - sourcfile: ***ClassA***
- ClassB
  - sourcefile: ClassB

*** Refactor->Rename ClassZ back to orignal name ClassA

Now, we have in Java project/sources:
In Java project/sources:
- ClassA
- ClassB extends ClassA

And now, in UML project
- ClassA
  - sourcfile: ***ClassZ***
- ClassB
  - sourcefile: ClassB

Note: The sourcefile for the superclass in the UML project is always behind by
one update.

If you do one more Refactor->Rename on the superclass, the Java source file for
the superclass gets updated, but the Java class node representing doesn't get
updated and has the error that the source file name should be the same as the
public class name.
*** (#3 of 8): 2006-06-13 21:01:04 MSD ----
*** Last Edit: 2006-06-13 21:13:58 MSD ----

When the sourcecode gets screwed up, these exceptions occur:

[org.netbeans.javacore] INFORMATIONAL *********** Exception occurred ***********
* at 10:42 AM on Jun 13, 2006
java.lang.Exception: ***** Info is null for element: foo/ClassB.java (instanceof
: org.netbeans.jmi.javamodel.Resource$Impl MOFID: 01B56F75-FAFF-11DA-A1E4-714257
36AA77:0000000000000A07)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.getElementInfo(SemiPersistentElement.java:193)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChil
dren(ResourceImpl.java:322)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChil
dren(ResourceImpl.java:316)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initC
heck(MetadataElement.java:140)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.getElementInfo(SemiPersistentElement.java:185)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.initChi
ldren(JavaClassImpl.java:693)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initC
heck(MetadataElement.java:140)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.TransientElement.getA
STree(TransientElement.java:65)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MultipartIdImpl.getEl
ement(MultipartIdImpl.java:129)
        at org.netbeans.jmi.javamodel.MultipartId$Impl.getElement(Unknown Source
)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.handleSuperClassChange(MetaDataRChangeListener.java:380)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.plannedChange(MetaDataRChangeListener.java:247)
        at org.netbeans.mdr.util.EventNotifier$Abstract.firePlannedChange(EventN
otifier.java:414)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:91)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:78)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.fireSCN
ameChange(JavaClassImpl.java:259)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.setSupe
rClass(JavaClassImpl.java:288)
        at org.netbeans.jmi.javamodel.JavaClass$Impl.setSuperClass(Unknown Sourc
e)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.matchPe
rsistent(JavaClassImpl.java:575)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.matchMember(SemiPersistentElement.java:650)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.processMembers(SemiPersistentElement.java:541)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.matchPer
sistent(ResourceImpl.java:206)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.updateMe
tadata(ResourceImpl.java:761)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.resetAST
(ResourceImpl.java:523)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.parseRes
ource(ResourceImpl.java:901)
        at org.netbeans.modules.javacore.ExclusiveMutex.notifyElements(Exclusive
Mutex.java:524)
        at org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.jav
a:358)
        at org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:
249)
        at org.netbeans.modules.refactoring.api.RefactoringSession.doRefactoring
(RefactoringSession.java:72)
        at org.netbeans.modules.refactoring.ui.RefactoringPanel$1.run(Refactorin
gPanel.java:588)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:926)
[org.netbeans.javacore] isChanged: true, alreadyChecking: true
[org.netbeans.javacore] isValid: true
[org.netbeans.javacore] alreadyChecking stacktrace:
[org.netbeans.javacore] INFORMATIONAL *********** Exception occurred ***********
* at 10:42 AM on Jun 13, 2006
java.lang.RuntimeException
[catch] at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.resetAST
(ResourceImpl.java:501)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.parseRes
ource(ResourceImpl.java:901)
        at org.netbeans.modules.javacore.ExclusiveMutex.notifyElements(Exclusive
Mutex.java:524)
        at org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.jav
a:358)
        at org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:
249)
        at org.netbeans.modules.refactoring.api.RefactoringSession.doRefactoring
(RefactoringSession.java:72)
        at org.netbeans.modules.refactoring.ui.RefactoringPanel$1.run(Refactorin
gPanel.java:588)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:926)
java.lang.IllegalStateException: Recursive call to getElementInfo()
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.getElementInfo(SemiPersistentElement.java:201)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChil
dren(ResourceImpl.java:322)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChil
dren(ResourceImpl.java:316)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initC
heck(MetadataElement.java:140)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.getElementInfo(SemiPersistentElement.java:185)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.initChi
ldren(JavaClassImpl.java:693)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initC
heck(MetadataElement.java:140)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.TransientElement.getA
STree(TransientElement.java:65)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MultipartIdImpl.getEl
ement(MultipartIdImpl.java:129)
        at org.netbeans.jmi.javamodel.MultipartId$Impl.getElement(Unknown Source
)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.handleSuperClassChange(MetaDataRChangeListener.java:380)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.plannedChange(MetaDataRChangeListener.java:247)
        at org.netbeans.mdr.util.EventNotifier$Abstract.firePlannedChange(EventN
otifier.java:414)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:91)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:78)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.fireSCN
ameChange(JavaClassImpl.java:259)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.setSupe
rClass(JavaClassImpl.java:288)
        at org.netbeans.jmi.javamodel.JavaClass$Impl.setSuperClass(Unknown Sourc
e)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.matchPe
rsistent(JavaClassImpl.java:575)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.matchMember(SemiPersistentElement.java:650)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.processMembers(SemiPersistentElement.java:541)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.matchPer
sistent(ResourceImpl.java:206)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.updateMe
tadata(ResourceImpl.java:761)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.resetAST
(ResourceImpl.java:523)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.parseRes
ource(ResourceImpl.java:901)
        at org.netbeans.modules.javacore.ExclusiveMutex.notifyElements(Exclusive
Mutex.java:524)
        at org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.jav
a:358)
        at org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:
249)
        at org.netbeans.modules.refactoring.api.RefactoringSession.doRefactoring
(RefactoringSession.java:72)
        at org.netbeans.modules.refactoring.ui.RefactoringPanel$1.run(Refactorin
gPanel.java:588)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:926)
[org.netbeans.javacore] INFORMATIONAL *********** Exception occurred ***********
* at 10:42 AM on Jun 13, 2006
java.lang.Exception: rollback!!!
        at org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.jav
a:339)
        at org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:
249)
        at org.netbeans.mdr.handlers.BaseObjectHandler._unlock(BaseObjectHandler
.java:227)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.initChi
ldren(JavaClassImpl.java:761)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initC
heck(MetadataElement.java:140)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.TransientElement.getA
STree(TransientElement.java:65)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MultipartIdImpl.getEl
ement(MultipartIdImpl.java:129)
        at org.netbeans.jmi.javamodel.MultipartId$Impl.getElement(Unknown Source
)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.handleSuperClassChange(MetaDataRChangeListener.java:380)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.plannedChange(MetaDataRChangeListener.java:247)
        at org.netbeans.mdr.util.EventNotifier$Abstract.firePlannedChange(EventN
otifier.java:414)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:91)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:78)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.fireSCN
ameChange(JavaClassImpl.java:259)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.setSupe
rClass(JavaClassImpl.java:288)
        at org.netbeans.jmi.javamodel.JavaClass$Impl.setSuperClass(Unknown Sourc
e)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.matchPe
rsistent(JavaClassImpl.java:575)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.matchMember(SemiPersistentElement.java:650)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.processMembers(SemiPersistentElement.java:541)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.matchPer
sistent(ResourceImpl.java:206)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.updateMe
tadata(ResourceImpl.java:761)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.resetAST
(ResourceImpl.java:523)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.parseRes
ource(ResourceImpl.java:901)
        at org.netbeans.modules.javacore.ExclusiveMutex.notifyElements(Exclusive
Mutex.java:524)
        at org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.jav
a:358)
        at org.netbeans.mdr.NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:
249)
        at org.netbeans.modules.refactoring.api.RefactoringSession.doRefactoring
(RefactoringSession.java:72)
        at org.netbeans.modules.refactoring.ui.RefactoringPanel$1.run(Refactorin
gPanel.java:588)
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493)

        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java
:926)
[org.netbeans.mdr.Logger] INFORMATIONAL *********** Exception occurred *********
*** at 10:42 AM on Jun 13, 2006
java.lang.IllegalStateException: Recursive call to getElementInfo()
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.getElementInfo(SemiPersistentElement.java:201)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChil
dren(ResourceImpl.java:322)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.initChil
dren(ResourceImpl.java:316)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initC
heck(MetadataElement.java:140)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.getElementInfo(SemiPersistentElement.java:185)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.initChi
ldren(JavaClassImpl.java:693)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.initC
heck(MetadataElement.java:140)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.TransientElement.getA
STree(TransientElement.java:65)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.MultipartIdImpl.getEl
ement(MultipartIdImpl.java:129)
        at org.netbeans.jmi.javamodel.MultipartId$Impl.getElement(Unknown Source
)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.handleSuperClassChange(MetaDataRChangeListener.java:380)
        at org.netbeans.modules.uml.integration.netbeans.listeners.MetaDataRChan
geListener.plannedChange(MetaDataRChangeListener.java:247)
[catch] at org.netbeans.mdr.util.EventNotifier$Abstract.firePlannedChange(EventN
otifier.java:414)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:91)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.fireAttrChange(SemiPersistentElement.java:78)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.fireSCN
ameChange(JavaClassImpl.java:259)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.setSupe
rClass(JavaClassImpl.java:288)
        at org.netbeans.jmi.javamodel.JavaClass$Impl.setSuperClass(Unknown Sourc
e)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl.matchPe
rsistent(JavaClassImpl.java:575)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.matchMember(SemiPersistentElement.java:650)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.processMembers(SemiPersistentElement.java:541)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.matchPer
sistent(ResourceImpl.java:206)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.SemiPersistentElement
.updatePersistent(SemiPersistentElement.java:364)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.updateMe
tadata(ResourceImpl.java:761)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.resetAST
(ResourceImpl.java:523)
        at org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl.parseRes
ource(ResourceImpl.java:901)
        at org.netbeans.modules.javacore.ExclusiveMutex.notifyElements(Exclusive
Mutex.java:524)
        at org.netbeans.modules.javacore.ExclusiveMutex.leave(ExclusiveMutex.jav
a:358)
        at
*** (#4 of 8): 2006-06-13 21:43:58 MSD ----

handleClassNameChangeEvent gets invoked twice. The first time, the source of the
event is a JavaClass object that can be used to construct a ClassInfo object
which the current (old) source filename is set to that. 

Then NBUtils.update gets called and another handleClassNameChangeEvent gets
invoked and this time the source of the event is a MultipartId. Not sure what
this is, but it contains the old and new name of the class being renamed, but it
can not be used to create a ClassInfo and therefore, nothing is done with it.

Not really sure this is the issue though, but worth noting for future reference.
*** (#5 of 8): 2006-06-13 23:41:18 MSD ----

As Trey recommended, I tried Refactor->Rename a class without it being extended.
The UML elements stay up to date properly in this scenario. Perhaps a debugging
of this scenario will reveal where the other scenario is breaking down.
*** (#6 of 8): 2006-06-13 23:46:08 MSD ----

I was mistaken... renaming a class in the java project does NOT properly rename
the source file artifact under the Class element in the UML project. This is
probably the fundamental issue. This didn't work right in JSE8, either.
*** (#7 of 8): 2006-06-14 23:45:56 MSD ----

In deed, the sourcefile name under the Class element in the UML tree did need to
get updated. For whatever reason, it wasn't and a simple
setFilename/setSymbolFilename invocation just after the class renaming itself
seems to not only fix the Navigate to Source issue, but also this issue.

However, this fix doesn't seem to be consistent, nor does the actual results of
any testing with Refactoring. It seems that a single test can result in a couple
different outcomes, whether they are right or wrong, from one IDE restart to the
next.
*** (#8 of 8): 2006-06-15 00:49:48 MSD ---
Comment 2 Sergey Petrov 2006-06-20 10:42:40 UTC
please dismiss prev uopdate it should be related to 78483
Comment 3 Craig Conover 2006-06-22 00:53:28 UTC
This is still working for me. Need additional details, if possible, on the
testing scenario. Maybe provide steps starting with project creation.
Comment 4 Alexandr Scherbatiy 2006-07-21 13:45:34 UTC
Additional steps:

- Create a Java project
- Create a UML project associated with the Java project
- Create a Class diagram
- Put Class Element on the diagram and name it 'A'
- Put Class Element on the diagram and name it 'B'
- Drag and Drop 'B' class element to 'A' element 
  under model tree
- Press 'Yes' button on the 'Nested Classes' dialog

  There is NPE on the message log file.

  java.lang.NullPointerException
    at
org.netbeans.modules.javacore.jmiimpl.javamodel.IndentUtil.getGarbage(IndentUtil.java:292)
    at
org.netbeans.modules.javacore.jmiimpl.javamodel.IndentUtil.printHeadGarbage(IndentUtil.java:287)
    at
org.netbeans.modules.javacore.jmiimpl.javamodel.IndentUtil.reformatHeadGarbage(IndentUtil.java:331)
    at
org.netbeans.modules.javacore.jmiimpl.javamodel.FeatureImpl.generateNewModifiers(FeatureImpl.java:479)


  The bug is still reproduced in NetBeans 5.5 Beta 2 (Build 200607190830).
  See attached message.log file.


Comment 5 Alexandr Scherbatiy 2006-07-21 13:47:54 UTC
Created attachment 32093 [details]
message.log file
Comment 6 Alexandr Scherbatiy 2006-07-21 14:00:08 UTC
- Do the previous steps
- Select Parent class, right-click and invoke 'Navigate to Source' 
    from popup menu
The exception pops up:

java.lang.IllegalStateException: The model was modified. Unable to return start
offset.
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.testResourceChange(MetadataElement.java:1191)
	at
org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement.getStartOffset(MetadataElement.java:1202)
	at
org.netbeans.modules.uml.integration.netbeans.NBSourceNavigator.showSourceFile(NBSourceNavigator.java:246)

 See attached message.log file.
Comment 7 Alexandr Scherbatiy 2006-07-21 14:00:52 UTC
Created attachment 32094 [details]
message.log file
Comment 8 Craig Conover 2006-07-27 02:02:15 UTC
Just needed some null checks here and there and a method that should have been
static, made to be so and used to get an instance of the static member it was to
retrieve instead of a raw usage of the static member (which was null).
Comment 9 Craig Conover 2006-07-27 02:21:25 UTC
Files affected:
uml/ideintegration/src/org/netbeans/modules/uml/integration/ide/UMLSupport.java
uml/ideintegration/src/org/netbeans/modules/uml/integration/netbeans/NBEventProcessor.java
Comment 10 Kris Richards 2006-07-27 21:09:14 UTC
class is not renamed after subsequent renames when java application is bound to
a uml project
Comment 11 Trey Spiva 2006-07-28 18:26:36 UTC
If you do not have the generalization, everything works correctly.  The problem
is that the package is being changed, therefore a super class change event is
being sent.  

With this information we have determined that this issues is a duplicate of 78483.

*** This issue has been marked as a duplicate of 78483 ***
Comment 12 Alexandr Scherbatiy 2006-07-31 09:26:08 UTC
Hi tspiva,
Please, do not mark the issue as duplicate of another if they have the different
steps to reproduce and the different exceptions in stack traces. Please, mark
such  bugs as RESOLVED FIXED.

Also please, read the steps fom Additional comments of Fri Jul 21 12:45:34
and message.log file from Additional comments of Fri Jul 21 12:47:54.
There are no any mentions about generalization in these stepse.




 

 
Comment 13 Trey Spiva 2006-07-31 16:34:25 UTC
That should not be the case.  If we determine that two issues follow the same
code path, they are duplicates.  By marking an issue as a duplicate allows
development and QA to make sure that both senerios should be tested.

*** This issue has been marked as a duplicate of 78483 ***
Comment 14 Alexandr Scherbatiy 2006-08-02 10:56:00 UTC
The bug is reproduced in NetBeans 5.5 Beta 2 (Build 20060730) in spite of
the issue 78483 is resolved. See attached message.log file.
Comment 15 Alexandr Scherbatiy 2006-08-02 10:57:35 UTC
Created attachment 32435 [details]
message.log file
Comment 16 _ jyothivasa 2006-08-03 02:38:50 UTC
We get the NPE only when we move classes in the DEFAULT PACKAGE. 
It works fine if the classes are in a different package. Need to figure out if
the root cause is a netbeans issue.
Comment 17 Peter Lam 2006-08-03 20:26:21 UTC
I came to the same result as when I was using nested link from the diagram to
nest classes/interfaces. So, this is a duplicate of 78520.

*** This issue has been marked as a duplicate of 78520 ***