Bug 793308 (JBEPP-392)

Summary: IllegalArgumentException when having portlet instance with colon in name
Product: [JBoss] JBoss Enterprise Portal Platform 4 Reporter: mposolda
Component: PortalAssignee: Default User <jbpapp-maint>
Status: CLOSED WONTFIX QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 4.3.0.GA_CP4CC: epp-bugs
Target Milestone: ---   
Target Release: 4.3.0.GA_CP7   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/JBEPP-392
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
EPP 4.3.GA_CP05 - latest build, Sun JDK 1.5.17, Ubuntu linux
Last Closed: 2011-12-13 17:05:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description mposolda 2010-07-07 13:55:19 UTC
Date of First Response: 2010-07-11 10:12:30
project_key: JBEPP

Steps to reproduce:
1) Login as admin and go to http://localhost:8080/portal/auth/portal/admin
2) Go to portlet definitions and create instance of any portlet called my:instance
3) Go to portal objects tab and add our instance to any page
4) Go to the page with our instance. Now Catalina exception page can be seen with exception:

javax.servlet.ServletException: java.lang.IllegalArgumentException: Not a canonical value instanceWindow
	org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.java:278)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause:

java.lang.IllegalArgumentException: Not a canonical value instanceWindow
	org.jboss.portal.core.model.portal.PortalObjectPath$CanonicalFormat.parse(PortalObjectPath.java:352)
	org.jboss.portal.core.model.portal.PortalObjectPath.<init>(PortalObjectPath.java:161)
	org.jboss.portal.core.model.portal.PortalObjectPath.parse(PortalObjectPath.java:309)
	org.jboss.portal.core.model.portal.PortalObjectId.parse(PortalObjectId.java:157)
	org.jboss.portal.core.model.portal.PortalObjectId.parse(PortalObjectId.java:136)
	org.jboss.portal.core.model.portal.navstate.PortalObjectNavigationalStateContext.createWindowKey(PortalObjectNavigationalStateContext.java:299)
	org.jboss.portal.core.model.portal.navstate.PortalObjectNavigationalStateContext.getWindowNavigationalState(PortalObjectNavigationalStateContext.java:194)
	org.jboss.portal.core.controller.portlet.ControllerPageNavigationalState.getWindowPublicContentStateParameters(ControllerPageNavigationalState.java:605)
	org.jboss.portal.core.controller.portlet.ControllerPageNavigationalState.initiateWindowPublicNavigationalStateUpdate(ControllerPageNavigationalState.java:640)
	org.jboss.portal.core.controller.portlet.ControllerPageNavigationalState.getPortletPublicNavigationalState(ControllerPageNavigationalState.java:347)
	org.jboss.portal.core.controller.portlet.PortletInvocationFactory$InternalInvokePortletCommandFactory.<init>(PortletInvocationFactory.java:320)
	org.jboss.portal.core.controller.portlet.PortletInvocationFactory.createInvokePortletCommandFactory(PortletInvocationFactory.java:69)
	org.jboss.portal.core.controller.portlet.PortletInvocationFactory.createRender(PortletInvocationFactory.java:142)
	org.jboss.portal.core.model.portal.command.render.RenderWindowCommand.createRenderInvocation(RenderWindowCommand.java:131)
	org.jboss.portal.core.impl.model.content.generic.InternalGenericContentProvider$2.createRenderInvocation(InternalGenericContentProvider.java:198)
	org.jboss.portal.core.impl.model.content.InternalContentProvider.renderWindow(InternalContentProvider.java:246)
	org.jboss.portal.core.impl.model.content.generic.InternalGenericContentProvider.renderWindow(InternalGenericContentProvider.java:267)
	org.jboss.portal.core.cms.content.InternalCMSContentProvider.renderWindow(InternalCMSContentProvider.java:105)
	org.jboss.portal.core.model.portal.command.render.RenderWindowCommand.execute(RenderWindowCommand.java:100)
	org.jboss.portal.core.controller.ControllerCommand$1.invoke(ControllerCommand.java:68)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
	org.jboss.portal.core.aspects.controller.node.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:124)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.PageCustomizerInterceptor.invoke(PageCustomizerInterceptor.java:133)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:78)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.node.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:81)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.BackwardCompatibilityInterceptor.invoke(BackwardCompatibilityInterceptor.java:48)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.ControlInterceptor.invoke(ControlInterceptor.java:56)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.NavigationalStateInterceptor.invoke(NavigationalStateInterceptor.java:42)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.controller.ajax.AjaxInterceptor.invoke(AjaxInterceptor.java:55)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.ResourceAcquisitionInterceptor.invoke(ResourceAcquisitionInterceptor.java:50)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:157)
	org.jboss.portal.core.controller.ControllerContext.execute(ControllerContext.java:134)
	org.jboss.portal.core.model.portal.command.render.RenderWindowCommand.render(RenderWindowCommand.java:80)
	org.jboss.portal.core.model.portal.command.render.RenderPageCommand.execute(RenderPageCommand.java:222)
	org.jboss.portal.core.controller.ControllerCommand$1.invoke(ControllerCommand.java:68)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
	org.jboss.portal.core.aspects.controller.node.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:124)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.PageCustomizerInterceptor.invoke(PageCustomizerInterceptor.java:133)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:78)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.node.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:81)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.BackwardCompatibilityInterceptor.invoke(BackwardCompatibilityInterceptor.java:48)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.ControlInterceptor.invoke(ControlInterceptor.java:56)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.NavigationalStateInterceptor.invoke(NavigationalStateInterceptor.java:42)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.controller.ajax.AjaxInterceptor.invoke(AjaxInterceptor.java:55)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.controller.ResourceAcquisitionInterceptor.invoke(ResourceAcquisitionInterceptor.java:50)
	org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:157)
	org.jboss.portal.core.controller.ControllerContext.execute(ControllerContext.java:134)
	org.jboss.portal.core.model.portal.PortalObjectResponseHandler.processCommandResponse(PortalObjectResponseHandler.java:81)
	org.jboss.portal.core.controller.classic.ClassicResponseHandler.processHandlers(ClassicResponseHandler.java:79)
	org.jboss.portal.core.controller.classic.ClassicResponseHandler.processCommandResponse(ClassicResponseHandler.java:53)
	org.jboss.portal.core.controller.handler.ResponseHandlerSelector.processCommandResponse(ResponseHandlerSelector.java:70)
	org.jboss.portal.core.controller.Controller.processCommandResponse(Controller.java:315)
	org.jboss.portal.core.controller.Controller.processCommand(Controller.java:303)
	org.jboss.portal.core.controller.Controller.handle(Controller.java:261)
	org.jboss.portal.server.RequestControllerDispatcher.invoke(RequestControllerDispatcher.java:51)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
	org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(ContentTypeInterceptor.java:68)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.cms.aspect.IdentityBindingInterceptor.invoke(IdentityBindingInterceptor.java:47)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.server.PortalContextPathInterceptor.invoke(PortalContextPathInterceptor.java:45)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleInterceptor.java:96)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:196)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.server.aspects.server.SignOutInterceptor.invoke(SignOutInterceptor.java:98)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.impl.api.user.UserEventBridgeTriggerInterceptor.invoke(UserEventBridgeTriggerInterceptor.java:65)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.server.IdentityCacheInterceptor.invoke(IdentityCacheInterceptor.java:68)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.core.aspects.server.TransactionInterceptor.org$jboss$portal$core$aspects$server$TransactionInterceptor$invoke$aop(TransactionInterceptor.java:49)
	org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
	org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
	org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
	org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
	org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
	org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:262)
	org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
	org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java)
	org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.server.aspects.LockInterceptor$InternalLock.invoke(LockInterceptor.java:69)
	org.jboss.portal.server.aspects.LockInterceptor.invoke(LockInterceptor.java:130)
	org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
	org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:157)
	org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.java:252)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Comment 1 mposolda 2010-07-07 14:07:29 UTC
I tried couple of other characters but problem can be seen only with : character. Exception can be seen if window name contains colon character. In case that instance name has colon in name but window name does not have colon, portlet can be seen on page and everything is fine.

Comment 2 Prabhat Jha 2010-07-07 15:33:27 UTC
Link: Added: This issue is a dependency of JBQA-3461


Comment 3 Prabhat Jha 2010-07-11 14:12:30 UTC
I believe Thomas has already committed the fix to the tag. He may have forgot to add the jira issue in his commit so I don't see the commit here. Please test with the latest CP05 zip and close this jira accordingly.

Comment 7 mark yarborough 2011-11-09 22:34:03 UTC
Moved to 43 CP7 for triage after 5.2 ships.

Comment 8 Jared MORGAN 2012-01-03 23:26:37 UTC
Release Notes Docs Status: Added: Not Required