river-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Brouwer (JIRA)" <j...@apache.org>
Subject [jira] Updated: (RIVER-78) ClassDep generates duplicate output lines
Date Sun, 24 Feb 2008 20:31:15 GMT

     [ 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.


Mime
View raw message