You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Mark Roberts (JIRA)" <ji...@apache.org> on 2017/02/24 22:22:44 UTC
[jira] [Commented] (BCEL-279) Utility.methodSignature* throw
ClassFormatException when converting binary names with generics.
[ https://issues.apache.org/jira/browse/BCEL-279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15883626#comment-15883626 ]
Mark Roberts commented on BCEL-279:
-----------------------------------
The signature processing in BCEL has not been updated to support generic types. I have been trying to add some support (see https://issues.apache.org/jira/browse/BCEL-285) but the code really needs a complete rewrite. It should probably be modified to use sun.reflect.generics.parser.
> Utility.methodSignature* throw ClassFormatException when converting binary names with generics.
> -----------------------------------------------------------------------------------------------
>
> Key: BCEL-279
> URL: https://issues.apache.org/jira/browse/BCEL-279
> Project: Commons BCEL
> Issue Type: Bug
> Components: Parser
> Affects Versions: 6.0
> Reporter: Dongsun Kim
> Fix For: 6.1
>
>
> When I try the following, Utility class throws ClassFormatException:
> {code}
> String sig = "<T:Ljava/lang/Object;>(Lcom/google/common/io/ByteProcessor<TT;>;)TT;"
> Utility.methodSignatureArgumentTypes(sig, false)
> {code}
> The above signature actually exists in com.google.common.io.ByteSource in Google Guava.
> Utility.methodSignatureReturnType does not throw any exception but its return value does not look valid.
> When I try this:
> {code}
> String sig = "<T:Ljava/lang/Object;>(Lcom/google/common/io/ByteProcessor<TT;>;)TT;"
> Utility.methodSignaturerReturnType(sig, false)
> {code}
> expected: java.lang.Object
> actual: T
> It seems that org.apache.bcel.generic.Type.java also has the same issue.
> Dongsun.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)