Mantis - Resin
Viewing Issue Advanced Details
62 minor always 03-30-05 00:00 05-11-05 00:00
sam  
 
normal  
closed 3.0.12  
3.0.12 fixed  
none    
none 3.0.13  
0000062: ExpandDeployController.addManifestClassPath NullPointerException
RSN-53
(rep by A Firstenberg)

Trying to access the site, we will get a 500 Servlet Exception that only
appears in the page returned, not in the logs:

500 Servlet Exception
java.lang.NullPointerException
        at
com.caucho.server.deploy.ExpandDeployController.addManifestClassPath(ExpandDeployController.java:205)
        at
com.caucho.server.deploy.DeployController.startImpl(DeployController.java:603)

Notes
(0000066)
user104   
03-30-05 00:00   
A coworker painstaikingly tried to track this down, and came up with a variety of strange workarounds, conclusions, and kluges. We can get some of the sites to work if we force it to be deployed in a directory named ROOT, but a root webapp deployed in a different directory doesn't work. Other times, even this trick doesn't seem to work.

If the root webapp isn't in one of the designated deploy directories, and those directories are empty, then when it's trying to decide whether it needs to "restart" the webapp it doesn't see anything modified in the deploy-dir, so it doesn't "restart" the webapp. Except this "restart" is happening when the server starts up, and it ends up not starting the root webapp since the root webapp is configured to be run from a different directory, as configured by a <document-directory> tag.

She also observed that in a configuration with two webapps when the host object is created for the <host> tag, in the broken configuration, two webapps are created for a single webapp /. The second one is the broken one - its archive path isn't set, and this is what causes the NPE. In the non-broken configuration, the same two webapps are created, but then a third one is created from WebAppEntry.merge(), which does have a proper archivePath, and this is the one that is used to serve the root webapp. She has also traced
this to a comparison with FilePath with two paths that are identical aside from a trailing / in the broken one, and identical on the working configurations.
(0000067)
ferg   
03-30-05 00:00   
The mainifestLoader was not properly checked for null before adding.