Sorry about that - will make sure not to cross post going forward. I
wanted input from any WAS users as well, so posted to both groups. I can
see how that can cause problems.

About the code snippet - *my bad* - I sent in the wrong code because I
have multiple versions of Jetspeed source code on my box. I just saw the
stack trace, noticed that it was coming from line 210 in
ServletRequestImpl and posted the snippet. The actual code snippet is
this:

    /**
     * @see
javax.servlet.http.HttpServletRequest#getAttribute(java.lang.String)
     */
    public Object getAttribute( String name )
    {
        ***Object value = super.getAttribute(name);***(Line 210)
        if (name.equals(PortletRequest.USER_INFO))
        {
            JetspeedRequestContext context = (JetspeedRequestContext)
getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
            if (null != context)
            {
                String entityID = "--NULL--";
                PortletEntity entity = portletWindow.getPortletEntity();
                if (entity != null)
                {
                    entityID = entity.getId().toString();
                }
                PortletApplicationEntity portletAppEntity =
portletWindow.getPortletEntity()
                        .getPortletApplicationEntity();
                PortletApplicationDefinition portletAppDef =
entity.getPortletDefinition()
                        .getPortletApplicationDefinition();

                if (null != portletAppDef)
                {
                    value =
context.getUserInfoMap(portletAppDef.getId());
                    if (log.isDebugEnabled() && (null != value))
                        log.debug(PortletRequest.USER_INFO + " map size:
" + ((Map) value).size());
                }
                else
                {
                    log.error("Entity is null:" + entityID);
                }

            }
        }
        else
        {
            if (null == value)
            {
                PortletRequest pr = (PortletRequest)
super.getAttribute("javax.portlet.request");
                if (pr != null)
                {
                    value =
super.getAttribute(nameSpaceMapper.encode(portletWindow.getId(),
                            name));
                }
            }
        }
        return value;
    }

Here is the complete stack trace with line numbers where available:

2006-12-27 15:07:16,331 [WebContainer : 1] ERROR
org.apache.portals.gems.browser.BrowserPortlet - (a414414):
PortletInventory processAction caused exception.
java.lang.NullPointerException
        at
com.ibm.ws.webcontainer.srt.SRTServletRequest$SRTServletRequestHelper.ac
cess$200(SRTServletRequest.java(Compiled Code))
        at
com.ibm.ws.webcontainer.srt.SRTServletRequest.getAttribute(SRTServletReq
uest.java:157)
        at
javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.j
ava(Compiled Code))
        at
org.apache.jetspeed.engine.servlet.ServletRequestImpl.getAttribute(Servl
etRequestImpl.java:210)
        at
org.apache.jetspeed.services.information.InformationProviderServiceImpl.
getDynamicProvider(InformationProviderServiceImpl.java:59)
        at
org.apache.pluto.services.information.InformationProviderAccess.getDynam
icProvider(InformationProviderAccess.java:34)
        at
org.apache.pluto.core.impl.PortletURLImpl.toString(PortletURLImpl.java:1
46)
        at
org.apache.jetspeed.container.url.impl.JetspeedPortletURL.toString(Jetsp
eedPortletURL.java:40)
        at
com.fmr.fimt.bosportal.portlet.portletinventory.PortletInventory.getRows
(PortletInventory.java:303)
        at
com.fmr.fimt.bosportal.portlet.selector.PortletSelector.getRows(PortletS
elector.java:215)
        at
org.apache.portals.gems.browser.BrowserPortlet.doView(BrowserPortlet.jav
a:188)
        at
com.fmr.fimt.bosportal.portlet.selector.PortletSelector.doView(PortletSe
lector.java:130)
        at
com.fmr.fimt.bosportal.portlet.portletinventory.PortletInventory.doView(
PortletInventory.java:239)
        at
javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
        at javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
        at
org.apache.portals.bridges.velocity.GenericVelocityPortlet.render(Generi
cVelocityPortlet.java:163)
        at
org.apache.jetspeed.factory.JetspeedPortletInstance.render(JetspeedPortl
etInstance.java:102)
        at
org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedCon
tainerServlet.java:230)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.ja
va:1282)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrap
per.java:673)
        at
com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppReq
uestDispatcher.java:501)
        at
org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(Servl
etPortletInvoker.java:215)
        at
org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(Servl
etPortletInvoker.java:126)
        at
org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl
.java:119)
        at
org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPort
let(JetspeedPortletContainerWrapper.java:120)
        at
