Should work if the Agent is not null.

-----Ursprüngliche Nachricht-----
Von: Andrew Robinson [mailto:[EMAIL PROTECTED] 
Gesendet: Dienstag, 8. Juli 2008 18:02
An: MyFaces Discussion
Betreff: Re: [Trinidad] Nullpointer from Google Bot

Looks like it should be :

 private Icon _getIcon(RenderingContext arc)
 {
   return (Agent.PLATFORM_MACOS.equals(arc.getAgent().getPlatformName())) ?
            _macOSIcon :
            _icon;
 }

This way an NPE can never be thrown. Basically the constant should be
compared to a variable in case the variable is null, where the
constant is never null.


On Tue, Jul 8, 2008 at 3:34 AM, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> This is the method in question:
>
>  private Icon _getIcon(RenderingContext arc)
>  {
>    return (arc.getAgent().getPlatformName().equals(
>                                 Agent.PLATFORM_MACOS)) ?
>             _macOSIcon :
>             _icon;
>  }
>
> Will take a look after I am back from vacation :-)
>
> -M
>
>
> On Tue, Jul 8, 2008 at 11:28 AM, Matthias Wessendorf <[EMAIL PROTECTED]> 
> wrote:
>> Hi Markus,
>>
>> there is already a issue to support other agents, like the KDE-browser
>> (forgot the name).
>> I think that this is a related issue.
>>
>> Can you enter your problem to jira and link to this?
>>
>> I am not 100% sure but it might be a similar issue (yes, I know the
>> stack is different).
>> https://issues.apache.org/jira/browse/TRINIDAD-1109
>>
>> -M
>>
>> On Tue, Jul 8, 2008 at 9:52 AM, Döring Markus
>> <[EMAIL PROTECTED]> wrote:
>>> The exception filter is doing nothing more than catching every exception and
>>> redirecting to another view.
>>>
>>>
>>>
>>> And the exception filter is just at one point in the stack trace, the
>>> NullPointer happens at
>>>
>>> org.apache.myfaces.trinidadinternal.renderkit.core.skin.MacOSSwitcherIcon._getIcon(MacOSSwitcherIcon.java:104)
>>>
>>> so it's not my code causing the problem.
>>>
>>>
>>>
>>> Btw. we're using
>>>
>>> Myfaces 1.1.5
>>>
>>> Facelets 1.1.13
>>>
>>> Trindidad 1.0.7
>>>
>>> on
>>>
>>> JBoss 4.2.2
>>>
>>>
>>>
>>>
>>>
>>> Just to have it all: the exception filter:
>>>
>>>
>>>
>>> private final static Log log = LogFactory.getLog(ExceptionFilter.class);
>>>
>>>
>>>
>>> public void doFilter(ServletRequest request, ServletResponse response,
>>> FilterChain chain) throws IOException, ServletException {
>>>
>>> try {
>>>
>>>               chain.doFilter(request, response);
>>>
>>>       } catch (Throwable thr) {
>>>
>>>             log.error("Error occured in jsf request processing: " +
>>> thr.getMessage(), thr);
>>>
>>>             httpResponse.reset();
>>>
>>>
>>> httpResponse.sendRedirect(httpRequest.getContextPath()+"/faces/error.xhtml");
>>>
>>>                 }
>>>
>>> }
>>>
>>>
>>>
>>>
>>>
>>> Von: Burghard Britzke [mailto:[EMAIL PROTECTED]
>>> Gesendet: Dienstag, 8. Juli 2008 09:34
>>> An: MyFaces Discussion
>>> Betreff: Re: [Trinidad] Nullpointer from Google Bot
>>>
>>>
>>>
>>> Every NullPointerException is caused by a missing initialization.
>>>
>>> My first guess is an initialization error
>>> in de.tccproducts.dps.web.utils.lifecycle.ExceptionFilter.doFilter
>>>
>>>
>>>
>>> sincerely,
>>>
>>> burghard.
>>>
>>>
>>>
>>> Am 08.07.2008 um 09:18 schrieb Döring Markus:
>>>
>>> Hi List,
>>>
>>>
>>>
>>> since our application went live, we get some nullpointer during night. Some
>>> research has shown that the IP that is accessing the site is known as some
>>> "Google Bot" scanning links, ect.
>>>
>>> Don't know why the nullpointer happens, looks like the Google Bot sends some
>>> "strange" MacOS header in the request.
>>>
>>>
>>>
>>> Can someone have a look at this? It's not critical because it's no real
>>> user, but it's not nice to get a nullpointer every night.
>>>
>>>
>>>
>>> Greetings
>>>
>>> Markus
>>>
>>>
>>>
>>> ________________________________
>>>
>>> Log session start time Tue Jul 08 02:32:27 CEST 2008
>>>
>>> Time
>>>
>>> Thread
>>>
>>> Level
>>>
>>> Category
>>>
>>> Message
>>>
>>> 896715047
>>>
>>> http-0.0.0.0-8080-4
>>>
>>> ERROR
>>>
>>> facelets.viewhandler
>>>
>>> Error Rendering View[/error.xhtml]
>>>
>>> java.lang.NullPointerException
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.skin.MacOSSwitcherIcon._getIcon(MacOSSwitcherIcon.java:104)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.skin.MacOSSwitcherIcon.renderIcon(MacOSSwitcherIcon.java:61)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.OutputUtils.renderIcon(OutputUtils.java:284)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.OutputUtils.renderIcon(OutputUtils.java:254)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.ShowDetailRenderer.renderDisclosureIcon(ShowDetailRenderer.java:184)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.ShowDetailRenderer.renderDisclosureIcon(ShowDetailRenderer.java:194)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.ShowDetailRenderer.encodeAll(ShowDetailRenderer.java:91)
>>>      at
>>> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:224)
>>>      at
>>> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:711)
>>>      at
>>> org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:304)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelGroupLayoutRenderer.encodeChild(PanelGroupLayoutRenderer.java:188)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelGroupLayoutRenderer._encodeChildren(PanelGroupLayoutRenderer.java:154)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:106)
>>>      at
>>> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:224)
>>>      at
>>> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:711)
>>>      at
>>> org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode._renderComponent(UIComponentUINode.java:337)
>>>      at
>>> org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode.render(UIComponentUINode.java:279)
>>>      at
>>> org.apache.myfaces.trinidadinternal.uinode.UIComponentUINode.render(UIComponentUINode.java:256)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(ContextPoppingUINode.java:240)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:358)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:313)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderChild(BaseRenderer.java:425)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:343)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:235)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderContent(BaseRenderer.java:142)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.render(BaseRenderer.java:93)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:84)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:358)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:313)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderChild(BaseRenderer.java:425)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:343)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:235)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderContent(BaseRenderer.java:142)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.render(BaseRenderer.java:93)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:84)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:358)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:313)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderChild(BaseRenderer.java:425)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:343)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:235)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderContent(BaseRenderer.java:142)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.BorderLayoutRenderer.renderIndexedChildren(BorderLayoutRenderer.java:56)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.BorderLayoutRenderer.renderContent(BorderLayoutRenderer.java:86)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.render(BaseRenderer.java:93)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:84)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:358)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:313)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderChild(BaseRenderer.java:425)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:343)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderIndexedChild(BaseRenderer.java:235)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.renderContent(BaseRenderer.java:142)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseRenderer.render(BaseRenderer.java:93)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.laf.base.xhtml.XhtmlLafRenderer.render(XhtmlLafRenderer.java:84)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:358)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.BaseUINode.render(BaseUINode.java:313)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.composite.UINodeRenderer.renderWithNode(UINodeRenderer.java:104)
>>>      at
>>> org.apache.myfaces.trinidadinternal.ui.composite.UINodeRenderer.render(UINodeRenderer.java:50)
>>>      at
>>> org.apache.myfaces.trinidadinternal.uinode.UIXComponentUINode.renderInternal(UIXComponentUINode.java:192)
>>>      at
>>> org.apache.myfaces.trinidadinternal.uinode.UINodeRendererBase.encodeEnd(UINodeRendererBase.java:70)
>>>      at
>>> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:711)
>>>      at
>>> org.apache.myfaces.trinidad.render.RenderUtils.encodeRecursive(RenderUtils.java:70)
>>>      at
>>> org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:299)
>>>      at
>>> org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:321)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:64)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:139)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:119)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:79)
>>>      at
>>> org.apache.myfaces.trinidad.render.CoreRenderer.delegateRenderer(CoreRenderer.java:335)
>>>      at
>>> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.DocumentRenderer.encodeAll(DocumentRenderer.java:80)
>>>      at
>>> org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:224)
>>>      at
>>> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:711)
>>>      at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:252)
>>>      at
>>> com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249)
>>>      at
>>> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:579)
>>>      at
>>> org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
>>>      at
>>> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
>>>      at
>>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
>>>      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>      at
>>> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:250)
>>>      at
>>> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:207)
>>>      at
>>> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:161)
>>>      at
>>> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>      at
>>> de.tccproducts.dps.web.utils.lifecycle.ExceptionFilter.doFilter(ExceptionFilter.java:39)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>      at
>>> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>      at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>      at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>>>      at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>>>      at
>>> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
>>>      at
>>> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>>>      at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>      at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>      at
>>> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>>>      at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>      at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
>>>      at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>>      at
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>>      at
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
>>>      at java.lang.Thread.run(Thread.java:595)
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Matthias Wessendorf
>>
>> further stuff:
>> blog: http://matthiaswessendorf.wordpress.com/
>> sessions: http://www.slideshare.net/mwessendorf
>> mail: matzew-at-apache-dot-org
>>
>
>
>
> --
> Matthias Wessendorf
>
> further stuff:
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> mail: matzew-at-apache-dot-org
>

Reply via email to