commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Roberts (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (BCEL-276) LocalVariableTypeTable is not updated.
Date Mon, 12 Sep 2016 16:42:20 GMT

    [ https://issues.apache.org/jira/browse/BCEL-276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15484587#comment-15484587
] 

Mark Roberts commented on BCEL-276:
-----------------------------------

This issue needs to be reopened as the code is incorrect.  It saves a copy of the LocalVariableTable
and then reuses it later.  But that is obviously incorrect as any changes that have been made
to the LocalVariableTable in the meantime are discarded.  I have attached a diff file with
the changes I made to correct the problem.  Unfortunately, that broke the new associated test
case for reasons I could not understand.  The original patch developer will need to review
the situation.  The key point is the change at line 622 where we get the latest copy of the
LocalVariableTable - not some previously cached version.

Note that I also added a couple of minimal routines that allow a user to get a copy of or
delete the LocalVariableTypeTable.  This is necessary if you make major changes to the LocalVariableTable
(such as changing the slot number) so that the two tables cannot be resynchronized.  BCEL
should take care of all of this automatically, but as we all know the support in this area
and in the StackMapTable area is lacking.



> LocalVariableTypeTable is not updated. 
> ---------------------------------------
>
>                 Key: BCEL-276
>                 URL: https://issues.apache.org/jira/browse/BCEL-276
>             Project: Commons BCEL
>          Issue Type: Bug
>    Affects Versions: 6.0
>            Reporter: Sam Yoon
>            Assignee: Benedikt Ritter
>              Labels: github
>             Fix For: 6.1
>
>         Attachments: LocalVariableTypeTableTest.java, SimpleClassHasMethodIncludeGenericArgument.java
>
>
> If a method for BCI have at least one generic type of argument JVM throw java.lang.ClassFormatError
due to not updated LocalVariableTable.
> I know there is workaround as call removeLocalVariables method.
> But I think it's better that BCEL can stay proper LocalVariableTable.
> I'm also pull test case can reproduce error.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message