org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute(RenderingJo
bImpl.java:121)
        at
org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(Portle
tRendererImpl.java:120)
        at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRende
r(PageAggregatorImpl.java:199)
        at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRende
r(PageAggregatorImpl.java:182)
        at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRende
r(PageAggregatorImpl.java:182)
        at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggrega
torImpl.java:106)
        at
org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.ja
va:48)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.ja
va:110)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionVal
veImpl.java:147)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
com.fmr.fimt.fw.pipeline.valve.impl.UsageStatsValveImpl.invoke(UsageStat
sValveImpl.java:137)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:
76)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValve
Impl.java:255)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginV
alidationValveImpl.java:159)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(Local
izationValveImpl.java:169)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSe
curityValve.java:117)
        at java.security.AccessController.doPrivileged1(Native Method)
        at
java.security.AccessController.doPrivileged(AccessController.java(Compil
ed Code))
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:627)
        at
org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractS
ecurityValve.java:111)
        at
com.fmr.portal.security.NTLMSecurityValve.invoke(NTLMSecurityValve.java:
165)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalU
RLValveImpl.java:67)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(Capabil
ityValveImpl.java:128)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
com.fmr.fimt.fw.pipeline.valve.impl.StatisticsValveImpl.invoke(Statistic
sValveImpl.java:57)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(Jets
peedPipeline.java:166)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.ja
va:145)
        at
org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:21
4)
        at
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:23
8)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.ja
va:1282)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.ja
va:1239)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterCh
ain.java:113)
        at
com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterC
hain.java:82)
        at
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrap
per.java:670)
        at
com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2905)
        at
com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
        at
com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
        at
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:182
9)
        at
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:8
4)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscriminatio
n(HttpInboundLink.java:469)
        at
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformatio
n(HttpInboundLink.java:408)
        at
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpIC
LReadCallback.java:101)
        at
com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallba
ck.complete(SSLReadServiceContext.java:1686)
        at
com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueMa
nager.java:566)
        at
com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.
java:619)
        at
com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.
java:952)
        at
com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager
.java:1039)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1455)


