// Node attributes
NodeId Label ColorName NodeShape NodeSize StartTime EndTime
1 "ROHAT1" White ellipse 5 0 25
2 "ROHAT2" White ellipse 5 0 27
3 "ROHAT3" White ellipse 5 0 27
4 "ROHAT4" White ellipse 5 0 27
5 "relatives" White ellipse 5 0 56
1 "ROHAT1" Red ellipse 5 25 56
2 "ROHAT2" Red ellipse 5 27 56
3 "ROHAT3" Red ellipse 5 27 56
4 "ROHAT4" Red ellipse 5 27 56
FromId ToId ArcWeight ArcWidth ColorName StartTime EndTime
5 1 1 1 Red 26 56
1 2 1 1 Red 26 56
1 3 1 1 Red 26 56
1 4 1 1 Red 26 56
ClusterId NodeIds ClusterWeight Color BorderColor StartTime EndTime
ROHAT {1,2,3,4} 1 Red Red 0 56
BORANANDA {5} 1 Black Black 0 56
I succeed reading in the file, creating a layout (FR layout) but when I try to apply the app get frozen because of a nullpointerexception. Any idea about how to solve my issue? here's the log:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sonia.GeomUtils.convexHull(GeomUtils.java:162)
at sonia.NodeClusterAttribute.computeShapeFor(NodeClusterAttribute.java:241)
at sonia.RenderSlice.render(RenderSlice.java:159)
at sonia.SoniaCanvas.updateDisplay(SoniaCanvas.java:198)
at sonia.SoniaCanvas.paintComponent(SoniaCanvas.java:125)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1047)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5226)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1529)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1452)
at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
at javax.swing.JComponent.paint(JComponent.java:1040)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
at java.awt.Window.paint(Window.java:3877)
at javax.swing.RepaintManager$3.run(RepaintManager.java:819)
at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718)
at javax.swing.RepaintManager.access$1100(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
I am on Sonia 1.2.2 on a Mac OSX with Mavericks.
thanks in advance for any hint/advice
Best regards,
Simone
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Simone,
You've found a bug. It appears that the renderer for clusters doesn't correctly handle the case where a cluster has only a single vertex. I've opened a ticket for the issues:
Dear List,
I have this .son file:
// Node attributes
NodeId Label ColorName NodeShape NodeSize StartTime EndTime
1 "ROHAT1" White ellipse 5 0 25
2 "ROHAT2" White ellipse 5 0 27
3 "ROHAT3" White ellipse 5 0 27
4 "ROHAT4" White ellipse 5 0 27
5 "relatives" White ellipse 5 0 56
1 "ROHAT1" Red ellipse 5 25 56
2 "ROHAT2" Red ellipse 5 27 56
3 "ROHAT3" Red ellipse 5 27 56
4 "ROHAT4" Red ellipse 5 27 56
FromId ToId ArcWeight ArcWidth ColorName StartTime EndTime
5 1 1 1 Red 26 56
1 2 1 1 Red 26 56
1 3 1 1 Red 26 56
1 4 1 1 Red 26 56
ClusterId NodeIds ClusterWeight Color BorderColor StartTime EndTime
ROHAT {1,2,3,4} 1 Red Red 0 56
BORANANDA {5} 1 Black Black 0 56
I succeed reading in the file, creating a layout (FR layout) but when I try to apply the app get frozen because of a nullpointerexception. Any idea about how to solve my issue? here's the log:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sonia.GeomUtils.convexHull(GeomUtils.java:162)
at sonia.NodeClusterAttribute.computeShapeFor(NodeClusterAttribute.java:241)
at sonia.RenderSlice.render(RenderSlice.java:159)
at sonia.SoniaCanvas.updateDisplay(SoniaCanvas.java:198)
at sonia.SoniaCanvas.paintComponent(SoniaCanvas.java:125)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1047)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5226)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1529)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1452)
at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
at javax.swing.JComponent.paint(JComponent.java:1040)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
at java.awt.Window.paint(Window.java:3877)
at javax.swing.RepaintManager$3.run(RepaintManager.java:819)
at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718)
at javax.swing.RepaintManager.access$1100(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
I am on Sonia 1.2.2 on a Mac OSX with Mavericks.
thanks in advance for any hint/advice
Best regards,
Simone
Hi Simone,
You've found a bug. It appears that the renderer for clusters doesn't correctly handle the case where a cluster has only a single vertex. I've opened a ticket for the issues:
https://sourceforge.net/p/sonia/bugs/36/