Exception opening graph without Plugin Reporter
See original GitHub issuePrerequisites
- Put an X between the brackets on this line if you have done all of the following:
- Running the latest version of Constellation
- Attached the Support Package via
Help
>Support Package
- Checked the FAQs: https://github.com/constellation-app/constellation/wiki/FAQ
- Checked that your issue isn’t already filed: https://github.com/constellation-app/constellation/issues
- Checked that there is not already a module that provides the described functionality: https://github.com/constellation-app/constellation/wiki/Catalogue-of-Repositories
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
- Close the plugin reporter
- Restart Constellation
- 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:
- Created 3 years ago
- Comments:9 (6 by maintainers)
Top 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 >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
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.
@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.