-----Original Message-----
From: David Sean Taylor [mailto:[EMAIL PROTECTED] 
Sent: Thursday, January 25, 2007 1:57 PM
To: Jetspeed Users List
Subject: Re: NullPointerException when calling PortletURLImpl.toString()
in websphere 6.0



Raman, just a very minor thing: please don't cross post.
This issue should be on the -dev list, and i replied without looking and

it has 'jumped' to the -user list now.

OK, so I was confused by looking at the code snippet below
The CurrentWorkerContext snippet there was committed by me on Dec 18, 
2006. (SVN 488559)

Yes, please send me the stack trace

Tallamraju, Raman wrote:
> We aren't using the new multi-threaded aggregator. Our Jetspeed code
is
> 2.1-dev and is from July-05-2006. The stack trace is correct. I can
send
> you the full stack trace if you like.
> 
> Thanks,
> Raman
> 
> -----Original Message-----
> From: David Sean Taylor [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, January 25, 2007 1:31 PM
> To: Jetspeed Users List
> Subject: Re: NullPointerException when calling
PortletURLImpl.toString()
> in websphere 6.0
> 
> 
> Are you using the SVN head?
> If the error is in the (ct instanceof Worker) block,
> then it would appears that you have the new multi-threaded aggregator 
> enabled. However, the stack trace below doesn't quite follow.
> Is that the correct stack trace?
> 
> 
> Tallamraju, Raman wrote:
>> I traced it down to
>> org.apache.jetspeed.engine.servlet.ServletRequestImpl.java:
>>
>>     public Object getAttribute( String name )
>>     {
>>         Object value = null;
>>
>>         // In parallel mode, first look up from the worker.
>>
>>         Thread ct = Thread.currentThread();
>>
>>         if (ct instanceof Worker)
>>         {
>>             value = **** CurrentWorkerContext.getAttribute(name);
> *****
>>         }
>>
>>         // If no attribute found, then look up from the request
>>         if (null == value) 
>>         {
>>             value = getAttributeInternal(name);
>>         }
>>
>>         return value;
>>     }
>>
>> That's where the getAttribute call then moves to the worker thread
>> (Websphere's com.ibm.ws.webcontainer.srt.SRTServletRequest) which
then
>> throws a NullPointerException.
>>
>> Hope this is helpful.
>>
>> Thanks,
>> Raman
>>
>>>  -----Original Message-----
>>> From:       Tallamraju, Raman  
>>> Sent:       Thursday, January 25, 2007 10:51 AM
>>> To: 'Jetspeed Users List'; Jetspeed Developers List
>>> Cc: Siva, Jawahar; Sie, Yang; Gile, Abeba
>>> Subject:    NullPointerException when calling
>>> PortletURLImpl.toString() in websphere 6.0
>>>
>>> Hi All,
>>>
>>> We're seeing some strange behavior when calling toString() on a
>>> PortletURLImpl object. Here are the details:
>>>
>>> We have a PortletURL class variable in one of our portlets that is
> set
>>> to response.createActionURL() in this portlet's doView method. In
>>> another method which is eventually called from doView (via a few
> calls
>>> up to doViews of the parent classes), we try to call toString() on
>>> this PortletURL object - this has been producing a
>>> NullPointerException for us lately even though the PortletURL object
>>> itself isn't null.
>>>
>>> We did some more digging and followed it up to Pluto's
>>> PortletURLImpl.toString() method. This method has the following code
>>> in it:
>>>
>>> PortletURLProvider urlProvider =
>>>
> InformationProviderAccess.getDynamicProvider(servletRequest).getPortle
>>> tURLProvider(portletWindow);
>>>
>>> We've identified the
>>> InformationProviderAccess.getDynamicProvider(servletRequest) call as
>>> being the culprit that's throwing the NullPointerException. This
>>> happens randomly (there seems to be some evidence that supports a
>>> relation to load - but not conclusive yet) and we don't know why. We
>>> did some searching online and looks like other users have seen this
>>> issue in the Websphere environment & they indicate that WAS's
>>> threading model might have something to do with it:
>>>
>>>
> http://www-128.ibm.com/developerworks/forums/dw_thread.jsp?forum=168&t
>>> hread=136143&cat=9
>>>
> http://mail-archives.apache.org/mod_mbox/cocoon-dev/200309.mbox/%3C200
>>> [EMAIL PROTECTED]
>>>
> http://www-128.ibm.com/developerworks/forums/dw_thread.jsp?message=174
>>> 709&cat=10&thread=26484&treeDisplayType=expandtree&forum=176
>>>
>>> Have any of you seen this issue? Any pointers about the
> cause/solution
>>> would be much appreciated.
>>>
>>> Thanks,
>>> Raman
>>>
>>> Here's our WAS info:
>>>
>>> IBM WebSphere Application Server - ND, 6.0.2.0
>>> Build Number: o0526.07
>>>
>>> This portlet happens to extend PortletSelector from Jetspeed 2.0
> which
>>> basically uses gems.browser.BrowserPortlet. Here's the relevant
>>> portion of the stack trace:
>>>
>>> logs/bosPortal.log.1:2007-01-23 11:11:12,274 [WebContainer : 2]
ERROR
>>> org.apache.portals.gems.browser.BrowserPortlet - : PortletInventory
>>> processAction caused exception.
>>> logs/bosPortal.log.1-java.lang.NullPointerException
>>> logs/bosPortal.log.1-       at
>>>
> com.ibm.ws.webcontainer.srt.SRTServletRequest.getAttribute(SRTServletR
>>> equest.java(Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper
>>> .java(Inlined Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> org.apache.jetspeed.engine.servlet.ServletRequestImpl.getAttribute(Ser
>>> vletRequestImpl.java(Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> org.apache.jetspeed.services.information.InformationProviderServiceImp
>>> l.getDynamicProvider(InformationProviderServiceImpl.java(Inlined
>>> Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> org.apache.pluto.services.information.InformationProviderAccess.getDyn
>>> amicProvider(InformationProviderAccess.java(Inlined Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> org.apache.pluto.core.impl.PortletURLImpl.toString(PortletURLImpl.java
>>> (Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> org.apache.jetspeed.container.url.impl.JetspeedPortletURL.toString(Jet
>>> speedPortletURL.java(Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> com.fmr.fimt.bosportal.portlet.portletinventory.PortletInventory.getRo
>>> ws(PortletInventory.java(Compiled Code))
>>> logs/bosPortal.log.1-       at
>>>
> com.fmr.fimt.bosportal.portlet.selector.PortletSelector.getRows(Portle
>>> tSelector.java(Compiled Code))
>>>
>>>
> 

-- 
David Sean Taylor
Bluesunrise Software
[EMAIL PROTECTED]
[office] +01 707 773-4646
[mobile] +01 707 529 9194

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to