[
https://issues.apache.org/jira/browse/QPID-2788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marnie McCormack resolved QPID-2788.
------------------------------------
Resolution: Fixed
> jmx management console can throw ConcurrentModificationException whilst
> connected to (older) brokers with MBeans actively (un)registering
> -----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: QPID-2788
> URL: https://issues.apache.org/jira/browse/QPID-2788
> Project: Qpid
> Issue Type: Bug
> Components: Java Management : JMX Console
> Affects Versions: M2.1, M3, M4, 0.5, 0.6
> Reporter: Robbie Gemmell
> Assignee: Robbie Gemmell
> Fix For: 0.7
>
>
> The JMX management console can throw ConcurrentModificationException whilst
> connected to (older) brokers with mbeans actively (un)registering. This
> process causes receipt of JMX connection notifications that the console uses
> to update its record of registered MBeans. The notifications are received on
> a separate thread from the UI's Event Dispatching Thread, and the two can
> interact whilst the view is being refreshed utilising the lists of registered
> MBeans, such that a CME is thrown.
> This behaviour has only been observed on the queue selection screen whilst
> connected to older brokers, as the process used to generate the view makes
> use of the local queue list to individually query the broker for the required
> queue attribute information, whereas on newer brokers the list is not used at
> all since the broker is able to supply the console all the queue names and
> attribute information as one result.
> java.util.ConcurrentModificationException
> at
> java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
> at java.util.AbstractList$Itr.next(AbstractList.java:343)
> at
> org.apache.qpid.management.ui.jmx.MBeanUtility.getQueueAttributes(MBeanUtility.java:305)
> at
> org.apache.qpid.management.ui.views.type.QueueTypeTabControl.refresh(QueueTypeTabControl.java:268)
> at
> org.apache.qpid.management.ui.views.MBeanView.refresh(MBeanView.java:526)
> at
> org.apache.qpid.management.ui.RefreshIntervalComboPanel$RefreshTask.run(RefreshIntervalComboPanel.java:117)
> at org.eclipse.swt.widgets.Display.timerProc(Display.java:3886)
> at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native
> Method)
> at
> org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1550)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3031)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
> at org.apache.qpid.management.ui.Application.run(Application.java:46)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:574)
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:195)
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]