Hi.
I'm using a custom stack that calls use the following interceptors :
exception, alias, fileUpload, servlet-config, cardibox-bo,
prePreparationParams, prepare, i18n, chain, checkbox, static-params,
params, cardibox-web, conversionError, validation, workflow.
Si I just have 2 customs interceptors :
- cardibox-bo
- prePreparationParams that extends params but juste redefine
acceptableName() to didn't fill parameters whose name contains a dot.
So, I don't have any 'timer' interceptor.
But if I run jstack on a process, I see a really big interceptor stack :
.... many lines ...
ActionInvocation.invoke() @bci=80, line=216 (Interpreted frame)
-
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(com.opensymphony.xwork2.ActionInvocation)
@bci=6, line=150 (Interpreted frame)
-
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(com.opensymphony.xwork2.ActionInvocation)
@bci=57, line=48 (Interpreted frame)
-
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(com.opensymphony.xwork2.ActionInvocation)
@bci=10, line=86 (Interpreted frame)
- com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling()
@bci=15, line=219 (Interpreted frame)
- com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling()
@bci=1, line=218 (Interpreted frame)
-
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(java.lang.String,
com.opensymphony.xwork2.util.profiling.UtilTimerStack$ProfilingBlock)
@bci=5, line=455 (Interpreted frame)
*... same block with profiling for each interceptor ...*
- com.opensymphony.xwork2.DefaultActionInvocation.invoke() @bci=80,
line=216 (Interpreted frame)
-
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(com.opensymphony.xwork2.ActionInvocation)
@bci=1, line=176 (Interpreted frame)
- com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling()
@bci=15, line=219 (Interpreted frame)
- com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling()
@bci=1, line=218 (Interpreted frame)
-
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(java.lang.String,
com.opensymphony.xwork2.util.profiling.UtilTimerStack$ProfilingBlock)
@bci=5, line=455 (Interpreted frame)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke() @bci=80,
line=216 (Interpreted frame)
- org.apache.struts2.impl.StrutsActionProxy.execute() @bci=20, line=50
(Interpreted frame)
-
org.apache.struts2.dispatcher.Dispatcher.serviceAction(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse, javax.servlet.ServletContext,
org.apache.struts2.dispatcher.mapper.ActionMapping) @bci=182, line=507
(Interpreted frame)
-
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=212,
line=421 (Interpreted frame)
.... many lines ...
So the question is : why ??
is there an option I missed ?
I suppose this can make a performance problem.
I looked at StrutsActionProxy / DefaultActionProxy, but invocatiocontext
is assigned with a new DefaultInvocationContext() and I don't see any
option that could disable this ...
--
Mike Baroukh
---
Cardiweb - 31 Rue de Mogador Paris IXeme
06 63 57 27 22 - 01 53 21 82 63 - Jabber: [EMAIL PROTECTED]
http://www.cardiweb.com
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]