I think the handling of the WEB-INF/classes at the JBoss class loader
level is dubious and its subject to being ripped out as soon as I
take a close look at it. In general patches are to be submitted through
sourceforge JBoss project.

xxxxxxxxxxxxxxxxxxxxxxxx
Scott Stark
Chief Technology Officer
JBoss Group, LLC
xxxxxxxxxxxxxxxxxxxxxxxx
----- Original Message -----
From: "Matt Humphrey" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, February 12, 2002 1:58 PM
Subject: [JBoss-dev] Fix for bug in AbstractWebContainer


> It appears that deployment of WAR files was broken when the new Unified
> Classloader was implemented. The problem seems to be that a classloader
for
> the WEB-INF/classes directory within the WAR is not created, and instead a
> classloader for some arbitrary subdirectory of WEB-INF/classes is created.
> Here is a snippet of the broken code (from
> AbstractWebContainer.parseWEBINFClasses):
>
>     File outFile = new File(localCopyDir,
> di.shortName+".webinf"+File.separator+name);
>     outFile.getParentFile().mkdirs();
>     if (!uclCreated)
>     {
>       DeploymentInfo sub = new
> DeploymentInfo(outFile.getParentFile().toURL(), di);
>       // There is no copying over, just use the url for the UCL
>       sub.localUrl = sub.url;
>
>       // Create a URL for the sub
>       sub.createClassLoaders();
>       uclCreated = true;
>       di.subDeployments.add(sub);
>     }
>
> For example, if the first file under WEB-INF/classes it finds is
> WEB-INF/classes/org/blah/foo.class, it will create a sub-deployment (and
> hence a classloader) for WEB-INF/classes/org/blah/ when what we really
> wanted was a sub-deployment for WEB-INF/classes/. Here is my fix:
>
>     File outFile = new File(localCopyDir,
> di.shortName+".webinf"+File.separator+name);
>
>     outFile.getParentFile().mkdirs();
>
>     if (!uclCreated)
>     {
> // ************** NEW CODE
>       File classesFile = new File(localCopyDir,
> di.shortName+".webinf"+File.separator+"WEB-INF"+File.separator+"classes");
>
>       DeploymentInfo sub = new DeploymentInfo(classesFile.toURL(), di);
> // ************** END NEW CODE
>
>       // There is no copying over, just use the url for the UCL
>       sub.localUrl = sub.url;
>
>       // Create a URL for the sub
>       sub.createClassLoaders();
>
>       uclCreated = true;
>
>       di.subDeployments.add(sub);
>     }
>
> I apologize if I am not submitting this fix in the correct format; I am
new
> to open source development.
>
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>
>
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development
>


_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to