Hi Ate,
Thanks for the quick response! Interesting... Curious to see what changes
you come up with.
Yes, it does appear that Bridges depends on it being done way of the spec.
/me goes of to read PLT.10.4.3...
Ate Douma wrote:
>
> Hi Antony,
>
> I think you might have uncovered a serious bug in
> PortletSession.setAttribute(name,value) here.
> I'm with you that *by the spec* it should store the attribute under
> PORTLET_SCOPE, not APPLICATION_SCOPE.
> In the "old' Pluto 1.0.1 this is also what is done, but in the new Pluto
> 2.0 this seems to incorrectly changed when the Portlet request is
> "included" or "forwarded" (e.g. about always).
> I've traced this back to commit r577681 which was a merge of some patches
> brought in by people working on the Portlet 2.0 spec implementation.
>
> I *think* this might be done based on an incorrect interpretation of
> PLT.10.4.3 - Runtime Option javax.portlet.servletDefaultSessionScope
>
> I'm going to further investigate this as it definitely does seem wrongly
> implemented and will try to fix this ASAP, both in trunk and in the
> spi-refactoring branch.
>
> Regards,
>
> Ate
>
>
> Antony Stubbs wrote:
>> Ok, trying to track this down, think I've found something.
>>
>> Why does the Pluto PorletSessionImpl#setAttribute use application shop
>> in the following situation? This really needs explanation ala javadoc
>> etc. Because in the spec, it clearly says that setAttribute should use
>> PORTLET_SCOPE as it does in the else block. This seems to be cause the
>> session attributes set in getWindowId in the Apache Bridges to fail in
>> detecting the container assigned window id, because of course the
>> attribute gets put into APPLICATION_SCOPE and a window id is never
>> created.
>>
>> public void setAttribute(String name, Object value, int scope) {
>> ArgumentUtility.validateNotNull("attributeName", name);
>> if (scope == PortletSession.APPLICATION_SCOPE) {
>> httpSession.setAttribute(name, value);
>> } else {
>> httpSession.setAttribute(createPortletScopedId(name), value);
>> }
>> }
>>
>> Ok, yup, changing the setAttribute calls from
>> PortletWindowUtils#getWindowId to call the explicit version of
>> setAttribute(name,value,scope) and pass PortletSession.PORTLET_SCOPE
>> lets the Apache Bridges function work correctly.
>>
>> I will continue to investigate. Can anyone offer an explanation? The
>> Apache Bridges issue is again, here:
>> https://issues.apache.org/jira/browse/PB-84
>>
>> Antony Stubbs wrote:
>> I'm having difficulty getting my helloworld portlet running on
>> pluto, with apache bridges. I am getting
>> StringIndexOutOfBoundsException on PortletWindowUtils#getWindowId
>>
>> portletWindowId = nameRef[0].substring("javax.portlet.p.".length(),
>> nameRef[0].indexOf('?'));
>>
>> throws StringIndexOutOfBoundsException, because the value of
>> nameRef[0] comes back just as PORTLET_WINDOW_ID
>>
>> i.e. "org.apache.portals.bridges.util.portlet_window_id" not
>> "javax.portlet.p.*" as the code implies
>>
>> getPortletWindowId for session: CC465B39BA9199712DEEF690F90AE2C2
>> (thread: 15)
>> no portletWindowId yet - going to derive it.
>> 17/10/2008 15:44:23 org.apache.catalina.core.ApplicationDispatcher
>> invoke
>> SEVERE: Servlet.service() for servlet default threw exception
>> java.lang.StringIndexOutOfBoundsException: String index out of range:
>> -17
>>
>> I'm not sure but I discussed it here and it may be related:
>> https://issues.apache.org/jira/browse/PB-84 CCE in
>> PortletWindowUtils.getPortletWindowId
>>
>> Does the Bridges windowId code not work correctly when running on
>> portlet 2.0 perhaps? I know sessio0n isolation is now an optional
>> feature of portlet 2.0 - perhaps that's causing problems.
>>
>> ___________________________
>> http://stubbisms.wordpress.com
>>
>> ------------------------------------------------------------------------
>> View this message in context: Re: StringIndexOutOfBoundsException on
>> apache bridges
>> <http://www.nabble.com/StringIndexOutOfBoundsException-on-apache-bridges-tp20055052p20079383.html>
>> Sent from the Pluto - User mailing list archive
>> <http://www.nabble.com/Pluto---User-f200.html> at Nabble.com.
>
>
>
-----
___________________________
http://stubbisms.wordpress.com http://stubbisms.wordpress.com
--
View this message in context:
http://www.nabble.com/StringIndexOutOfBoundsException-on-apache-bridges-tp20055052p20080562.html
Sent from the Pluto - User mailing list archive at Nabble.com.