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.
Summary: | AssertionError and IllegalStateException exception occurs while deleting functoid | ||
---|---|---|---|
Product: | soa | Reporter: | Vitaly Bychkov <lativ> |
Component: | BPEL Mapper | Assignee: | Sergey Lunegov <slunegov> |
Status: | REOPENED --- | ||
Severity: | blocker | CC: | lativ, raghuvirkamath, rajvenka |
Priority: | P3 | ||
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: | |
Attachments: | The Exception StackTrace |
Description
Vitaly Bychkov
2009-06-16 08:27:05 UTC
I can't reproduce the bug. Actually some lines of description looks like broken. And also it's better to save stack traces as separate attachments. It's difficult to read them such way. Still reproducable. But now it isn't reproducable every time. First of all be sure that assertion is enabled, e.g. add to the : <netbeans inst dir>/etc/netbeans.conf to the string started with "netbeans_default_options" additional option: "-J-ea" 1. create Synchronous sample 2. open Synchronous.bpel 3. double click on Assign1 4. in bpel mapper add Concat functoid to the outputVar/resultType/paramA band 5. switch to the diagramm 6. double click on Assign1 7. press del on selected Concat functoid An assertion error appears(see attachment) If there is no exception try different combinations or repeat several times, it looks like an exception always appears if one switches to the mapper by using double click and press del just after it i.e. the functoid to be deleted should be selected in mapper at previous step. Created attachment 90821 [details]
The Exception StackTrace
Fixed in gfesbv22. I'm not absolutely sure that it is fixed because "it isn't reproducible every time". But I didn't manage to reproduce it again. The exception happens because the action is processed by Request Processor instead of being processed in event dispatch thread. I added method protected boolean asynchronous() { return false; } to all mapper's system actions: Copy, Cat, Delete, Find. It had already been implemented for Past. You can find some details here http://bits.nbextras.org/dev/javadoc/org-openide-util/org/openide/util/actions/CallableSystemAction.html#asynchronous%28%29 I could reproduce on the build gfesbv22_613_20091204_1344. I didn't manage to reproduce the issue. It looks like it's not stable. A new stack trace is required because it has to be changed after my latest fix. The old one should be obsolete. Please attach a stack trace once you catch the exception again. I reproduced this on gfesbv22_629_20091208_2300, don't forget enabled assertion (-J-ea) java.lang.AssertionError: Action org.netbeans.modules.soa.xpath.mapper.actions.MapperDeleteGraphSelectionAction may not be invoked from the thread Module-Actions, only the event queue: http://www.netbeans.org/download/4_1/javadoc/OpenAPIs/apichanges.html#actions-event-thread at org.netbeans.modules.openide.util.ActionsBridge.doPerformAction(ActionsBridge.java:64) at org.openide.util.actions.CallableSystemAction.actionPerformed(CallableSystemAction.java:114) at org.openide.util.actions.NodeAction.actionPerformed(NodeAction.java:284) at org.openide.util.actions.CallbackSystemAction$DelegateAction$1.run(CallbackSystemAction.java:593) at org.netbeans.modules.openide.util.ActionsBridge$ActionRunnable.actionPerformed(ActionsBridge.java:111) at org.netbeans.core.ModuleActions.invokeAction(ModuleActions.java:106) at org.netbeans.modules.openide.actions.ActionsBridgeImpl.invokeAction(ActionsBridgeImpl.java:53) at org.netbeans.modules.openide.util.ActionsBridge$ActionRunnable.doRun(ActionsBridge.java:102) at org.netbeans.modules.openide.util.ActionsBridge$1.run(ActionsBridge.java:71) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1030) Caused: org.openide.util.RequestProcessor$Item: task failed due to at org.openide.util.RequestProcessor.post(RequestProcessor.java:267) at org.netbeans.modules.openide.util.ActionsBridge.doPerformAction(ActionsBridge.java:75) at org.openide.util.actions.CallbackSystemAction$DelegateAction.actionPerformed(CallbackSystemAction.java:597) at org.openide.windows.TopComponent.processKeyBinding(TopComponent.java:1052) at javax.swing.JComponent.processKeyBindings(JComponent.java:2895) at javax.swing.JComponent.processKeyEvent(JComponent.java:2812) at java.awt.Component.processEvent(Component.java:5911) at java.awt.Container.processEvent(Container.java:2023) at java.awt.Component.dispatchEventImpl(Component.java:4501) at java.awt.Container.dispatchEventImpl(Container.java:2081) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:704) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:969) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:841) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:668) at java.awt.Component.dispatchEventImpl(Component.java:4373) at java.awt.Container.dispatchEventImpl(Container.java:2081) at java.awt.Window.dispatchEventImpl(Window.java:2458) at java.awt.Component.dispatchEvent(Component.java:4331) [catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) The more specific steps are required to reproduce the issue in the repayable way: - Open a BPEL file - Select an Assign and switch to the Mapper - Put selection to a function on the canvas. Add a function if there isn't any. - Be aware the function is selected! It has to have a green border. - Switch to Design view - Double click on the same Assign, the mapper will appear again - Now the function is selected but the canvas isn't focused. The horizontal line with the function is gray. It is light blue when it is focused. - Press Delete button and the exception appears. It looks like a similar problem has been fixed in trunk with the issue #168547 But it's impossible to check by migrating to 6.7 branch because there are too many changes had been maid before that. It's not enough to migrate only the changes maid in the fix of the issue #168547. I'm going to reduce priority to P3 The problem happens only if the asserts are switched on (-J-ea). If they are switched off, everything works pretty well. The only risk is processing UI in a thread other then Event Queue. Moreover, even if the asserts are switch on, the exception doesn't totally prevent ability to delete a function. It can be done after changing focus to mapper or even without changing by calling Delete action from Main menu --> Edit --> Delete A workaround fix was added to GF ESB v22 & v23 It's NECESSARY TO REMOVE the workaround after migration to NetBeans 6.8 platform. The workaround fix is rolled back because it is considered as harmful. |