<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 196: NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/" rel="alternate"/><link href="https://sourceforge.net/p/jung/bugs/196/feed.atom" rel="self"/><id>https://sourceforge.net/p/jung/bugs/196/</id><updated>2016-07-20T21:41:12.945000Z</updated><subtitle>Recent changes to 196: NullPointerException with RadialTreeLayout</subtitle><entry><title>#196 NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/?limit=25#83b7" rel="alternate"/><published>2016-07-20T21:41:12.945000Z</published><updated>2016-07-20T21:41:12.945000Z</updated><author><name>Joshua O'Madadhain</name><uri>https://sourceforge.net/u/e-flat/</uri></author><id>https://sourceforge.net0517a06bbb79df9d6628ac627158b521e1fcc165</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Aaron, if this is still happening in JUNG 2.1, please file a bug on JUNG's new home on GitHub at &lt;a href="http://github.com/jrtom/jung." rel="nofollow"&gt;http://github.com/jrtom/jung.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If it's still happening, I agree that it would be good to have a more informative error message.&lt;/p&gt;
&lt;p&gt;FWIW, if you want to establish that a graph has only a single (weakly connected, i.e., ignoring edge direction if any) component, you can use WeakComponentClusterer for that.  (It's not something that we would use as a preprocessing step for the layout algorithm, though.)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#196 NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/?limit=25#8751/fa09" rel="alternate"/><published>2016-07-20T21:40:39.048000Z</published><updated>2016-07-20T21:40:39.048000Z</updated><author><name>Aaron Eng</name><uri>https://sourceforge.net/u/aaroneng/</uri></author><id>https://sourceforge.net3b9ed3f1b7d47646d0a24b4fe9fbb892a8e0173a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Actually, I don't think I'm describing the right scenario.  I was fixing a bunch of bugs in an app that uses jung and now think it was actually a different behavior I was working on when I observed these NPEs.  Sorry, I should have taken better notes.  Unfortunately, I also don't intend to start from the original app code and go through the changes one by one to see where this came up.  So, sorry, not useful comment here.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#196 NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/?limit=25#8751" rel="alternate"/><published>2016-07-20T21:36:12.094000Z</published><updated>2016-07-20T21:36:12.094000Z</updated><author><name>Aaron Eng</name><uri>https://sourceforge.net/u/aaroneng/</uri></author><id>https://sourceforge.net90457823ce5c54a15bf8aa72b3cf72b7fcefa7ee</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I ran into very similar stack traces using RadialTreeLayout.  In my case, it happened to be that the edges/vertices in my graph did not connect.  E.g. I had vertex 1, 2, 3, 4, and edges 1-&amp;gt;2 and 3-&amp;gt;4.  With this set of graph components, the radial treee layout doesn't traverse through one of the sets of vertices/edges and hence does not set positions for them, which means when attempting to convert the polar point to cartesion, you hit NPE.  It's easy to miss from the stack traces that the polarToCartesian method is static, and hence it's not a problem in the polarToCartesian class but rather in the calling class providing null input values.&lt;/p&gt;
&lt;p&gt;It would be nice to have an alternate way for this to fail, with a reasonable message instead of a messageless NPE, but it seems non-trivial to examine all edges/vertices and determine they do not form a continguous graph.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#196 NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/?limit=25#da71" rel="alternate"/><published>2014-02-03T19:07:19.066000Z</published><updated>2014-02-03T19:07:19.066000Z</updated><author><name>Christoph Cwelich</name><uri>https://sourceforge.net/u/zwille/</uri></author><id>https://sourceforge.net120cb9da0a6385d8c71f3162f374246159950b5b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I have the same issue, when inserting a node into RadialTreeLayout:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;03&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0110&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;DEBUG&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;iisys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;oom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;view&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;graph&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;GraphPanel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;insertNodeWithExternalLocation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GraphPanel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;222&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="n"&gt;transformedP&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Point2D&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;Float&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;233.0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;212.0&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;  
&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0532&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ERROR&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;iisys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;oom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;view&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;dialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;DialogManager&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;showErrorMessage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DialogManager&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;84&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="n"&gt;cannot&lt;/span&gt; &lt;span class="nl"&gt;execute:&lt;/span&gt; &lt;span class="n"&gt;Insert&lt;/span&gt; &lt;span class="nl"&gt;node:&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;unknown:&lt;/span&gt;&lt;span class="n"&gt;O&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;  
&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;lang&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;NullPointerException&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;edu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;uci&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;jung&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;algorithms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;PolarPoint&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;polarToCartesian&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PolarPoint&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;65&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;edu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;uci&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;jung&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;algorithms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;RadialTreeLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;transform&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RadialTreeLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;95&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;edu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;uci&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;jung&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;algorithms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;RadialTreeLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;transform&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RadialTreeLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;apache&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;commons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;collections15&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;functors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ChainedTransformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;transform&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ChainedTransformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;127&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;apache&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;commons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;collections15&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;map&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;LazyMap&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LazyMap&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;158&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;edu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;uci&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;jung&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;algorithms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;AbstractLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getCoordinates&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AbstractLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;170&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;edu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;uci&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;jung&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;algorithms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;AbstractLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setLocation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AbstractLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;227&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;edu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;uci&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;jung&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;algorithms&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;LayoutDecorator&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setLocation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LayoutDecorator&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;84&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;edu&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;uci&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;jung&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;visualization&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;layout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ObservableCachingLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setLocation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ObservableCachingLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;92&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;iisys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;oom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;view&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;graph&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;GraphPanel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;insertNodeWithExternalLocation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GraphPanel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;java&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;223&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Here is my method call:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;insertNodeWithExternalLocation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Node&lt;/span&gt; &lt;span class="n"&gt;newNode&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Point2D&lt;/span&gt; &lt;span class="n"&gt;insertPoint&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Layout&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Node&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Relationship&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;graphLayout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;graphViewer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getGraphLayout&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;Graph&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Node&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Relationship&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;graph&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;graphLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getGraph&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;containsVertex&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newNode&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;insertPoint&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;Point2D&lt;/span&gt; &lt;span class="n"&gt;transformedP&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;transformedP&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;     &lt;span class="n"&gt;graphViewer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getRenderContext&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;getMultiLayerTransformer&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;inverseTransform&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;insertPoint&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;slf4j&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;LoggerFactory&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getLogger&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GraphPanel&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;transformedP = &amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;transformedP&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;// next call crashes:&lt;/span&gt;
        &lt;span class="n"&gt;graphLayout&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;setLocation&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newNode&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;transformedP&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addVertex&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newNode&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;finalizeInsertedNode&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newNode&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In this case the RadialTreeLayout is wrapped inside a StaticLayout, since I have to derive it from a DirectedGraph.&lt;br /&gt;
I also use this for TreeLayout, where the insertion code works.&lt;/p&gt;
&lt;p&gt;I guess that RadialTreeLayout#transform(V) is called before or instead of #setLocation(V,Point) and tries to get the location from newNode (which is not mapped inside the layout at that time)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#196 NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/?limit=50#c8f4" rel="alternate"/><published>2013-12-13T09:33:51.566000Z</published><updated>2013-12-13T09:33:51.566000Z</updated><author><name>Tom Nelson</name><uri>https://sourceforge.net/u/tomnelson/</uri></author><id>https://sourceforge.net34564d8cffbbd08d26a2fc018a5a19d2ccc932ab</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It appears that you have a graph vertex that the Layout has no location information for. Did you add a new vertex before this happened? What is the type you are using for your vertices? If it is a custom type, did you implement hashCode and equals?&lt;br /&gt;
Tom&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#196 NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/?limit=25#d416" rel="alternate"/><published>2013-12-13T01:49:05.113000Z</published><updated>2013-12-13T01:49:05.113000Z</updated><author><name>Craig Garrett</name><uri>https://sourceforge.net/u/craiggarrett/</uri></author><id>https://sourceforge.net3f2369ebe223b20a5ac437d43b6b1bc2999da79b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I'm using 2.0.1. Please let me know if there is a later version I should use. If not, I'll try to make a sample program that reproduces the issue.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#196 NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/?limit=25#8312" rel="alternate"/><published>2013-12-12T07:24:20.097000Z</published><updated>2013-12-12T07:24:20.097000Z</updated><author><name>Joshua O'Madadhain</name><uri>https://sourceforge.net/u/e-flat/</uri></author><id>https://sourceforge.net7a5f8304d6f7825534b1204fb55f381eb2435994</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;What version of JUNG are you using?  This sounds a lot like this bug, which we fixed a while back: &lt;a href="http://sourceforge.net/p/jung/bugs/129/"&gt;http://sourceforge.net/p/jung/bugs/129/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It would also help if you could construct a small self-contained example that demonstrates the problem.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>NullPointerException with RadialTreeLayout</title><link href="https://sourceforge.net/p/jung/bugs/196/" rel="alternate"/><published>2013-12-12T01:54:43.300000Z</published><updated>2013-12-12T01:54:43.300000Z</updated><author><name>Craig Garrett</name><uri>https://sourceforge.net/u/craiggarrett/</uri></author><id>https://sourceforge.netddc47a7c3059e74d2c82c2654cf85fdf18c3e30b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Using a Forest and a RadialTreeLayout, I am getting this error:&lt;/p&gt;
&lt;p&gt;java.lang.NullPointerException&lt;br /&gt;
    at edu.uci.ics.jung.algorithms.layout.PolarPoint.polarToCartesian(PolarPoint.java:65)&lt;br /&gt;
    at edu.uci.ics.jung.algorithms.layout.RadialTreeLayout.transform(RadialTreeLayout.java:95)&lt;br /&gt;
    at edu.uci.ics.jung.algorithms.layout.RadialTreeLayout.transform(RadialTreeLayout.java:25)&lt;br /&gt;
    at org.apache.commons.collections15.functors.ChainedTransformer.transform(ChainedTransformer.java:127)&lt;br /&gt;
    at org.apache.commons.collections15.map.LazyMap.get(LazyMap.java:158)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.layout.ObservableCachingLayout.transform(ObservableCachingLayout.java:129)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.layout.ObservableCachingLayout.transform(ObservableCachingLayout.java:41)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.renderers.BasicEdgeRenderer.drawSimpleEdge(BasicEdgeRenderer.java:86)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.renderers.BasicEdgeRenderer.paintEdge(BasicEdgeRenderer.java:62)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.renderers.BasicRenderer.renderEdge(BasicRenderer.java:78)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.renderers.BasicRenderer.render(BasicRenderer.java:38)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.BasicVisualizationServer.renderGraph(BasicVisualizationServer.java:367)&lt;br /&gt;
    at edu.uci.ics.jung.visualization.BasicVisualizationServer.paintComponent(BasicVisualizationServer.java:321)&lt;br /&gt;
    at javax.swing.JComponent.paint(JComponent.java:1037)&lt;br /&gt;
    at javax.swing.JComponent.paintChildren(JComponent.java:870)&lt;br /&gt;
    at javax.swing.JComponent.paint(JComponent.java:1046)&lt;br /&gt;
    at javax.swing.JComponent.paintChildren(JComponent.java:870)&lt;br /&gt;
    at javax.swing.JComponent.paint(JComponent.java:1046)&lt;br /&gt;
    at javax.swing.JComponent.paintChildren(JComponent.java:870)&lt;br /&gt;
    at javax.swing.JComponent.paint(JComponent.java:1046)&lt;br /&gt;
    at javax.swing.JComponent.paintChildren(JComponent.java:870)&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>