elk
elk copied to clipboard
Layered INCLUDE_CHILDREN with forceNodeModelOrder causes NPE
Describe the bug
crossingMinimization.forceNodeModelOrder causes a NullPointerException when INCLUDE_CHILDREN is set.
Minimal graph:
graph root
algorithm: layered
hierarchyHandling: INCLUDE_CHILDREN
node container {
crossingMinimization.forceNodeModelOrder: true
node childOne {
layout [ size: 10, 10 ]
}
node childTwo {
layout [ size: 10, 10 ]
}
}
Exception:
java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "org.eclipse.elk.alg.layered.graph.LGraph.getProperty(org.eclipse.elk.graph.properties.IProperty)" is null
at org.eclipse.elk.alg.layered.p3order.ModelOrderBarycenterHeuristic.lambda$0 (ModelOrderBarycenterHeuristic.java:80)
at org.eclipse.elk.alg.layered.p3order.ModelOrderBarycenterHeuristic.insertionSort (ModelOrderBarycenterHeuristic.java:240)
at org.eclipse.elk.alg.layered.p3order.ModelOrderBarycenterHeuristic.minimizeCrossings (ModelOrderBarycenterHeuristic.java:124)
at org.eclipse.elk.alg.layered.p3order.BarycenterHeuristic.setFirstLayerOrder (BarycenterHeuristic.java:360)
at org.eclipse.elk.alg.layered.p3order.LayerSweepCrossingMinimizer.minimizeCrossingsWithCounter (LayerSweepCrossingMinimizer.java:244)
at org.eclipse.elk.alg.layered.p3order.LayerSweepCrossingMinimizer.compareDifferentRandomizedLayouts (LayerSweepCrossingMinimizer.java:216)
at org.eclipse.elk.alg.layered.p3order.LayerSweepCrossingMinimizer.minimizeCrossings (LayerSweepCrossingMinimizer.java:149)
at org.eclipse.elk.alg.layered.p3order.LayerSweepCrossingMinimizer.process (LayerSweepCrossingMinimizer.java:127)
at org.eclipse.elk.alg.layered.p3order.LayerSweepCrossingMinimizer.process (LayerSweepCrossingMinimizer.java:1)
at org.eclipse.elk.alg.layered.ElkLayered.hierarchicalLayout (ElkLayered.java:269)
at org.eclipse.elk.alg.layered.ElkLayered.doCompoundLayout (ElkLayered.java:186)
at org.eclipse.elk.alg.layered.LayeredLayoutProvider.layout (LayeredLayoutProvider.java:53)
at org.eclipse.elk.core.RecursiveGraphLayoutEngine.executeAlgorithm (RecursiveGraphLayoutEngine.java:456)
at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layoutRecursively (RecursiveGraphLayoutEngine.java:423)
at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layout (RecursiveGraphLayoutEngine.java:105)
at org.eclipse.elk.core.RecursiveGraphLayoutEngine.layout (RecursiveGraphLayoutEngine.java:81)
at com.pylon.ElkDebug.main (ElkDebug.java:28)
at org.codehaus.mojo.exec.ExecJavaMojo.doExec (ExecJavaMojo.java:371)
at org.codehaus.mojo.exec.ExecJavaMojo.lambda$execute$0 (ExecJavaMojo.java:289)
at java.lang.Thread.run (Thread.java:1447)
Expected behavior
Should run without error, as in 0.10.0.
ELK Version
0.11.0 (not available on elk live)