History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: OGNL-52
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Jesse Kuhnert
Reporter: Stephen Haberman
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
OGNL

setAccessible(false) threading bug

Created: 22/Apr/07 10:32 PM   Updated: 24/Apr/07 11:36 AM
Component/s: Core Runtime
Affects Version/s: 2.6.9
Fix Version/s: 2.7

Flags: Patch


 Description  « Hide
We were sporadically seeing the exception:

Class ognl.OgnlRuntime can not access a member of class java.util.Collections$UnmodifiableList with modifiers "public"

In our production code trying to call "get" against an unmodifiable list. We've fixed it by commenting out OgnlRuntime:534.

It seems that 2 threads would enter invokeMethod. Both would call setAccessible(true). The first thread would call the method, then setAccessible(false). Then the second thread would try to call the method but, alas, no more accessibility.

Commenting out the line might be cheating, but, at least for our app, there seemed to be very little reason to set the accessibility back to false.

 All   Comments   Change History      Sort Order:
Jesse Kuhnert - [24/Apr/07 11:36 AM ]
Thanks for the report, should be fixed in the snapshot version going out later today.