[
https://jira.jboss.org/jira/browse/JBPORTAL-2248?page=com.atlassian.jira....
]
Dan Krieger commented on JBPORTAL-2248:
---------------------------------------
Still seems to want to remove the public render parameters during an action.
Got this also:
java.lang.IllegalArgumentException: Array must not be zero length
org.jboss.portal.common.util.ParameterMap$ValueConverter.getInternal(ParameterMap.java:469)
org.jboss.portal.common.util.ParameterMap$ValueConverter.getInternal(ParameterMap.java:443)
org.jboss.portal.common.util.AbstractTypedMap$Converter$4.transform(AbstractTypedMap.java:140)
org.jboss.portal.common.util.AbstractTypedMap.put(AbstractTypedMap.java:242)
org.jboss.portal.common.util.ParameterMap.setValues(ParameterMap.java:282)
org.jboss.portal.core.portlet.PortletRequestEncoder.configure(PortletRequestEncoder.java:208)
org.jboss.portal.core.portlet.PortletRequestEncoder.encodeRender(PortletRequestEncoder.java:169)
org.jboss.portal.core.model.portal.PortalObjectURLFactory.doMapping(PortalObjectURLFactory.java:168)
org.jboss.portal.core.controller.command.mapper.DelegatingURLFactoryService.doMapping(DelegatingURLFactoryService.java:68)
org.jboss.portal.core.controller.ControllerContext.renderURL(ControllerContext.java:171)
org.jboss.portal.core.controller.classic.ClassicResponseHandler.processCommandResponse(ClassicResponseHandler.java:62)
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.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:193)
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:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
For reference here is my simple block of action code that seems to be causing the
trouble:
String field = req.getParameter("field");
if(field != null)
{
String[] fields;
res.removePublicRenderParameter(field);
if((fields = req.getPrivateParameterMap().get(field)) != null)
{
res.setRenderParameter(field, fields);
}
}
It may be that it working previously was a fluke, but essentially its part of a set of
portlets for filtering content on a main portlet. The field passed in is a public render
parameter (PRP) to be replaced. So if I have PRP a, b, and c set, and my action url is
<portleturl>?field=a&a=newvalue&action=1, the action should leave values for
b and c alone while setting the value of a to 'newvalue'. But b and c are
seemingly removed as well.
That huge error came up when trying to clear a PRP without setting a new one:
?field=a&action=1
My guess is there's trouble around removePublicRenderParameter
I apologize if this doesn't make sense, but hopefully it should help.
Action URL retained by client
-----------------------------
Key: JBPORTAL-2248
URL:
https://jira.jboss.org/jira/browse/JBPORTAL-2248
Project: JBoss Portal
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Portal Core
Affects Versions: 2.7.0 Final
Reporter: Dan Krieger
Assignee: Thomas Heute
Fix For: 2.7.1 Final
When a client navigates to an actionURL, the action is performed and no client-side
redirect is sent to remove the actionURL as the active page. This is showing itself as an
issue with user's enjoying the use of the refresh button.
The URL pattern used in 2.6.X wasn't the best because render parameters often could
potentially contain huge amounts of data and cause overly long URLs (causing 414 errors).
But at least it didn't contain the action URL which now allows a user to redo an
action or force a re-POST on a refresh.
Not sure if this is a bug, intended feature, or how to classify it.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira