You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by jordi <jo...@donky.org> on 2010/08/17 10:49:32 UTC

Struts 2.2.1 static params being included in redirects

Hey there,

since 2.2.1, all my static params are being includes as parameters after any
redirect (redirect-action or redirect).

for example, i've got mapped /foo/{id}/bar and after executing /foo/1/bar
and redirecting to another location i get /foo/1/barbaz?id=1

is there any workaround for this? is it intended? I've checked 'merge'
parameter from staticparams interceptor but i'm getting the same result. I'm
using regex pattern matcher

cheers
jordi

Re: Struts 2.2.1 static params being included in redirects

Posted by jordi <jo...@donky.org>.
btw, there's also an exception now:

DEBUG com.opensymphony.xwork2.DefaultActionInvocation - Executing action
method = execute
DEBUG org.apache.struts2.dispatcher.ServletRedirectResult - Caught
OgnlException while setting property 'publicId' on type
'org.apache.struts2.dispatcher.ServletActionRedirectResult'.
Caught OgnlException while setting property 'publicId' on type
'org.apache.struts2.dispatcher.ServletActionRedirectResult'. - Class:
ognl.ObjectPropertyAccessor
File: ObjectPropertyAccessor.java
Method: setProperty
Line: 166 - ognl/ObjectPropertyAccessor.java:166:-1
at
com.opensymphony.xwork2.ognl.OgnlUtil.internalSetProperty(OgnlUtil.java:412)
at com.opensymphony.xwork2.ognl.OgnlUtil.setProperty(OgnlUtil.java:160)
at
com.opensymphony.xwork2.ognl.OgnlReflectionProvider.setProperty(OgnlReflectionProvider.java:91)
at com.opensymphony.xwork2.ObjectFactory.buildResult(ObjectFactory.java:232)
at
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:220)
at
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:367)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
at
org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:204)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.eventuo.intercept.RoleInterceptor.intercept(RoleInterceptor.java:25)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
at
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
at
com.eventuo.intercept.CustomI18nInterceptor.intercept(CustomI18nInterceptor.java:38)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.eventuo.intercept.EventInterceptor.intercept(EventInterceptor.java:63)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.eventuo.intercept.CookiesProviderInterceptor.intercept(CookiesProviderInterceptor.java:53)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.eventuo.intercept.AuthenticationInterceptor.intercept(AuthenticationInterceptor.java:66)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.eventuo.intercept.HibernateInterceptor.intercept(HibernateInterceptor.java:32)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
at
com.google.inject.servlet.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:235)
at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Caused by: ognl.NoSuchPropertyException:
org.apache.struts2.dispatcher.ServletActionRedirectResult.publicId
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:166)
at
com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:209)
at
com.opensymphony.xwork2.ognl.OgnlUtil.internalSetProperty(OgnlUtil.java:405)
... 94 more

On Tue, Aug 17, 2010 at 10:49 AM, jordi <jo...@donky.org> wrote:

> Hey there,
>
> since 2.2.1, all my static params are being includes as parameters after
> any redirect (redirect-action or redirect).
>
> for example, i've got mapped /foo/{id}/bar and after executing /foo/1/bar
> and redirecting to another location i get /foo/1/barbaz?id=1
>
> is there any workaround for this? is it intended? I've checked 'merge'
> parameter from staticparams interceptor but i'm getting the same result. I'm
> using regex pattern matcher
>
> cheers
> jordi
>
>