[ 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:dev-subscr...@qpid.apache.org