Hi Matthias,
My response is inline.

Matthias Wessendorf wrote, On 8/15/2009 2:02 AM PT:
On Sat, Aug 15, 2009 at 2:57 AM, Jeanne
Waldman<[email protected]> wrote:
  
If I change Trinidad's demo faces-config.xml file to use a bogus
default-render-kit-id, I get a NPE.

    <!-- Use the Trinidad RenderKit -->
    <default-render-kit-id>
      org.apache.myfaces.trinidad.coreBAD
    </default-render-kit-id>

I get this:

java.lang.NullPointerException
    at
com.sun.faces.renderkit.RenderKitUtils.getResponseStateManager(RenderKitUtils.java:246)
    at
com.sun.faces.lifecycle.RestoreViewPhase.isPostback(RestoreViewPhase.java:267)
    at
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:172)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    at
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:104)
    Truncated. see log file for complete stacktrace
    
This seems to me to be a bug in
com.sun.faces.renderkit.RenderKitUtils.getResponseStateManager:

3                   renderKit = factory.getRenderKit(context, renderKitId);
  244               }
  245           }
  246           return renderKit.getResponseStateManager();

Has anyone seen this or have an opinion about this? I would have liked to
have had a log message telling me why I got a NPE at least so I didn't have
to track it down.
    

Question: Is the myfaces jsf-impl better here?
I don't know as I haven't done something like the above.
Sure, on first thought the bug is kinda stupid, but heck - typos can happen :-)

So a better "warning" like a FAcesException ("there is no damn
'org.apache.myfaces.trinidad.coreBAD' renderkit")
would be way better.
  
I get a similar error in MyFaces.
SEVERE: An exception occurred
java.lang.NullPointerException
    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getResponseStateManager(RendererUtils.java:1178)
    at org.apache.myfaces.lifecycle.DefaultRestoreViewSupport.isPostback(DefaultRestoreViewSupport.java:127)
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:80)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)

My use case was that someone was using an 'old' application and they let JDeveloper migrate it. JDev doesn't touch
the default-render-kit-id and it was no longer valid, and then they got this NPE which was impossible for them to know why from
looking at the call stack.

How should I follow up on this ?

Thanks!
Jeanne

-M

  
I suppose I could write out a warning message in Trinidad's
FacesContextFactoryImpl.java if it returns null.

Thanks,
Jeanne


    



  

Reply via email to