<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 2: Correct decompilation of inner classes fails</title><link>https://sourceforge.net/p/dcompiler/bugs/2/</link><description>Recent changes to 2: Correct decompilation of inner classes fails</description><atom:link href="https://sourceforge.net/p/dcompiler/bugs/2/feed.rss" rel="self"/><language>en</language><lastBuildDate>Sun, 12 Nov 2006 16:03:59 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/dcompiler/bugs/2/feed.rss" rel="self" type="application/rss+xml"/><item><title>Correct decompilation of inner classes fails</title><link>https://sourceforge.net/p/dcompiler/bugs/2/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The following code compiled with the Sun Java compiler&lt;br /&gt;
version 1.3.1_19 is not successfully decompiled, that&lt;br /&gt;
is recompilation of the compiled class file fails.&lt;/p&gt;
&lt;p&gt;//---------------------------------------------------&lt;br /&gt;
/* Original source of InnerClassTest.java */&lt;br /&gt;
public class InnerClassTest {&lt;br /&gt;
    public InnerClass myInnerClass;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;InnerClassTest&lt;/span&gt;&lt;span class="o"&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="o"&gt;\&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;myInnerClass&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;InnerClass&lt;/span&gt;&lt;span class="o"&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="o"&gt;\&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="n"&gt;InnerClass&lt;/span&gt; &lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;private&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;sValue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="n"&gt;InnerClass&lt;/span&gt;&lt;span class="o"&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="o"&gt;\&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;sValue&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &amp;quot;&lt;span class="n"&gt;Constructor&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;InnerClass&lt;/span&gt; &lt;span class="n"&gt;called&lt;/span&gt;&amp;quot;&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="n"&gt;public&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;getValue&lt;/span&gt;&lt;span class="o"&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="o"&gt;\&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;sValue&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="o"&gt;\&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;public&lt;/span&gt; &lt;span class="n"&gt;static&lt;/span&gt; &lt;span class="n"&gt;void&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="o"&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="n"&gt;args&lt;/span&gt;&lt;span class="o"&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="n"&gt;InnerClassTest&lt;/span&gt; &lt;span class="n"&gt;myInnerClassTest&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="n"&gt;myInnerClassTest&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;InnerClassTest&lt;/span&gt;&lt;span class="o"&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;/pre&gt;&lt;/div&gt;
&lt;p&gt;System.out.println(myInnerClassTest.myInnerClass.getValue());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
//---------------------------------------------------&lt;/p&gt;
&lt;p&gt;//---------------------------------------------------&lt;br /&gt;
/* Decompiled source of InnerClassTest.class */&lt;br /&gt;
//  Decompiled by jdec&lt;/p&gt;
&lt;p&gt;//  DECOMPILER HOME PAGE:&lt;br /&gt;
&lt;a href="http://sourceforge.net/projects/jdec"&gt;http://sourceforge.net/projects/jdec&lt;/a&gt;&lt;br /&gt;
//  Copyright (C)2006 Swaroop Belur.&lt;br /&gt;
//  jdec comes with ABSOLUTELY NO WARRANTY;&lt;br /&gt;
//  This is free software, and you are welcome to&lt;br /&gt;
redistribute&lt;br /&gt;
//  it under certain conditions;&lt;br /&gt;
//  See the File 'COPYING' for more details.&lt;/p&gt;
&lt;p&gt;/**** List of All Imported Classes ***/&lt;/p&gt;
&lt;p&gt;import java.io.PrintStream;&lt;br /&gt;
import java.lang.Object;&lt;br /&gt;
import java.lang.System;&lt;/p&gt;
&lt;p&gt;// End of Import&lt;/p&gt;
&lt;p&gt;public  class  InnerClassTest  extends  Object&lt;br /&gt;
{&lt;/p&gt;
&lt;p&gt;public  InnerClassTest$InnerClass  myInnerClass   ;&lt;/p&gt;
&lt;p&gt;public  static   void main(String [] param_0) &lt;br /&gt;
{&lt;/p&gt;
&lt;p&gt;InnerClassTest JDecGenerated2=new InnerClassTest();&lt;br /&gt;
InnerClassTest  Var_7_1=JDecGenerated2;&lt;/p&gt;
&lt;p&gt;System.out.println(Var_7_1.myInnerClass.getValue());&lt;br /&gt;
return;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;InnerClassTest( ) &lt;br /&gt;
{&lt;br /&gt;
super();&lt;br /&gt;
InnerClassTest$InnerClass JDecGenerated7=new&lt;br /&gt;
InnerClassTest$InnerClass(this);&lt;br /&gt;
this.myInnerClass =JDecGenerated7;&lt;br /&gt;
return;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;br /&gt;
//---------------------------------------------------&lt;/p&gt;
&lt;p&gt;//---------------------------------------------------&lt;br /&gt;
Compiler errors:&lt;br /&gt;
InnerClassTest.java:25: cannot resolve symbol&lt;br /&gt;
symbol  : class InnerClassTest$InnerClass&lt;br /&gt;
location: class InnerClassTest&lt;br /&gt;
public  InnerClassTest$InnerClass  myInnerClass   ;&lt;br /&gt;
^&lt;br /&gt;
InnerClassTest.java:41: cannot resolve symbol&lt;br /&gt;
symbol  : class InnerClassTest$InnerClass&lt;br /&gt;
location: class InnerClassTest&lt;br /&gt;
InnerClassTest$InnerClass JDecGenerated7=new&lt;br /&gt;
InnerClassTest$InnerClass(this);&lt;br /&gt;
^&lt;br /&gt;
InnerClassTest.java:41: cannot resolve symbol&lt;br /&gt;
symbol  : class InnerClassTest$InnerClass&lt;br /&gt;
location: class InnerClassTest&lt;br /&gt;
InnerClassTest$InnerClass JDecGenerated7=new&lt;br /&gt;
InnerClassTest$InnerClass(this);&lt;br /&gt;
^&lt;br /&gt;
3 errors&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anonymous</dc:creator><pubDate>Sun, 12 Nov 2006 16:03:59 -0000</pubDate><guid>https://sourceforge.net6f59ef7b9976c137c8502360aefe4563b2087779</guid></item></channel></rss>