Closed arjansh closed 6 years ago
When I have a job with an output data stream (but not just any job with an output data stream in it will do), and I try to close it, I can't close it and I get a ConcurrentModificationException like this:
Unexpected error! Message: java.util.ConcurrentModificationException Level: SEVERE Stack Trace: null java.util.ArrayList$Itr.checkForComodification(Unknown Source) java.util.ArrayList$Itr.next(Unknown Source) java.util.Collections$UnmodifiableCollection$1.next(Unknown Source) org.datacleaner.job.builder.AbstractComponentBuilder.updateStream(AbstractComponentBuilder.java:1048) org.datacleaner.job.builder.AbstractComponentBuilder.getOutputDataStreams(AbstractComponentBuilder.java:995) org.datacleaner.job.builder.AnalyzerComponentBuilder.getOutputDataStreams(AnalyzerComponentBuilder.java:438) org.datacleaner.widgets.visualization.JobGraphNodeBuilder.addNodes(JobGraphNodeBuilder.java:323) org.datacleaner.widgets.visualization.JobGraphNodeBuilder.buildGraphInternal(JobGraphNodeBuilder.java:105) org.datacleaner.widgets.visualization.JobGraphNodeBuilder.buildGraphInternal(JobGraphNodeBuilder.java:85) org.datacleaner.widgets.visualization.JobGraphNodeBuilder.buildGraph(JobGraphNodeBuilder.java:78) org.datacleaner.widgets.visualization.JobGraph.refresh(JobGraph.java:145) org.datacleaner.windows.AnalysisJobBuilderWindowImpl$WindowAnalyzerChangeListener.onConfigurationChanged(AnalysisJobBuilderWindowImpl.java:175) org.datacleaner.windows.AnalysisJobBuilderWindowImpl$WindowAnalyzerChangeListener.onConfigurationChanged(AnalysisJobBuilderWindowImpl.java:1) org.datacleaner.job.builder.AnalyzerComponentBuilder.onConfigurationChanged(AnalyzerComponentBuilder.java:416) org.datacleaner.job.builder.AbstractComponentBuilder.setConfiguredProperty(AbstractComponentBuilder.java:333) org.datacleaner.job.builder.AnalyzerComponentBuilder.setConfiguredProperty(AnalyzerComponentBuilder.java:398) org.datacleaner.job.builder.AnalyzerComponentBuilder.setConfiguredProperty(AnalyzerComponentBuilder.java:58) org.datacleaner.job.builder.AbstractComponentBuilder.removeInputColumn(AbstractComponentBuilder.java:696) org.datacleaner.job.builder.AnalyzerComponentBuilder.removeInputColumn(AnalyzerComponentBuilder.java:262) org.datacleaner.job.builder.AnalyzerComponentBuilder.removeInputColumn(AnalyzerComponentBuilder.java:58) org.datacleaner.job.builder.ComponentBuilderTransformerChangeListener.synchronizeInputColumns(ComponentBuilderTransformerChangeListener.java:80) org.datacleaner.job.builder.ComponentBuilderTransformerChangeListener.onConfigurationChanged(ComponentBuilderTransformerChangeListener.java:47) org.datacleaner.job.builder.ComponentBuilderTransformerChangeListener.onConfigurationChanged(ComponentBuilderTransformerChangeListener.java:30) org.datacleaner.job.builder.TransformerComponentBuilder.onConfigurationChanged(TransformerComponentBuilder.java:279) org.datacleaner.job.builder.AbstractComponentBuilder.setConfiguredProperty(AbstractComponentBuilder.java:333) org.datacleaner.job.builder.AbstractComponentBuilder.clearInputColumns(AbstractComponentBuilder.java:537) org.datacleaner.job.builder.AnalysisJobBuilder.removeAllSourceColumns(AnalysisJobBuilder.java:1204) org.datacleaner.job.builder.AnalysisJobBuilder.reset(AnalysisJobBuilder.java:1194) org.datacleaner.windows.AnalysisJobBuilderWindowImpl.setDatastore(AnalysisJobBuilderWindowImpl.java:460) org.datacleaner.windows.AnalysisJobBuilderWindowImpl.setDatastore(AnalysisJobBuilderWindowImpl.java:433) org.datacleaner.windows.AnalysisJobBuilderWindowImpl.resetJob(AnalysisJobBuilderWindowImpl.java:707) org.datacleaner.windows.AnalysisJobBuilderWindowImpl.onWindowClosing(AnalysisJobBuilderWindowImpl.java:642) org.datacleaner.windows.AbstractWindow.windowClosing(AbstractWindow.java:168) java.awt.Window.processWindowEvent(Unknown Source) javax.swing.JFrame.processWindowEvent(Unknown Source) java.awt.Window.processEvent(Unknown Source) java.awt.Component.dispatchEventImpl(Unknown Source) java.awt.Container.dispatchEventImpl(Unknown Source) java.awt.Window.dispatchEventImpl(Unknown Source) java.awt.Component.dispatchEvent(Unknown Source) java.awt.EventQueue.dispatchEventImpl(Unknown Source) java.awt.EventQueue.access$500(Unknown Source) java.awt.EventQueue$3.run(Unknown Source) java.awt.EventQueue$3.run(Unknown Source) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.awt.EventQueue$4.run(Unknown Source) java.awt.EventQueue$4.run(Unknown Source) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) java.awt.EventQueue.dispatchEvent(Unknown Source) java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.pumpEvents(Unknown Source) java.awt.EventDispatchThread.run(Unknown Source)
The attached zip contains a simple job with which you (at least I) can consistently reproduce this issue.
test.analysis.xml.zip
When I have a job with an output data stream (but not just any job with an output data stream in it will do), and I try to close it, I can't close it and I get a ConcurrentModificationException like this: