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

Alessio Cicioni commented on WW-3580:
-------------------------------------

Is someone working on this? 
We are facing the same problem with Struts 2 (2.1.8.1) in a production 
environment with heavy load (thousands of contemporary users). 
We changed the OGNL library (using OGNL 3.0) in the STRUTS distribution. The 
performance are better, but the problem is still there when there are more than 
300 contemporary users.
Is there a plan to resolve this issue? In which version and when such version 
is planned to be released? 
Thanks

> Critical performance issue in production environment as thread dumps are 
> leading to OGNL 3.0 thread blocking! Website could be backed out!
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-3580
>                 URL: https://issues.apache.org/jira/browse/WW-3580
>             Project: Struts 2
>          Issue Type: Bug
>         Environment: Struts 2.2.1
>            Reporter: Shishir Saxena
>            Priority: Blocker
>         Attachments: OGNLIssue.zip, stacktrace_ognl_issue.txt
>
>
> My web application based on Struts 2.2.1 is using OGNL 3.0. This web 
> application is rolled into production; however, due to serious performance 
> considerations the website is in danger of being rolled back. The thread 
> dumps indicate 'BLOCKING' at 
> ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:804).
> The thread trace is as:
> "httpSSLWorkerThread-6357-6" daemon prio=3 tid=0x01a07000 nid=0xa6 
> waiting for monitor entry [0xb6d79000..0xb6d7faf0]
>    java.lang.Thread.State: BLOCKED (on object monitor)
> at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:804)
> - waiting to lock <0xcca6d328> (a java.lang.reflect.Method)
> at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:1434)
> at 
> ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:60)
> at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:147)
> at 
> com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.getProperty(ObjectAccessor.java:17)
> at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2230)
> at 
> com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:137)
> at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2230)
> at ognl.ASTProperty.getValueBody(ASTProperty.java:114)
> at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
> at ognl.SimpleNode.getValue(SimpleNode.java:258)
> at ognl.Ognl.getValue(Ognl.java:494)
> at ognl.Ognl.getValue(Ognl.java:458)
> at com.opensymphony.xwork2.ognl.OgnlUtil.getValue(OgnlUtil.java:213)
> at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.getValueUsingOgnl(OgnlValueStack.java:277)
> at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValue(OgnlValueStack.java:260)
> at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.tryFindValueWhenExpressionIsNotNull(OgnlValueStack.java:242)
> at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:222)
> at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.findValue(OgnlValueStack.java:284)
> at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
> ....
> quot;httpSSLWorkerThread-6357-4" daemon prio=3 tid=0x01a56800 nid=0xa4 
> runnable [0xb6f79000..0xb6f7fbf0]
>    java.lang.Thread.State: RUNNABLE
> at java.security.AccessController.$$YJP$$doPrivileged(Native Method)
> at java.security.AccessController.doPrivileged(AccessController.java)
> at 
> com.sun.enterprise.security.provider.PolicyFile.addPermissions(PolicyFile.java:1333)
> at 
> com.sun.enterprise.security.provider.PolicyFile.getPermissions(PolicyFile.java:1290)
> at 
> com.sun.enterprise.security.provider.PolicyFile.getPermissions(PolicyFile.java:1256)
> at 
> com.sun.enterprise.security.provider.PolicyFile.getPermissions(PolicyFile.java:1198)
> at 
> com.sun.enterprise.security.provider.PolicyFile.implies(PolicyFile.java:1153)
> at 
> com.sun.enterprise.security.provider.BasePolicyWrapper.doImplies(BasePolicyWrapper.java:383)
> at 
> com.sun.enterprise.security.provider.BasePolicyWrapper.implies(BasePolicyWrapper.java:237)
> at java.security.ProtectionDomain.implies(ProtectionDomain.java:213)
> at 
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:301)
> at java.security.AccessController.checkPermission(AccessController.java:546)
> at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
> at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:107)
> at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:839)
> - locked <0xcca6d328> (a java.lang.reflect.Method)
> at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:1434)
> at 
> ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:60)
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to