You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Frank Barnaby (JIRA)" <ji...@apache.org> on 2007/07/26 22:18:03 UTC

[jira] Created: (RIVER-78) ClassDep generates duplicate output lines

ClassDep generates duplicate output lines
-----------------------------------------

                 Key: RIVER-78
                 URL: https://issues.apache.org/jira/browse/RIVER-78
             Project: River
          Issue Type: Bug
          Components: com_sun_jini_tool
    Affects Versions: jtsk_2.1
            Reporter: Frank Barnaby
            Priority: Minor


Bugtraq ID [6392596|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6392596]

The classdep utility generates duplicate output lines when run under Java5.  In particular, this is seen for enum classes and for inner classes named on the command line.

Consider a java source file (in {{src/foo/Bar.java}}):

{code}
package foo;
public class Bar {
    private static enum Contents { RECORDS, TASKS }
    public class Inner { }
}
{code}

Run:

{code}
rm -rf classes
mkdir classes
javac -d classes src/foo/Bar.java
java -cp /vob/jive/lib/tools.jar:$JAVA_HOME/lib/tools.jar \
    com.sun.jini.tool.ClassDep \
    -cp classes -files -in foo foo.Bar foo.Bar\$Inner
{code}

Result:

{code}
foo/Bar.class
foo/Bar$Contents.class
foo/Bar$Contents.class
foo/Bar$Inner.class
foo/Bar$Inner.class
{code}

Note the two duplicate lines.

Using jdk1.5.0_06.

*Evaluation*
For reasons not yet clear to me, sometimes {{BinaryConstantPool.getDependencies}} returns {{ClassDeclarations}} with a name that is an Identifier for an array type ({{LFoo$Bar;}}) and so the class name embedded in it is a binary (mangled) name, and {{ClassDep.process}} does {{Identifier.lookup}} on that mangled name, which doesn't transform back to the expected canonical "{{Foo. Bar}}" syntax, so the "seen" table ends up with not-equal Identifiers for both "{{Foo$Bar}}" and "{{Foo. Bar}}", when there should just be "{{Foo. Bar}}".




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (RIVER-78) ClassDep generates duplicate output lines

Posted by "Mark Brouwer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RIVER-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Brouwer reassigned RIVER-78:
---------------------------------

    Assignee: Mark Brouwer

> ClassDep generates duplicate output lines
> -----------------------------------------
>
>                 Key: RIVER-78
>                 URL: https://issues.apache.org/jira/browse/RIVER-78
>             Project: River
>          Issue Type: Bug
>          Components: com_sun_jini_tool
>    Affects Versions: jtsk_2.1
>            Reporter: Frank Barnaby
>            Assignee: Mark Brouwer
>            Priority: Minor
>             Fix For: AR2
>
>
> Bugtraq ID [6392596|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6392596]
> The classdep utility generates duplicate output lines when run under Java5.  In particular, this is seen for enum classes and for inner classes named on the command line.
> Consider a java source file (in {{src/foo/Bar.java}}):
> {code}
> package foo;
> public class Bar {
>     private static enum Contents { RECORDS, TASKS }
>     public class Inner { }
> }
> {code}
> Run:
> {code}
> rm -rf classes
> mkdir classes
> javac -d classes src/foo/Bar.java
> java -cp /vob/jive/lib/tools.jar:$JAVA_HOME/lib/tools.jar \
>     com.sun.jini.tool.ClassDep \
>     -cp classes -files -in foo foo.Bar foo.Bar\$Inner
> {code}
> Result:
> {code}
> foo/Bar.class
> foo/Bar$Contents.class
> foo/Bar$Contents.class
> foo/Bar$Inner.class
> foo/Bar$Inner.class
> {code}
> Note the two duplicate lines.
> Using jdk1.5.0_06.
> *Evaluation*
> For reasons not yet clear to me, sometimes {{BinaryConstantPool.getDependencies}} returns {{ClassDeclarations}} with a name that is an Identifier for an array type ({{LFoo$Bar;}}) and so the class name embedded in it is a binary (mangled) name, and {{ClassDep.process}} does {{Identifier.lookup}} on that mangled name, which doesn't transform back to the expected canonical "{{Foo. Bar}}" syntax, so the "seen" table ends up with not-equal Identifiers for both "{{Foo$Bar}}" and "{{Foo. Bar}}", when there should just be "{{Foo. Bar}}".

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (RIVER-78) ClassDep generates duplicate output lines

