2013/12/13 Violeta Georgieva <miles...@gmail.com>

> Unfortunately with that fix I'm receiving FNF:
>
> java.io.FileNotFoundException: /META-INF/tags/my.tag
>
> org.apache.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:235)
>
> org.apache.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:579)
>
> org.apache.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:50)
>
> org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:661)
> org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1521)
> org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2359)
> org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
> org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
> org.apache.jasper.compiler.Node$Root.accept(Node.java:464)
> org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2359)
>
> org.apache.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:679)
> org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231)
> org.apache.jasper.compiler.Compiler.compile(Compiler.java:375)
> org.apache.jasper.compiler.Compiler.compile(Compiler.java:355)
> org.apache.jasper.compiler.Compiler.compile(Compiler.java:342)
>
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:557)
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
>
>
> I'll try to create a test case for that.
>

The JspCompilationContext used to keep a map of the JarResource
corresponding to the tags:
    public JarResource getTagFileJarResource(String tagFile) {
        return this.tagFileJarUrls.get(tagFile);
    }

    public void setTagFileJarResource(String tagFile, JarResource
jarResource) {
        this.tagFileJarUrls.put(tagFile, jarResource);
    }

This was set in TagLibraryInfoImpl.createTagFileInfo and then used by the
TagFileProcessor.loadTagFile. This should be ok without it because the code
keeps around the Jar instead and uses the entry name now, but apparently
something is still missing and the removed flag gets set (this is what
causes this exception).

So I guess add a test, it can't hurt.

Rémy

Reply via email to