[
https://issues.apache.org/jira/browse/BCEL-267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16755418#comment-16755418
]
Stephan Herrmann commented on BCEL-267:
---------------------------------------
{quote}[ANNOUNCEMENT] Apache Commons BCEL 6.3 Released\{quote}
Still no committer accepts the fact that a bug exists, for which fix & test
have been submitted years ago? What else do you need?
C'mon guys, open source can do better than just hand waving and shrugging the
issue off, which effectively prohibits the use of BCEL for load time
transformers.
> Race conditions on static fields in BranchHandle and InstructionHandle
> ----------------------------------------------------------------------
>
> Key: BCEL-267
> URL: https://issues.apache.org/jira/browse/BCEL-267
> Project: Commons BCEL
> Issue Type: Bug
> Components: Main
> Affects Versions: 5.2
> Reporter: Stephan Herrmann
> Priority: Major
> Attachments:
> BCEL267--Race-conditions-on-static-fields-in-BranchH.patch
>
>
> I have observed race conditions causing NullPointerException like this
> {code}java.lang.NullPointerException
> at
> org.apache.bcel.generic.InstructionList.getInstructionHandles(InstructionList.java:1021)
> at
> org.apache.bcel.generic.InstructionList.findHandle(InstructionList.java:141)
> at org.apache.bcel.generic.MethodGen.<init>(MethodGen.java:194)
> {code}
> In the debugger I could verify that concurrent access to the fields
> {{BranchHandle.bh_list}} or {{InstructionHandle.ih_list}} can cause
> corruption of those lists.
> I succeeded to make the exception less frequent by adding synchronized
> blocks, but still the exception could be observed. I concluded that for safe
> protection the fields would need to be made volatile, which in the end might
> actually defeat their original purpose of optimization.
> I have since then run with a patched version of BCEL, where those static
> fields were simply removed and new Handles were created on every request.
> This variant finally was free of the race condition.
> Seeing activity towards a 6.0 release, I'd appreciate if this change could be
> incorporated.
> The original bug tracking my experiments can be found in Eclipse bugzilla:
> https://bugs.eclipse.org/344350
> The modified classes (based on 5.2) can be found here:
> -
> http://git.eclipse.org/c/objectteams/org.eclipse.objectteams.git/tree/plugins/org.eclipse.objectteams.otre/bcelpatchsrc/org/apache/bcel/generic
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)