Posted by "Peter Firmstone (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RIVER-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Peter Firmstone closed RIVER-78.
--------------------------------


> ClassDep generates duplicate output lines
> -----------------------------------------
>
>                 Key: RIVER-78
>                 URL: https://issues.apache.org/jira/browse/RIVER-78
>             Project: River
>          Issue Type: Bug
>          Components: com_sun_jini_tool
>    Affects Versions: jtsk_2.1
>            Reporter: Frank Barnaby
>            Assignee: Mark Brouwer
>            Priority: Minor
>             Fix For: AR2
>
>
> Bugtraq ID [6392596|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6392596]
> The classdep utility generates duplicate output lines when run under Java5.  In particular, this is seen for enum classes and for inner classes named on the command line.
> Consider a java source file (in {{src/foo/Bar.java}}):
> {code}
> package foo;
> public class Bar {
>     private static enum Contents { RECORDS, TASKS }
>     public class Inner { }
> }
> {code}
> Run:
> {code}
> rm -rf classes
> mkdir classes
> javac -d classes src/foo/Bar.java
> java -cp /vob/jive/lib/tools.jar:$JAVA_HOME/lib/tools.jar \
>     com.sun.jini.tool.ClassDep \
>     -cp classes -files -in foo foo.Bar foo.Bar\$Inner
> {code}
> Result:
> {code}
> foo/Bar.class
> foo/Bar$Contents.class
> foo/Bar$Contents.class
> foo/Bar$Inner.class
> foo/Bar$Inner.class
> {code}
> Note the two duplicate lines.
> Using jdk1.5.0_06.
> *Evaluation*
> For reasons not yet clear to me, sometimes {{BinaryConstantPool.getDependencies}} returns {{ClassDeclarations}} with a name that is an Identifier for an array type ({{LFoo$Bar;}}) and so the class name embedded in it is a binary (mangled) name, and {{ClassDep.process}} does {{Identifier.lookup}} on that mangled name, which doesn't transform back to the expected canonical "{{Foo. Bar}}" syntax, so the "seen" table ends up with not-equal Identifiers for both "{{Foo$Bar}}" and "{{Foo. Bar}}", when there should just be "{{Foo. Bar}}".

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Work started: (RIVER-78) ClassDep generates duplicate output lines

Posted by "Mark Brouwer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RIVER-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on RIVER-78 started by Mark Brouwer.

> ClassDep generates duplicate output lines
> -----------------------------------------
>
>                 Key: RIVER-78
>                 URL: https://issues.apache.org/jira/browse/RIVER-78
>             Project: River
>          Issue Type: Bug
>          Components: com_sun_jini_tool
>    Affects Versions: jtsk_2.1
>            Reporter: Frank Barnaby
>            Assignee: Mark Brouwer
>            Priority: Minor
>             Fix For: AR2
>
>
> Bugtraq ID [6392596|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6392596]
> The classdep utility generates duplicate output lines when run under Java5.  In particular, this is seen for enum classes and for inner classes named on the command line.
> Consider a java source file (in {{src/foo/Bar.java}}):
> {code}
> package foo;
> public class Bar {
>     private static enum Contents { RECORDS, TASKS }
>     public class Inner { }
> }
> {code}
> Run:
> {code}
> rm -rf classes
> mkdir classes
> javac -d classes src/foo/Bar.java
> java -cp /vob/jive/lib/tools.jar:$JAVA_HOME/lib/tools.jar \
>     com.sun.jini.tool.ClassDep \
>     -cp classes -files -in foo foo.Bar foo.Bar\$Inner
> {code}
> Result:
> {code}
> foo/Bar.class
> foo/Bar$Contents.class
> foo/Bar$Contents.class
> foo/Bar$Inner.class
> foo/Bar$Inner.class
> {code}
> Note the two duplicate lines.
> Using jdk1.5.0_06.
> *Evaluation*
> For reasons not yet clear to me, sometimes {{BinaryConstantPool.getDependencies}} returns {{ClassDeclarations}} with a name that is an Identifier for an array type ({{LFoo$Bar;}}) and so the class name embedded in it is a binary (mangled) name, and {{ClassDep.process}} does {{Identifier.lookup}} on that mangled name, which doesn't transform back to the expected canonical "{{Foo. Bar}}" syntax, so the "seen" table ends up with not-equal Identifiers for both "{{Foo$Bar}}" and "{{Foo. Bar}}", when there should just be "{{Foo. Bar}}".

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (RIVER-78) ClassDep generates duplicate output lines

