You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Rahul Jain <Ra...@csr.com> on 2010/02/04 05:33:54 UTC

scalability issue in AnnotationActionValidatorManager

Hi,

When I run a load test with 10 or more concurrent users I see that a few
threads are blocked in AnnotationActionValidatorManager.java,
getValidators(). I saw an old post which says that ConcurrentHaspMap
should be used in this class. I am using struts version 2.0.14. Does
anyone has a working fix for this in xwork? This problem is causing
scalability issues.

Below is the stack trace of a blocked thread.

------------------------------------------------
Name: http-8080-1
State: BLOCKED on
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager@1cade
4 owned by: http-8080-16
Total blocked: 3,957  Total waited: 719

Stack trace:
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.getVa
lidators(AnnotationActionValidatorManager.java:62)
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.valid
ate(AnnotationActionValidatorManager.java:138)
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.valid
ate(AnnotationActionValidatorManager.java:113)
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.valid
ate(AnnotationActionValidatorManager.java:100)
com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocati
on(ValidationInterceptor.java:142)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali
dationInterceptor.java:148)
org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto
r.doIntercept(AnnotationValidationInterceptor.java:48)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept
(ConversionErrorInterceptor.java:123)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa
rametersInterceptor.java:184)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me
thodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep
t(StaticParametersInterceptor.java:105)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt
erceptor.java:83)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct
ionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS
tack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo
cation.java:221)
------------------------------------------------------

Thanks,
Rahul



Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


RE: scalability issue in AnnotationActionValidatorManager

Posted by Rahul Jain <Ra...@csr.com>.
Yes, I did, but I think firewall removed it. I am sending it again after zipping.

Regards,
Rahul

-----Original Message-----
From: Lukasz Lenart [mailto:lukasz.lenart@googlemail.com] 
Sent: Thursday, February 04, 2010 2:47 PM
To: Struts Developers List
Subject: Re: scalability issue in AnnotationActionValidatorManager

W dniu 4 lutego 2010 09:36 u�ytkownik Rahul Jain <Ra...@csr.com> napisa�:
> Hi Lukasz,
>
> I have raised it @ https://issues.apache.org/jira/browse/XW-376
>
> I tried a fix for this, can some one review it. Changed file is attached.
>
> I have also done a similar change in LocalizedTextUtil please review that one too.

Superb, could you attach your patch?


Regards
-- 
�ukasz
http://www.lenart.org.pl/
Kapitu�a Javarsovia 2010
http://javarsovia.pl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org



 To report this email as spam click https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== .


Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom

Re: scalability issue in AnnotationActionValidatorManager

Posted by Lukasz Lenart <lu...@googlemail.com>.
W dniu 4 lutego 2010 09:36 użytkownik Rahul Jain <Ra...@csr.com> napisał:
> Hi Lukasz,
>
> I have raised it @ https://issues.apache.org/jira/browse/XW-376
>
> I tried a fix for this, can some one review it. Changed file is attached.
>
> I have also done a similar change in LocalizedTextUtil please review that one too.

Superb, could you attach your patch?


Regards
-- 
Łukasz
http://www.lenart.org.pl/
Kapituła Javarsovia 2010
http://javarsovia.pl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


RE: scalability issue in AnnotationActionValidatorManager

Posted by Rahul Jain <Ra...@csr.com>.
Hi Lukasz,

I have raised it @ https://issues.apache.org/jira/browse/XW-376

I tried a fix for this, can some one review it. Changed file is attached.

I have also done a similar change in LocalizedTextUtil please review that one too.

Regards,
Rahul

-----Original Message-----
From: Lukasz Lenart [mailto:lukasz.lenart@googlemail.com] 
Sent: Thursday, February 04, 2010 1:24 PM
To: Struts Developers List
Subject: Re: scalability issue in AnnotationActionValidatorManager

2010/2/4 Rahul Jain <Ra...@csr.com>:
> When I run a load test with 10 or more concurrent users I see that a few
> threads are blocked in AnnotationActionValidatorManager.java,
> getValidators(). I saw an old post which says that ConcurrentHaspMap
> should be used in this class. I am using struts version 2.0.14. Does
> anyone has a working fix for this in xwork? This problem is causing
> scalability issues.

I don't see any registered issue to that, feel free to register one
https://issues.apache.org/jira/browse/XW


Regards
-- 
Lukasz
http://www.lenart.org.pl/
Kapitu�a Javarsovia 2010
http://javarsovia.pl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org



 To report this email as spam click https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== .


Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom


Re: scalability issue in AnnotationActionValidatorManager

Posted by Lukasz Lenart <lu...@googlemail.com>.
2010/2/4 Rahul Jain <Ra...@csr.com>:
> When I run a load test with 10 or more concurrent users I see that a few
> threads are blocked in AnnotationActionValidatorManager.java,
> getValidators(). I saw an old post which says that ConcurrentHaspMap
> should be used in this class. I am using struts version 2.0.14. Does
> anyone has a working fix for this in xwork? This problem is causing
> scalability issues.

I don't see any registered issue to that, feel free to register one
https://issues.apache.org/jira/browse/XW


Regards
-- 
Lukasz
http://www.lenart.org.pl/
Kapituła Javarsovia 2010
http://javarsovia.pl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org