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