Posted by "Mark Brouwer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RIVER-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Brouwer updated RIVER-78:
------------------------------

    Fix Version/s: AR2

> ClassDep generates duplicate output lines
> -----------------------------------------
>
>                 Key: RIVER-78
>                 URL: https://issues.apache.org/jira/browse/RIVER-78
>             Project: River
>          Issue Type: Bug
>          Components: com_sun_jini_tool
>    Affects Versions: jtsk_2.1
>            Reporter: Frank Barnaby
>            Priority: Minor
>             Fix For: AR2
>
>
> Bugtraq ID [6392596|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6392596]
> The classdep utility generates duplicate output lines when run under Java5.  In particular, this is seen for enum classes and for inner classes named on the command line.
> Consider a java source file (in {{src/foo/Bar.java}}):
> {code}
> package foo;
> public class Bar {
>     private static enum Contents { RECORDS, TASKS }
>     public class Inner { }
> }
> {code}
> Run:
> {code}
> rm -rf classes
> mkdir classes
> javac -d classes src/foo/Bar.java
> java -cp /vob/jive/lib/tools.jar:$JAVA_HOME/lib/tools.jar \
>     com.sun.jini.tool.ClassDep \
>     -cp classes -files -in foo foo.Bar foo.Bar\$Inner
> {code}
> Result:
> {code}
> foo/Bar.class
> foo/Bar$Contents.class
> foo/Bar$Contents.class
> foo/Bar$Inner.class
> foo/Bar$Inner.class
> {code}
> Note the two duplicate lines.
> Using jdk1.5.0_06.
> *Evaluation*
> For reasons not yet clear to me, sometimes {{BinaryConstantPool.getDependencies}} returns {{ClassDeclarations}} with a name that is an Identifier for an array type ({{LFoo$Bar;}}) and so the class name embedded in it is a binary (mangled) name, and {{ClassDep.process}} does {{Identifier.lookup}} on that mangled name, which doesn't transform back to the expected canonical "{{Foo. Bar}}" syntax, so the "seen" table ends up with not-equal Identifiers for both "{{Foo$Bar}}" and "{{Foo. Bar}}", when there should just be "{{Foo. Bar}}".

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (RIVER-78) ClassDep generates duplicate output lines

Posted by "Mark Brouwer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RIVER-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Brouwer resolved RIVER-78.
-------------------------------

    Resolution: Fixed

> ClassDep generates duplicate output lines
> -----------------------------------------
>
>                 Key: RIVER-78
>                 URL: https://issues.apache.org/jira/browse/RIVER-78
>             Project: River
>          Issue Type: Bug
>          Components: com_sun_jini_tool
>    Affects Versions: jtsk_2.1
>            Reporter: Frank Barnaby
>            Assignee: Mark Brouwer
>            Priority: Minor
>             Fix For: AR2
>
>
> Bugtraq ID [6392596|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6392596]
> The classdep utility generates duplicate output lines when run under Java5.  In particular, this is seen for enum classes and for inner classes named on the command line.
> Consider a java source file (in {{src/foo/Bar.java}}):
> {code}
> package foo;
> public class Bar {
>     private static enum Contents { RECORDS, TASKS }
>     public class Inner { }
> }
> {code}
> Run:
> {code}
> rm -rf classes
> mkdir classes
> javac -d classes src/foo/Bar.java
> java -cp /vob/jive/lib/tools.jar:$JAVA_HOME/lib/tools.jar \
>     com.sun.jini.tool.ClassDep \
>     -cp classes -files -in foo foo.Bar foo.Bar\$Inner
> {code}
> Result:
> {code}
> foo/Bar.class
> foo/Bar$Contents.class
> foo/Bar$Contents.class
> foo/Bar$Inner.class
> foo/Bar$Inner.class
> {code}
> Note the two duplicate lines.
> Using jdk1.5.0_06.
> *Evaluation*
> For reasons not yet clear to me, sometimes {{BinaryConstantPool.getDependencies}} returns {{ClassDeclarations}} with a name that is an Identifier for an array type ({{LFoo$Bar;}}) and so the class name embedded in it is a binary (mangled) name, and {{ClassDep.process}} does {{Identifier.lookup}} on that mangled name, which doesn't transform back to the expected canonical "{{Foo. Bar}}" syntax, so the "seen" table ends up with not-equal Identifiers for both "{{Foo$Bar}}" and "{{Foo. Bar}}", when there should just be "{{Foo. Bar}}".

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.