Uploaded image for project: 'Shale'
  1. Shale
  2. SHALE-422

NullPointerException if no WEB-INF/lib

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.0.4
    • None
    • Tiger
    • None
    • Eclipse 3.1 with Tomcat Launcher Plugin

    Description

      I use the Sysdeo Tomcat Launcher Plugin together with the DevLoaderClasspath extension in order to debug my application. Because this classpath extension sets the classpath for Tomcat (including my Maven Repository classpath) I do not need a WEB-INF/lib directory. (In fact, I do not want to have one on my source path.)

      This causes my application to crash on startup with the following NullPointerException:

      ERROR main org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/teutoFaces] - Exception sending context initialized event to listener instance of class org.apache.shale.view.faces.LifecycleListener
      javax.faces.FacesException: java.lang.NullPointerException
      at org.apache.shale.tiger.view.faces.LifecycleListener2.contextInitialized(LifecycleListener2.java:276)
      at org.apache.shale.view.faces.LifecycleListener.contextInitialized(LifecycleListener.java:138)
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
      at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:608)
      at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:535)
      at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
      at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
      at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
      at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
      at org.apache.catalina.core.StandardService.start(StandardService.java:450)
      at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
      Caused by: java.lang.NullPointerException
      at org.apache.shale.tiger.view.faces.LifecycleListener2.webArchives(LifecycleListener2.java:1513)
      at org.apache.shale.tiger.view.faces.LifecycleListener2.contextInitialized(LifecycleListener2.java:263)
      ... 25 more

      This corresponds to the following code:

      List<JarFile> list = new ArrayList<JarFile>();
      Set<Object> paths = servletContext.getResourcePaths(WEB_LIB_PREFIX);
      for (Object pathObject : paths) {

      I think a simple "if (paths != null)" should solve this issue.

      Best regards,
      Matthias

      Attachments

        Activity

          People

            Unassigned Unassigned
            wuttke Matthias Wuttke
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: