[ 
https://issues.apache.org/jira/browse/TRINIDAD-1558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias Weßendorf updated TRINIDAD-1558:
-----------------------------------------

       Resolution: Duplicate
    Fix Version/s: 1.2.13-core 
           Status: Resolved  (was: Patch Available)

this is a duplicate of TRINIDAD-1520. The bug has been fixed with the fix for 
TRINIDAD-1520

> java.lang.NullPointerException: version must be non-null with Googlebot agent 
> (trindad trunk) 
> ----------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-1558
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1558
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>    Affects Versions: 1.2.13-core 
>         Environment: Linux 2.6 Java(TM) SE Runtime Environment (build 
> 1.6.0_16-b01) tomcat 6.0.18 myfaces-api/impl-1.2.7  trinidad-api/impl 
> 1.2.13-SNAPSHOT (trunk) 
>            Reporter: Angel
>            Priority: Critical
>             Fix For: 1.2.13-core 
>
>
> when request with the header of Googlebots comes  
> org/apache/myfaces/trinidadinternal/agent/AgentImpl.java gets initialized 
> with String _agent = NULL; and String _agentVersion = NULL; and a NPE  is 
> thrown:
> java.lang.NullPointerException: version must be non-null
>       at 
> org.apache.myfaces.trinidad.context.Version._checkNonEmptyString(Version.java:197)
>       at org.apache.myfaces.trinidad.context.Version.<init>(Version.java:69)
>       at org.apache.myfaces.trinidad.context.Version.<init>(Version.java:54)
>       at 
> org.apache.myfaces.trinidadinternal.style.util.NameUtils._isBrowserAndVersionMatch(NameUtils.java:640)
>       at 
> org.apache.myfaces.trinidadinternal.style.util.NameUtils.getContextName(NameUtils.java:344)
>       at 
> org.apache.myfaces.trinidadinternal.style.cache.FileSystemStyleCache.getTargetStyleSheetName(FileSystemStyleCache.java:325)
>       at 
> org.apache.myfaces.trinidadinternal.skin.SkinStyleProvider.getTargetStyleSheetName(SkinStyleProvider.java:199)
>       at 
> org.apache.myfaces.trinidadinternal.style.cache.FileSystemStyleCache._getOutputFiles(FileSystemStyleCache.java:879)
>       at 
> org.apache.myfaces.trinidadinternal.style.cache.FileSystemStyleCache._createStyleSheetFiles(FileSystemStyleCache.java:757)
>       at 
> org.apache.myfaces.trinidadinternal.style.cache.FileSystemStyleCache._createEntry(FileSystemStyleCache.java:542)
>       at 
> org.apache.myfaces.trinidadinternal.style.cache.FileSystemStyleCache._getEntry(FileSystemStyleCache.java:445)
>       at 
> org.apache.myfaces.trinidadinternal.style.cache.FileSystemStyleCache.getStyleSheetURIs(FileSystemStyleCache.java:165)
>       at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.StyleSheetRenderer.encodeAll(StyleSheetRenderer.java:97)
>       at 
> org.apache.myfaces.trinidad.render.CoreRenderer.delegateRenderer(CoreRenderer.java:446)
>       at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.HeadRenderer.encodeBegin(HeadRenderer.java:80)
>       at 
> org.apache.myfaces.trinidad.render.CoreRenderer.encodeBegin(CoreRenderer.java:311)
>       at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeBegin(UIXComponentBase.java:718)
>       at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1478)
>       at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1489)
>       at 
> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeAll(UIXComponentBase.java:771)
>       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:257)
>       at 
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:427)
>       at 
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:383)
>       at 
> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:48)
>       at 
> org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
>       at 
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown 
> Source)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown 
> Source)
>       at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
>       at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
>       at 
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown 
> Source)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown 
> Source)
>       at org.piranko.filters.LocaleFilter.doFilter(LocaleFilter.java:82)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown 
> Source)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown 
> Source)
>       at 
> org.piranko.filters.ExceptionsFilter.doFilter(ExceptionsFilter.java:61)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown 
> Source)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown 
> Source)
>       at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
>       at 
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
>       at 
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown 
> Source)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown 
> Source)
>       at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source)
>       at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source)
>       at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source)
>       at org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source)
>       at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source)
>       at org.apache.catalina.connector.CoyoteAdapter.service(Unknown Source)
>       at org.apache.jk.server.JkCoyoteHandler.invoke(Unknown Source)
>       at org.apache.jk.common.HandlerRequest.invoke(Unknown Source)
>       at org.apache.jk.common.ChannelSocket.invoke(Unknown Source)
>       at org.apache.jk.common.ChannelSocket.processConnection(Unknown Source)
>       at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(Unknown 
> Source)
>       at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Unknown Source)
>       at java.lang.Thread.run(Thread.java:619)
> We have patched the code temporary with: 
> Index: 
> trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java
> ===================================================================
> --- trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java 
> (revision 807570)
> +++ trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Agent.java 
> (working copy)
> @@ -124,7 +124,12 @@
>     */
>    public static final String AGENT_UNKNOWN = "unknown";
>  
> +
>    /**
> +   * Constant used for unknown versions of agents
> +   */
> +  public static final String VERSION_UNKNOWN = "unknown";
> +  /**
>     * Constant for Konqueror agent
>     */
>    public static final String AGENT_KONQUEROR = "konqueror";
> and
> Index: 
> trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentImpl.java
> ===================================================================
> --- 
> trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentImpl.java
>       (revision 807570)
> +++ 
> trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/agent/AgentImpl.java
>       (working copy)
> @@ -146,8 +146,8 @@
>    private static class AgentEntry
>    {
>      Object _type = TYPE_UNKNOWN;
> -    String _agent;
> -    String _agentVersion;
> +    String _agent = AGENT_UNKNOWN;
> +    String _agentVersion = VERSION_UNKNOWN;
>      String _platform;
>      String _platformVersion;
>      String _makeModel;
> so that the AgentEntry class _agent and _agentVersion will always be 
> initialized. Is that acceptable solution or another brake might be expected.
> We have also observed that to reproduce the error one must not call the local 
> server with "http://localhost:8080/"; but with "http://10.1.1.208:8080/"; 
> otherwise the problem does not apear. This is probably because the styles are 
> pulled out of cache of some sort and not freshly created when the problem 
> appears when creating new stylesheet.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to