Details
Description
An NPE is thrown when running showcase or component-showcase with Mojarra greater or equal to 2.1.11. The exception seems to be caused by a change in behaviour of how resources are looked up in the class path.
component-showcase:
java.lang.NullPointerException
at com.icesoft.faces.component.inputrichtext.InputRichTextResourceHandler.calculateExtensionMapping(InputRichTextResourceHandler.java:95)
at com.icesoft.faces.component.inputrichtext.InputRichTextResourceHandler.access$100(InputRichTextResourceHandler.java:37)
at com.icesoft.faces.component.inputrichtext.InputRichTextResourceHandler$1.processEvent(InputRichTextResourceHandler.java:76)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:119)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2198)
at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2174)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:202)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:642)
showcase:
java.lang.NullPointerException
at org.icefaces.ace.component.richtextentry.RichTextEntryResourceHandler.calculateExtensionMapping(RichTextEntryResourceHandler.java:97)
at org.icefaces.ace.component.richtextentry.RichTextEntryResourceHandler.access$200(RichTextEntryResourceHandler.java:37)
at org.icefaces.ace.component.richtextentry.RichTextEntryResourceHandler$1.processEvent(RichTextEntryResourceHandler.java:78)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:119)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2198)
at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2174)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:202)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:642)
component-showcase:
java.lang.NullPointerException
at com.icesoft.faces.component.inputrichtext.InputRichTextResourceHandler.calculateExtensionMapping(InputRichTextResourceHandler.java:95)
at com.icesoft.faces.component.inputrichtext.InputRichTextResourceHandler.access$100(InputRichTextResourceHandler.java:37)
at com.icesoft.faces.component.inputrichtext.InputRichTextResourceHandler$1.processEvent(InputRichTextResourceHandler.java:76)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:119)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2198)
at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2174)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:202)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:642)
showcase:
java.lang.NullPointerException
at org.icefaces.ace.component.richtextentry.RichTextEntryResourceHandler.calculateExtensionMapping(RichTextEntryResourceHandler.java:97)
at org.icefaces.ace.component.richtextentry.RichTextEntryResourceHandler.access$200(RichTextEntryResourceHandler.java:37)
at org.icefaces.ace.component.richtextentry.RichTextEntryResourceHandler$1.processEvent(RichTextEntryResourceHandler.java:78)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:119)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2198)
at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2174)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:202)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:642)
Modified ice:inputRichTExt and ace:richTextEntry components to use the first directory of the used resources as the library name. Recent versions of Mojarra (>2.1.9)require library name specified when the local path to resource contains at least one folder.