question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Exception opening graph without Plugin Reporter

See original GitHub issue

Prerequisites

Description

If you close the plugin reporter, restart Constellation and try to open a graph I always get a ConcurrentModificationException.

java.util.ConcurrentModificationException
	at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1042)
	at java.base/java.util.ArrayList$Itr.next(ArrayList.java:996)
	at au.gov.asd.tac.constellation.graph.node.plugins.FrameworkGraphManager.graphOpened(FrameworkGraphManager.java:102)
	at au.gov.asd.tac.constellation.graph.node.GraphNode.<init>(GraphNode.java:162)
	at au.gov.asd.tac.constellation.graph.node.GraphNode.<init>(GraphNode.java:135)
	at au.gov.asd.tac.constellation.graph.interaction.gui.VisualGraphTopComponent.<init>(VisualGraphTopComponent.java:451)
	at au.gov.asd.tac.constellation.graph.interaction.gui.VisualGraphOpener$GraphFileOpener.done(VisualGraphOpener.java:222)
	at java.desktop/javax.swing.SwingWorker$5.run(SwingWorker.java:750)
	at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:847)
	at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
	at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:857)
	at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
	at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
[catch] at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Steps to Reproduce

  1. Close the plugin reporter
  2. Restart Constellation
  3. Open a new analytic graph

Expected behaviour: No errors thank you

Actual behaviour: ConcurrentModificationException

Reproduces how often: [What percentage of the time does it reproduce?] 100%

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:9 (6 by maintainers)

github_iconTop GitHub Comments

2reactions
Nova-2119commented, Feb 12, 2021

I have went through every view and confirmed that the problem is specific the the quality control view. It also occurs when the Data Acces view is open but im confident this is just because of the quality control widget the view has. Essentially having the Quality Control View (or a widget) open causes FrameworkGraphManager.addGraphManagerListener to add a GraphReportManager listener whilst we are looping through the listeners, causing an error.

But when the pluginReport view is open this triggers FrameworkGraphManager.addGraphManagerListener to be called upon initially opening constellation. This means when you open a graph and the same method is called it doesn’t modify listeners because a GraphReportManager listener is already in listeners. This eeffectively counteracts the issue above which is why it doesnt occur is the plugin reporter is open.

Next step is to try and stop the quality control view from exhibiting this behaviour as none of the other views do it. I will also add a comment to the method which casues the addition of the listener warning against it being used in the initialisation of views.

0reactions
arcturus2commented, Feb 12, 2021

@Nova-2119 many many thanks for the detailed explanation and keeping us up to date with what is going on. Well done for nailing this one down to the Quality Control View.

Read more comments on GitHub >

github_iconTop Results From Across the Web

HTML Reporter throwing null pointer error (NPE) #146 - GitHub
Getting NPE when request Clover to generate HTML file. If set to false can get XML file fine. MacOS Catalina - version 10.15.3....
Read more >
Reporting and Statistics - Summary Page & Graphs Plugin
Reporting and Statistics - Summary Page & Graphs Plugin ... Open states - In several tables, there are references to an 'open' column....
Read more >
Chart JS +ng2-charts not working on Angular+2 - Stack Overflow
16 i have used "chart.js": "^2.9.3", "chartjs-plugin-annotation": "^0.5.7", "ng2-charts" ...
Read more >
Extent Framework - extentreports-core
Getting Started. ExtentReports is an logger-style reporting library for automated tests. A logger is simply an object to log messages or events for...
Read more >
Getting ERROR: java.lang.NoSuchMethodError while creating ...
Uninstall any plugins you have · Reinstall them using JMeter Plugins Manager (you will need at least Command-Line Graph Plotting Tool and Synthesis...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found