GraphStream - Ошибка визуализации больших данных
Я пытаюсь визуализировать мультиграф (просто поместите график, где два ребра могут иметь более одного ребра), который имеет 81 узел, но 263914 разных ребер.
Сбой отображения графика с сообщением об ошибке, приведенным в нижней части этой статьи. Код работает нормально и работает следующим образом.
Из файла считываются координаты и используются для создания соответствующих узлов и ребер графа. Нет проблем с памятью. Файл содержит строки типа "1 2 23 4", что означает, что существует ребро от узла один до двух с ребром, имеющим некоторый цветовой номер 23 с силой 4. Большое количество ребер происходит от большого количества различных цветовых оттенков.,
Если я обрежу края, все будет хорошо. Если у вас есть какие-либо подходы для решения этой проблемы, я был бы очень признателен.
Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException
at java.util.LinkedList.removeFirst(LinkedList.java:270)
at java.util.LinkedList.remove(LinkedList.java:685)
at org.graphstream.stream.SourceBase.manageEvents(SourceBase.java:872)
at org.graphstream.stream.SourceBase.sendAttributeChangedEvent(SourceBase.java:856)
at org.graphstream.util.GraphListeners.sendAttributeChangedEvent(GraphListeners.java:73)
at org.graphstream.ui.graphicGraph.GraphicEdge.attributeChanged(GraphicEdge.java:218)
at org.graphstream.graph.implementations.AbstractElement.addAttribute(AbstractElement.java:544)
at org.graphstream.ui.graphicGraph.GraphicElement.addAttribute(GraphicElement.java:316)
at org.graphstream.graph.implementations.AbstractElement.setAttribute(AbstractElement.java:560)
at org.graphstream.ui.j2dviewer.renderer.EdgeRenderer.getOrSetConnectorSkeleton(EdgeRenderer.scala:100)
at org.graphstream.ui.j2dviewer.renderer.EdgeRenderer.renderElement(EdgeRenderer.scala:63)
at org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$1.apply(StyleRenderer.scala:73)
at org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$1.apply(StyleRenderer.scala:73)
at org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$2.apply(StyleRenderer.scala:101)
at org.graphstream.ui.j2dviewer.renderer.StyleRenderer$$anonfun$render$2.apply(StyleRenderer.scala:97)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at org.graphstream.ui.j2dviewer.renderer.StyleRenderer.render(StyleRenderer.scala:97)
at org.graphstream.ui.j2dviewer.renderer.StyleRenderer.render(StyleRenderer.scala:73)
at org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2$$anonfun$apply$1.apply(J2DGraphRenderer.scala:224)
at org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2$$anonfun$apply$1.apply(J2DGraphRenderer.scala:222)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2.apply(J2DGraphRenderer.scala:222)
at org.graphstream.ui.j2dviewer.J2DGraphRenderer$$anonfun$render$2.apply(J2DGraphRenderer.scala:221)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at org.graphstream.ui.j2dviewer.J2DGraphRenderer.render(J2DGraphRenderer.scala:221)
at org.graphstream.ui.swingViewer.DefaultView.render(DefaultView.java:239)
at org.graphstream.ui.swingViewer.DefaultView.paintComponent(DefaultView.java:174)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5217)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent.paint(JComponent.java:1042)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116)
at java.awt.Container.paint(Container.java:1975)
at java.awt.Window.paint(Window.java:3904)
at javax.swing.RepaintManager$4.run(RepaintManager.java:842)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)