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.
Steps to reproduce: - Create Synchronous sample project. - Open bpel diagram. - Add 2 Empty activities to process. - Invoke Undo action. - Switch to bpel source. - Go to Navigator window and change bpel from it(for ex. delete some activity). - Go to bpel source window. - Invoke Redo action. - Exception occurs. java.lang.ArrayIndexOutOfBoundsException: 242 at org.netbeans.editor.MarkVector.update(MarkVector.java:296) at org.netbeans.editor.DocumentContent$Edit.undoOrRedo (DocumentContent.java:377) at org.netbeans.editor.DocumentContent$Edit.redo (DocumentContent.java:359) at org.netbeans.editor.BaseDocumentEvent.redo (BaseDocumentEvent.java:322) at org.netbeans.editor.GuardedDocumentEvent.redo (GuardedDocumentEvent.java:56) at javax.swing.undo.CompoundEdit.redo(CompoundEdit.java:59) at javax.swing.undo.CompoundEdit.redo(CompoundEdit.java:59) at org.netbeans.modules.xml.xam.AbstractModel$ModelUndoableEdit.redo (AbstractModel.java:458) at org.netbeans.modules.bpel.model.impl.BpelModelImpl$BpelModelUndoableEdit.redo (BpelModelImpl.java:734) at javax.swing.undo.UndoManager.redoTo(UndoManager.java:329) at javax.swing.undo.UndoManager.redo(UndoManager.java:436) at org.openide.text.CloneableEditorSupport$CESUndoRedoManager.access$2301 (CloneableEditorSupport.java:2639) at org.openide.text.CloneableEditorSupport$CESUndoRedoManager$RenderUndo.run (CloneableEditorSupport.java:2774) at org.netbeans.editor.GuardedDocument.runAtomic (GuardedDocument.java:226) at org.openide.text.CloneableEditorSupport$CESUndoRedoManager$RenderUndo.<init> (CloneableEditorSupport.java:2759) at org.openide.text.CloneableEditorSupport$CESUndoRedoManager$RenderUndo.<init> (CloneableEditorSupport.java:2751) at org.openide.text.CloneableEditorSupport$CESUndoRedoManager.redo (CloneableEditorSupport.java:2655) at org.netbeans.modules.xml.xam.ui.undo.FilterUndoManager.redo (FilterUndoManager.java:116) at org.netbeans.modules.xml.xam.ui.undo.CompoundUndoManager.redo (CompoundUndoManager.java:182) at org.netbeans.modules.xml.xam.ui.undo.QuietUndoManager.redo (QuietUndoManager.java:159) at org.openide.actions.RedoAction.performAction(RedoAction.java:71) ----- java.lang.NullPointerException at org.netbeans.modules.bpel.core.annotations.impl.AnnotationManagerProvider.getAnn otations(AnnotationManagerProvider.java:163) at org.netbeans.modules.bpel.design.decoration.providers.DebuggerDecorationProvider .getDecoration(DebuggerDecorationProvider.java:154) at org.netbeans.modules.bpel.design.decoration.DecorationManager.updateResult (DecorationManager.java:168) at org.netbeans.modules.bpel.design.decoration.DecorationManager.updateResultRecurs ive(DecorationManager.java:268) at org.netbeans.modules.bpel.design.decoration.DecorationManager.decorationChanged (DecorationManager.java:119) at org.netbeans.modules.bpel.design.decoration.DecorationProvider.fireDecorationCha nged(DecorationProvider.java:48) at org.netbeans.modules.bpel.design.decoration.providers.ValidationDecorationProvid er.access$600(ValidationDecorationProvider.java:47) [catch] at org.netbeans.modules.bpel.design.decoration.providers.ValidationDecorationProvid er$2.run(ValidationDecorationProvider.java:135)
not sure if this is model or ui issue. Denis please evaluate first.
This is the same issue as #85918. It has other description but reason for both bugs are the same.
This is fixed locally. Needs to commit into CVS.
Fixed in "dev" branch. Needs to be fixed in release55 branch.
File Changes: Directory: /enterprise/bpel/editors/src/org/netbeans/modules/bpel/design/ ========================================================================= File [changed]: DnDHandler.java Url: http://enterprise.netbeans.org/source/browse/enterprise/bpel/editors/src/org/netbeans/modules/bpel/design/DnDHandler.java?r1=1.1.2.24&r2=1.1.2.24.2.1 Delta lines: +4 -3 ------------------- --- DnDHandler.java 25 Sep 2006 16:24:34 -0000 1.1.2.24 +++ DnDHandler.java 29 Sep 2006 14:59:37 -0000 1.1.2.24.2.1 @@ -285,7 +285,8 @@ //BpelEntity be = getBpelEntity(dtde.getTransferable()); - + getDesignView().getTopComponent().requestActive(); + getDesignView().requestFocusInWindow(); getGhostSelection().clear(); @@ -311,6 +312,7 @@ }; } + try { if (callable != null){ designView.getBPELModel().invoke(callable, this); @@ -320,8 +322,7 @@ } - getDesignView().getTopComponent().requestActive(); - getDesignView().requestFocusInWindow(); + } Directory: /enterprise/bpel/editors/src/org/netbeans/modules/bpel/editors/multiview/ ==================================================================================== File [changed]: DesignerMultiViewElement.java Url: http://enterprise.netbeans.org/source/browse/enterprise/bpel/editors/src/org/netbeans/modules/bpel/editors/multiview/DesignerMultiViewElement.java?r1=1.1.2.28&r2=1.1.2.28.2.1 Delta lines: +15 -25 --------------------- --- DesignerMultiViewElement.java 20 Sep 2006 16:09:41 -0000 1.1.2.28 +++ DesignerMultiViewElement.java 29 Sep 2006 14:59:37 -0000 1.1.2.28.2.1 @@ -69,6 +69,7 @@ import org.netbeans.modules.bpel.model.api.Assign; import org.netbeans.modules.bpel.model.api.BpelEntity; import org.openide.util.Lookup; +import org.openide.util.WeakListeners; import org.openide.util.lookup.Lookups; import org.openide.util.lookup.ProxyLookup; import org.openide.nodes.Node; @@ -119,12 +120,14 @@ import org.netbeans.modules.bpel.model.api.Variable; import org.netbeans.modules.bpel.model.api.VariableContainer; import org.netbeans.modules.bpel.model.api.VariableDeclarationScope; +import org.netbeans.modules.bpel.model.api.events.ChangeEventListener; import org.netbeans.modules.bpel.model.api.events.ChangeEventListenerAdapter; import org.netbeans.modules.bpel.model.api.events.PropertyUpdateEvent; import org.netbeans.modules.bpel.palette.SoaPaletteFactory; import org.netbeans.modules.bpel.properties.PropertyNodeFactory; import org.netbeans.modules.xml.validation.ValidateAction; import org.netbeans.modules.xml.validation.ValidateAction.RunAction; +import org.netbeans.modules.xml.xam.Model; import org.netbeans.modules.xml.xam.Model.State; import org.netbeans.modules.xml.xam.spi.Validator.ResultItem; import org.netbeans.modules.xml.xam.ui.undo.QuietUndoManager; @@ -252,7 +255,7 @@ super.componentDeactivated(); // Don't touch undo manager when cpmponent still present showing // but just lost focus.... - //removeUndoManager(); + removeUndoManager(); } public void componentHidden() { @@ -556,38 +559,23 @@ requestVisible(); } + /** - * Adds the undo/redo manager to the schema model as an undoable + * Adds the undo/redo manager to the bpel model as an undoable * edit listener, so it receives the edits onto the queue. */ private void addUndoManager() { - BpelModel model = getBpelModel(); - if (model != null) { - BPELDataEditorSupport editor = getDataObject().getEditorSupport(); - QuietUndoManager undo = editor.getUndoManager(); - // Ensure the listener is not added twice. - model.removeUndoableEditListener(undo); - model.addUndoableEditListener(undo); - // Ensure the model is sync'd when undo/redo is invoked, - // otherwise the edits are added to the queue and eventually - // cause exceptions. - undo.setModel(model); - } + UndoRedoManagerUtils.addUndoManager( getBpelModel() , + myDataObject.getEditorSupport()); } /** * Removes the undo/redo manager undoable edit listener from the - * schema model, to stop receiving undoable edits. + * bpel model, to stop receiving undoable edits. */ private void removeUndoManager() { - BpelModel model = getBpelModel(); - if (model != null) { - BPELDataEditorSupport editor = getDataObject().getEditorSupport(); - QuietUndoManager undo = editor.getUndoManager(); - model.removeUndoableEditListener(undo); - // Must unset the model when leaving model view. - undo.setModel(null); - } + UndoRedoManagerUtils.removeUndoManager( getBpelModel() , + myDataObject.getEditorSupport()); } private BpelModel getBpelModel() { @@ -693,8 +681,10 @@ @Override public void notifyPropertyUpdated( PropertyUpdateEvent event ) { - if ( BpelModel.STATE_PROPERTY.equals( event.getName()) ) { - // TODO : write code for replacing view. + if ( BpelModel.STATE.equals( event.getName()) && + Model.State.NOT_WELL_FORMED.equals(event.getNewValue()) ) + { + setActivatedNodes(new Node[] {getDataObject().getNodeDelegate()}); } } File [added]: UndoRedoManagerUtils.java Url: http://enterprise.netbeans.org/source/browse/enterprise/bpel/editors/src/org/netbeans/modules/bpel/editors/multiview/UndoRedoManagerUtils.java?rev=1.1.2.1&content-type=text/vnd.viewcvs-markup Added lines: 0 -------------- Directory: /enterprise/bpel/editors/src/org/netbeans/modules/bpel/navigator/ ============================================================================ File [changed]: BpelModelLogicalBeanTree.java Url: http://enterprise.netbeans.org/source/browse/enterprise/bpel/editors/src/org/netbeans/modules/bpel/navigator/BpelModelLogicalBeanTree.java?r1=1.1.2.10&r2=1.1.2.10.4.1 Delta lines: +38 -9 -------------------- --- BpelModelLogicalBeanTree.java 24 Jul 2006 07:05:31 -0000 1.1.2.10 +++ BpelModelLogicalBeanTree.java 29 Sep 2006 14:59:38 -0000 1.1.2.10.4.1 @@ -23,12 +23,15 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; + import javax.swing.SwingUtilities; import javax.swing.tree.TreeSelectionModel; + +import org.netbeans.modules.bpel.core.BPELDataEditorSupport; +import org.netbeans.modules.bpel.design.nodes.NodeType; +import org.netbeans.modules.bpel.editors.multiview.UndoRedoManagerUtils; import org.netbeans.modules.bpel.model.api.BpelEntity; import org.netbeans.modules.bpel.model.api.BpelModel; -import org.netbeans.modules.bpel.model.api.PartnerLink; -import org.netbeans.modules.bpel.design.nodes.NodeType; import org.netbeans.modules.bpel.model.api.events.ArrayUpdateEvent; import org.netbeans.modules.bpel.model.api.events.ChangeEventListener; import org.netbeans.modules.bpel.model.api.events.EntityInsertEvent; @@ -36,14 +39,13 @@ import org.netbeans.modules.bpel.model.api.events.EntityUpdateEvent; import org.netbeans.modules.bpel.model.api.events.PropertyRemoveEvent; import org.netbeans.modules.bpel.model.api.events.PropertyUpdateEvent; +import org.netbeans.modules.bpel.nodes.BpelNode; +import org.netbeans.modules.bpel.nodes.BpelProcessNode; import org.netbeans.modules.bpel.nodes.navigator.Util; import org.netbeans.modules.bpel.nodes.refactoring.UsageFilterNode; import org.netbeans.modules.bpel.properties.NodeUtils; -import org.netbeans.modules.bpel.nodes.BpelNode; -import org.netbeans.modules.bpel.nodes.BpelProcessNode; import org.netbeans.modules.xml.xam.Model; import org.openide.ErrorManager; - import org.openide.explorer.ExplorerManager; import org.openide.explorer.view.BeanTreeView; import org.openide.nodes.Node; @@ -69,9 +71,6 @@ private BpelModel myBpelModel; //context lookup private Lookup myContextLookup; - private PartnerLink[] myPartnerLinks; - //true mean to send selection event to other subscribed components..... - private boolean isSendSelectionEvent = true; private BeanTreeView myBeanTreeView; private ExplorerManager myExplorerManager; @@ -184,7 +183,16 @@ TopComponent navigatorTopComponent = BpelNavigatorController.getNavigatorTC(); - if (propertyName.equals(TopComponent.Registry.PROP_ACTIVATED_NODES)) { + if (propertyName.equals(TopComponent.Registry.PROP_ACTIVATED)) { + if (TopComponent.getRegistry().getActivated() == navigatorTopComponent) { + removeUndoManager(); + addUndoManager(); + } + else { + removeUndoManager(); + } + } + else if (propertyName.equals(TopComponent.Registry.PROP_ACTIVATED_NODES)) { if (TopComponent.getRegistry().getActivated() != navigatorTopComponent) { doTreeNodeSelectionByActiveNode(); } @@ -270,6 +278,27 @@ } catch (PropertyVetoException ex) { //JUST IGNORE } + } + + /** + * Adds the undo/redo manager to the schema model as an undoable + * edit listener, so it receives the edits onto the queue. + */ + private void addUndoManager() { + UndoRedoManagerUtils.addUndoManager( myBpelModel , + (BPELDataEditorSupport)myContextLookup. + lookup( BPELDataEditorSupport.class )); + } + + /** + * Removes the undo/redo manager undoable edit listener from the + * schema model, to stop receiving undoable edits. + */ + private void removeUndoManager() { + UndoRedoManagerUtils.removeUndoManager( myBpelModel , + (BPELDataEditorSupport)myContextLookup. + lookup( BPELDataEditorSupport.class )); + } } ---------
I've reviewed fix for these issues: http://www.netbeans.org/issues/show_bug.cgi?id=85928 http://www.netbeans.org/issues/show_bug.cgi?id=85918 Everything looks okey.
fixed