<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to bugs</title><link href="https://sourceforge.net/p/recoder/bugs/" rel="alternate"/><link href="https://sourceforge.net/p/recoder/bugs/feed.atom" rel="self"/><id>https://sourceforge.net/p/recoder/bugs/</id><updated>2014-04-15T18:11:32.891000Z</updated><subtitle>Recent changes to bugs</subtitle><entry><title>#104 run.tests not working</title><link href="https://sourceforge.net/p/recoder/bugs/104/?limit=25#9f29" rel="alternate"/><published>2014-04-15T18:11:32.891000Z</published><updated>2014-04-15T18:11:32.891000Z</updated><author><name>Tobias Gutzmann</name><uri>https://sourceforge.net/u/tgutzmann/</uri></author><id>https://sourceforge.netd459940d83a6dc06fdf5c4d4e0893dafb22acf6e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; wont-fix&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;assigned_to&lt;/strong&gt;: Tobias Gutzmann&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#104 run.tests not working</title><link href="https://sourceforge.net/p/recoder/bugs/104/?limit=25#0ee6" rel="alternate"/><published>2014-04-15T18:11:14.361000Z</published><updated>2014-04-15T18:11:14.361000Z</updated><author><name>Tobias Gutzmann</name><uri>https://sourceforge.net/u/tgutzmann/</uri></author><id>https://sourceforge.net0fa6e512adb11463f5242c6556be4ea05a17ec01</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It's surely a "bug" but nothing that will be fixed. Test should run fine with any junit-launcher (e.g. from within Eclipse, and the ant-scripts are obsolete / hopefully soon to be replaced with Maven.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>run.tests not working</title><link href="https://sourceforge.net/p/recoder/bugs/104/" rel="alternate"/><published>2014-04-09T19:29:14.969000Z</published><updated>2014-04-09T19:29:14.969000Z</updated><author><name>Simon E. Silva Lauinger</name><uri>https://sourceforge.net/u/simonsilvalauin/</uri></author><id>https://sourceforge.netfd1d8240a074cf609c38759cdcd613621a266e9e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Running "ant run.tests" finishs without success. I get the following error message:&lt;br /&gt;
&lt;span&gt;[java]&lt;/span&gt; Error: Main method not found in class recoder.testsuite.CompleteTestSuite, please define the main method as: public static void main(String[] args)&lt;/p&gt;
&lt;p&gt;Is it a "bug"?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>run.tests not working</title><link href="https://sourceforge.net/p/recoder/bugs/104/" rel="alternate"/><published>2014-04-09T19:29:14.969000Z</published><updated>2014-04-09T19:29:14.969000Z</updated><author><name>Simon E. Silva Lauinger</name><uri>https://sourceforge.net/u/simonsilvalauin/</uri></author><id>https://sourceforge.netffeea474a1d1472b990319ed299cf36f0dcdffea</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 104 has been modified: run.tests not working&lt;br /&gt;
Edited By: Tobias Gutzmann (tgutzmann)&lt;br /&gt;
Status updated: u'open' =&amp;gt; u'wont-fix'&lt;br /&gt;
Owner updated: None =&amp;gt; u'tgutzmann'&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#100 Bug with Diamond Operator</title><link href="https://sourceforge.net/p/recoder/bugs/100/?limit=25#cb5c" rel="alternate"/><published>2013-05-30T20:21:14.506000Z</published><updated>2013-05-30T20:21:14.506000Z</updated><author><name>Tobias Gutzmann</name><uri>https://sourceforge.net/u/tgutzmann/</uri></author><id>https://sourceforge.netf0eafcc0a744e8ca75388cfdf76aff01f4dd0aad</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#103 NPE in DefaultSourceInfo.getMethodsFromStaticOnDemandImports</title><link href="https://sourceforge.net/p/recoder/bugs/103/?limit=25#3515" rel="alternate"/><published>2013-05-13T21:56:10.165000Z</published><updated>2013-05-13T21:56:10.165000Z</updated><author><name>Tobias Gutzmann</name><uri>https://sourceforge.net/u/tgutzmann/</uri></author><id>https://sourceforge.netc11f50c4b371878cdb9be466a7c674822b03e887</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#102 ArrayType.isPublic() returns wrong result</title><link href="https://sourceforge.net/p/recoder/bugs/102/?limit=25#ba31" rel="alternate"/><published>2013-05-13T21:40:18.750000Z</published><updated>2013-05-13T21:40:18.750000Z</updated><author><name>Tobias Gutzmann</name><uri>https://sourceforge.net/u/tgutzmann/</uri></author><id>https://sourceforge.net95d9bfe2c9da814d463273526e47f9542b6768d4</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>NPE in DefaultSourceInfo.getMethodsFromStaticOnDemandImports</title><link href="https://sourceforge.net/p/recoder/bugs/103/" rel="alternate"/><published>2013-04-21T08:31:54.617000Z</published><updated>2013-04-21T08:31:54.617000Z</updated><author><name>Javier Godoy</name><uri>https://sourceforge.net/u/rjgodoy/</uri></author><id>https://sourceforge.net3062c9a9f5ea3845a97a80c180f175576b2f9c71</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;When a library referenced in the analyzed code is missing, a NPE may be thrown because ni.getClassType(...) returns null. &lt;/p&gt;
&lt;p&gt;(using /trunk rev. 898)&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;Caused&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NullPointerException&lt;/span&gt;
&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;recoder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DefaultSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getMethodsFromStaticOnDemandImports&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DefaultSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;2209&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;recoder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DefaultSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getMethods&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DefaultSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;2169&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;recoder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DefaultSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DefaultSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;2095&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;recoder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DefaultCrossReferenceSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;analyzeReferences&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DefaultCrossReferenceSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;616&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;recoder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DefaultCrossReferenceSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;modelChanged&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DefaultCrossReferenceSourceInfo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;229&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="n"&gt;recoder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ChangeHistory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;updateModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ChangeHistory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;500&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I solved this issue by modifying  DefaultSourceInfo.getMethodsFromStaticOnDemandImports as follow:&lt;/p&gt;
&lt;p&gt;Approach 1: throw an exception that conveys some information&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="nx"&gt;pathName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Naming&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toPathName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;imp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getTypeReference&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
 &lt;span class="nx"&gt;ClassType&lt;/span&gt; &lt;span class="nx"&gt;classType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ni&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getClassType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pathName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;classType&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
   &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;RuntimeException&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ClassNotFoundException&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pathName&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
 &lt;span class="nx"&gt;List&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?&lt;/span&gt; &lt;span class="k"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;Method&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;ml&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;classType&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getMethods&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Approach 2: silently ignore unresolved classes (results in uncollated references)&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="nx"&gt;pathName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Naming&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toPathName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;imp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getTypeReference&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
 &lt;span class="nx"&gt;ClassType&lt;/span&gt; &lt;span class="nx"&gt;classType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ni&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getClassType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pathName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;classType&lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;List&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?&lt;/span&gt; &lt;span class="k"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;Method&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;ml&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;classType&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getMethods&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;int&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;ml&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>NPE in DefaultSourceInfo.getMethodsFromStaticOnDemandImports</title><link href="https://sourceforge.net/p/recoder/bugs/103/" rel="alternate"/><published>2013-04-21T08:31:54.617000Z</published><updated>2013-04-21T08:31:54.617000Z</updated><author><name>Javier Godoy</name><uri>https://sourceforge.net/u/rjgodoy/</uri></author><id>https://sourceforge.nete8f26683d3c5982a8cf5f12cff5859a6cfbea8c0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 103 has been modified: NPE in DefaultSourceInfo.getMethodsFromStaticOnDemandImports&lt;br /&gt;
Edited By: Tobias Gutzmann (tgutzmann)&lt;br /&gt;
Status updated: u'open' =&amp;gt; u'closed'&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#102 ArrayType.isPublic() returns wrong result</title><link href="https://sourceforge.net/p/recoder/bugs/102/?limit=25#92ab" rel="alternate"/><published>2013-03-01T22:46:12.087000Z</published><updated>2013-03-01T22:46:12.087000Z</updated><author><name>Tobias Gutzmann</name><uri>https://sourceforge.net/u/tgutzmann/</uri></author><id>https://sourceforge.neta243e06161ac2b6fde8b00f187282047a5db853c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;summary&lt;/strong&gt;: ArrayCloneMethod.isPublic() returns wrong result --&amp;gt; ArrayType.isPublic() returns wrong result&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry></feed>