[JBoss JIRA] (GTNPORTAL-2474) No handler found for Spring @ActionMapping
by Ken Finnigan (JIRA)
[ https://issues.jboss.org/browse/GTNPORTAL-2474?page=com.atlassian.jira.pl... ]
Ken Finnigan resolved GTNPORTAL-2474.
-------------------------------------
Assignee: Ken Finnigan
Fix Version/s: (was: 3.x)
Resolution: Cannot Reproduce Bug
I don't believe this is an issue with the handling of @ActionMapping within GateIn.
With GateIn 3.5 I took your demo portlet, modified the portlet:actionURL tag to have an extra attribute (escapeXml="false") and the form submitted successfully.
The problem was that the Action URL generated from the tag was encoded, causing the form parameters to not be decoded correctly which results in the Spring action handler not being found
> No handler found for Spring @ActionMapping
> ------------------------------------------
>
> Key: GTNPORTAL-2474
> URL: https://issues.jboss.org/browse/GTNPORTAL-2474
> Project: GateIn Portal
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 3.3.0.Final
> Environment: Tomcat 7, JBoss AS 7, Spring MVC 3.1.1
> Reporter: Cédric Dorot
> Assignee: Ken Finnigan
> Labels: @ActionMapping, Spring
> Attachments: gatein-demo-portlet.zip
>
>
> I'm dealing with an issue which only occurs with the latest GateIn 3.3 version and which is relative to the handling of the Spring MVC's "ActionMapping" annotation.
> This annotation is successfully intercepted with the following portals : GateIn 3.1 or Liferay 6.1. So I suspect that a regression bug has been introduced in the latest GateIn versions.
> A thread describing this issue has been posted by another user on the stackoverflow website : http://stackoverflow.com/questions/10713322/gatein-3-2-ignores-actionurl-....
> To reproduce the issue
> * generate an action URL with a javax.portlet.action parameter like this :
> {code}
> <portlet:actionURL var="addUserURL">
> <portlet:param name="javax.portlet.action" value="addUser" />
> </portlet:actionURL>
> {code}
> * add this URL to the serser-side form handler :
> {code}
> <form:form modelAttribute="userDto" action="${addUserURL}" method="post" id="${portletNamespace}_FORM_ADD_USER" name="FORM_ADD_USER">
> ...
> <input type="submit" class="portlet-form-button" value="Ajouter" />
> </form:form>
> {code}
> * add a method for processing the form in the Controller :
> {code}
> @Controller
> @RequestMapping("VIEW")
> public class UsersManagementViewController {
> @ActionMapping("addUser")
> public void addUser(ActionRequest request, ActionResponse response, UserDTO userDto) {
> ...
> }
> }
> {code}
> While submitting the form, I get an exception saying that no handler has been found for the processed request :
> {panel:title=Stacktrace| borderStyle=dashed| borderColor=#ccc| titleBGColor=#F7D6C1| bgColor=#FFFFCE}
> DEBUG o.s.web.portlet.DispatcherPortlet (Line:56216:17:54.816 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:68816:17:54.817 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:97216:17:54.817 ["http-bio-8080"-exec-30] DEBUG o.s.w.p.m.a.DefaultAnnotationHandlerMapping (Line:7416:17:54.818 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:100916:17:54.819 ["http-bio-8080"-exec-30] DEBUG o.s.w.b.a.s.HandlerMethodInvoker (Line:17316:17:54.820 ["http-bio-8080"-exec-30] INFO f.i.d.u.info.UserInfoViewController (Line:3416:17:54.820 ["http-bio-8080"-exec-30] DEBUG o.s.b.f.s.DefaultListableBeanFactory (Line:149816:17:54.821 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:108616:17:54.822 ["http-bio-8080"-exec-30] DEBUG o.s.web.servlet.view.JstlView (Line:37116:17:54.823 ["http-bio-8080"-exec-30] DEBUG o.s.web.servlet.view.JstlView (Line:37116:17:54.824 ["http-bio-8080"-exec-30] DEBUG o.s.web.servlet.view.JstlView (Line:22716:17:54.826 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:56216:17:54.828 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:68816:17:54.829 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:97216:17:54.830 ["http-bio-8080"-exec-30] DEBUG o.s.w.p.m.a.DefaultAnnotationHandlerMapping (Line:7416:17:54.831 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:72316:17:54.831 ["http-bio-8080"-exec-30] DEBUG o.s.w.p.h.SimpleMappingExceptionResolver (Line:10916:17:54.832 ["http-bio-8080"-exec-30] DEBUG o.s.w.p.h.SimpleMappingExceptionResolver (Line:14016:17:54.833 ["http-bio-8080"-exec-30] DEBUG o.s.w.p.h.SimpleMappingExceptionResolver (Line:22516:17:54.834 ["http-bio-8080"-exec-30] DEBUG o.s.web.portlet.DispatcherPortlet (Line:116216:17:54.845 ["http-bio-8080"-exec-30] WARN o.s.web.portlet.DispatcherPortlet (Line:1164org.springframework.web.portlet.NoHandlerFoundException: No handler found for portlet request: mode 'view', phase 'ACTION_PHASE', parameters map['amp;interactionstate' -> array<String>['JBPNS_rO0ABXcsABRqYXZheC5wb3J0bGV0LmFjdGlvbgAAAAEAB2FkZFVzZXIAB19fRU9GX18*'], 'lastName' -> array<String>['Doe'], 'email' -> array<String>['john.doe(a)gmail.com'], 'amp;portal:type' -> array<String>['action'], 'userName' -> array<String>['john'], 'interactionstate' -> array<String>['JBPNS_rO0ABXcsABRqYXZheC5wb3J0bGV0LmFjdGlvbgAAAAEAB2FkZFVzZXIAB19fRU9GX18*'], 'amp;portal:isSecure' -> array<String>['false'], 'firstName' -> array<String>['John'], 'amp;portal:componentId' -> array<String>['8d1b7990-55c6-461a-acc7-616d055f36a1']]
> at org.springframework.web.portlet.DispatcherPortlet.noHandlerFound(DispatcherPortlet.java:997) ~[spring-webmvc-portlet-3.1.1.RELEASE.jar:3.1.1.RELEASE]
> at org.springframework.web.portlet.DispatcherPortlet.doActionService(DispatcherPortlet.java:622) ~[spring-webmvc-portlet-3.1.1.RELEASE.jar:3.1.1.RELEASE]
> at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:519) ~[spring-webmvc-portlet-3.1.1.RELEASE.jar:3.1.1.RELEASE]
> at org.springframework.web.portlet.FrameworkPortlet.processAction(FrameworkPortlet.java:460) ~[spring-webmvc-portlet-3.1.1.RELEASE.jar:3.1.1.RELEASE]
> at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl$Invoker.doFilter(PortletContainerImpl.java:558) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:109) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.exoplatform.portal.application.ApplicationMonitoringFilter.doFilter(ApplicationMonitoringFilter.java:45) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.gatein.pc.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:109) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:72) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl.dispatch(PortletContainerImpl.java:506) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.container.ContainerPortletDispatcher.invoke(ContainerPortletDispatcher.java:42) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.EventPayloadInterceptor.invoke(EventPayloadInterceptor.java:197) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.RequestAttributeConversationInterceptor.invoke(RequestAttributeConversationInterceptor.java:119) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.CCPPInterceptor.invoke(CCPPInterceptor.java:65) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.bridge.BridgeInterceptor.invoke(BridgeInterceptor.java:49) ~[pc-bridge-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:55) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.ContextDispatcherInterceptor.access$001(ContextDispatcherInterceptor.java:49) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.ContextDispatcherInterceptor$1.doCallback(ContextDispatcherInterceptor.java:123) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.wci.command.CommandDispatcher$CallbackCommand.execute(CommandDispatcher.java:82) ~[wci-wci-2.2.0-Beta01.jar:2.2.0-Beta01]
> at sun.reflect.GeneratedMethodAccessor175.invoke(Unknown Source) ~[na:na]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_33]
> at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_33]
> at org.gatein.wci.command.CommandServlet.doGet(CommandServlet.java:135) ~[wci-wci-2.2.0-Beta01.jar:2.2.0-Beta01]
> at org.gatein.wci.command.CommandServlet.doPost(CommandServlet.java:166) ~[wci-wci-2.2.0-Beta01.jar:2.2.0-Beta01]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) ~[servlet-api.jar:na]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) ~[servlet-api.jar:na]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) ~[catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) ~[catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) ~[catalina.jar:7.0.16]
> at org.gatein.wci.command.CommandServlet.include(CommandServlet.java:84) ~[wci-wci-2.2.0-Beta01.jar:2.2.0-Beta01]
> at org.gatein.wci.command.CommandDispatcher.include(CommandDispatcher.java:58) ~[wci-wci-2.2.0-Beta01.jar:2.2.0-Beta01]
> at org.gatein.wci.tomcat.TC7ServletContainerContext.include(TC7ServletContainerContext.java:115) ~[wci-tomcat7-2.2.0-Beta01.jar:2.2.0-Beta01]
> at org.gatein.wci.impl.DefaultServletContainer.include(DefaultServletContainer.java:271) ~[wci-wci-2.2.0-Beta01.jar:2.2.0-Beta01]
> at org.gatein.pc.portlet.impl.spi.AbstractServerContext.dispatch(AbstractServerContext.java:69) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.ContextDispatcherInterceptor.invoke(ContextDispatcherInterceptor.java:77) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.SecureTransportInterceptor.invoke(SecureTransportInterceptor.java:69) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.ValveInterceptor.invoke(ValveInterceptor.java:75) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.container.ContainerPortletInvoker.invoke(ContainerPortletInvoker.java:131) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.state.producer.ProducerPortletInvoker.invoke(ProducerPortletInvoker.java:249) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.federation.impl.FederatedPortletInvokerService.invoke(FederatedPortletInvokerService.java:163) ~[pc-federation-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.federation.impl.FederatingPortletInvokerService.invoke(FederatingPortletInvokerService.java:244) ~[pc-federation-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.PortletCustomizationInterceptor.invoke(PortletCustomizationInterceptor.java:76) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.aspects.ConsumerCacheInterceptor.invoke(ConsumerCacheInterceptor.java:247) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) ~[pc-portlet-2.3.2-GA.jar:2.3.2-GA]
> at org.exoplatform.portal.webui.application.UIPortlet.invoke(UIPortlet.java:1057) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.webui.application.UIPortletActionListener$ProcessActionActionListener.execute(UIPortletActionListener.java:123) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.webui.event.Event.broadcast(Event.java:89) ~[exo.portal.webui.framework-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.webui.application.UIPortletLifecycle.processAction(UIPortletLifecycle.java:136) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.webui.application.UIPortletLifecycle.processAction(UIPortletLifecycle.java:65) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.webui.core.UIComponent.processAction(UIComponent.java:133) ~[exo.portal.webui.framework-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.webui.workspace.UIPortalApplicationLifecycle.processAction(UIPortalApplicationLifecycle.java:83) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.webui.workspace.UIPortalApplicationLifecycle.processAction(UIPortalApplicationLifecycle.java:37) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.webui.core.UIComponent.processAction(UIComponent.java:133) ~[exo.portal.webui.framework-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.webui.core.UIApplication.processAction(UIApplication.java:137) ~[exo.portal.webui.framework-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.webui.workspace.UIPortalApplication.processAction(UIPortalApplication.java:656) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.application.PortalRequestHandler.processRequest(PortalRequestHandler.java:177) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.application.PortalRequestHandler.execute(PortalRequestHandler.java:150) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.web.WebAppController.service(WebAppController.java:366) ~[exo.portal.component.web.controller-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.portal.application.PortalController.onService(PortalController.java:127) ~[exo.portal.webui.portal-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.container.web.AbstractHttpServlet.service(AbstractHttpServlet.java:132) ~[exo.kernel.container-2.3.6-GA.jar:2.3.6-GA]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) ~[servlet-api.jar:na]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.exoplatform.web.login.RememberMeFilter.doFilter(RememberMeFilter.java:89) ~[exo.portal.component.web.security-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.web.login.RememberMeFilter.doFilter(RememberMeFilter.java:55) ~[exo.portal.component.web.security-3.3.0-GA.jar:3.3.0-GA]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.exoplatform.web.filter.ExtensibleFilter$ExtensibleFilterChain.doFilter(ExtensibleFilter.java:110) ~[exo.portal.component.web.api-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.web.filter.ExtensibleFilter.doFilter(ExtensibleFilter.java:80) ~[exo.portal.component.web.api-3.3.0-GA.jar:3.3.0-GA]
> at org.exoplatform.web.filter.GenericFilter.doFilter(GenericFilter.java:79) ~[exo.portal.component.web.api-3.3.0-GA.jar:3.3.0-GA]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.exoplatform.web.CacheUserProfileFilter.doFilter(CacheUserProfileFilter.java:72) ~[exo.portal.component.web.security-3.3.0-GA.jar:3.3.0-GA]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.exoplatform.frameworks.jcr.web.ThreadLocalSessionProviderInitializedFilter.doFilter(ThreadLocalSessionProviderInitializedFilter.java:116) ~[exo.jcr.framework.web-1.14.6-GA.jar:1.14.6-GA]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.exoplatform.services.security.web.SetCurrentIdentityFilter.doFilter(SetCurrentIdentityFilter.java:88) ~[exo.core.component.security.core-2.4.6-GA.jar:2.4.6-GA]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.exoplatform.web.login.ClusteredSSOFilter.doFilter(ClusteredSSOFilter.java:73) [exo.portal.component.web.security-3.3.0-GA.jar:3.3.0-GA]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.exoplatform.container.web.PortalContainerFilter.doFilter(PortalContainerFilter.java:69) [exo.kernel.container-2.3.6-GA.jar:2.3.6-GA]
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.16]
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.16]
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) [catalina.jar:7.0.16]
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) [catalina.jar:7.0.16]
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) [catalina.jar:7.0.16]
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) [catalina.jar:7.0.16]
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) [catalina.jar:7.0.16]
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) [catalina.jar:7.0.16]
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.16]
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) [catalina.jar:7.0.16]
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) [tomcat-coyote.jar:7.0.16]
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162) [tomcat-coyote.jar:7.0.16]
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) [tomcat-coyote.jar:7.0.16]
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_33]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_33]
> at java.lang.Thread.run(Thread.java:680) [na:1.6.0_33]
> {panel}
> Cheers,
> --
> Cédric
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 6 months
[JBoss JIRA] (GTNPORTAL-2751) <priority> in navigation.xml files ignored for merge importMode
by Peter Palaga (JIRA)
Peter Palaga created GTNPORTAL-2751:
---------------------------------------
Summary: <priority> in navigation.xml files ignored for merge importMode
Key: GTNPORTAL-2751
URL: https://issues.jboss.org/browse/GTNPORTAL-2751
Project: GateIn Portal
Issue Type: Task
Security Level: Public (Everyone can see)
Reporter: Peter Palaga
Steps to reproduce:
Clone the Portal Extension Quickstart and deploy it changing the {{<priority>}} value in {{war/src/main/webapp/WEB-INF/conf/sample-ext/portal/group/platform/administrators/navigation.xml}}.
NOT OK: The changes have no effect, because priority is ignored in {{org.exoplatform.portal.mop.importer.NavigationImporter.perform()}} with {{importMode}} {{merge}}.
h3. Solution Proposal A
* Make {{<priority>}} optional in {{gatein_objects}} XSD and {{NavigationMarshaller.unmarshalNavigation(StaxNavigator<Element>)}}
* Explicitly state in the documentation [1] that {{<priority>}} is considered only if not already set (first wins).
h3. Solution Proposal B
* Make {{<priority>}} optional in {{gatein_objects}} XSD and {{NavigationMarshaller.unmarshalNavigation(StaxNavigator<Element>)}}
* Change the behavior of {{NavigationMarshaller.unmarshalNavigation(StaxNavigator<Element>)}} to the effect that {{<priority>}} is handled in the same way as navigation nodes: it is used or ignored according to the chosen {{importMode}}. Esp. for {{importMode}} {{merge}} the last read {{<priority>}} should win.
* Document it in [1]
For both A and B the most or all occutences of {{<priority>}} should be removed from Portal Extension Quickstart.
[1] [https://docs.jboss.org/author/display/GTNPORTAL35/Portal+Navigation+Confi...]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 6 months