Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

error applying layout

Help
2014-01-09
2014-01-13
  • 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/