You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2014/06/20 07:35:17 UTC

[Bug 56649] New: Concurrent issue of TagFileProcessor

https://issues.apache.org/bugzilla/show_bug.cgi?id=56649

            Bug ID: 56649
           Summary: Concurrent issue of TagFileProcessor
           Product: Tomcat 7
           Version: trunk
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Jasper
          Assignee: dev@tomcat.apache.org
          Reporter: howeverking@gmail.com

The following code has concurrent issue.

JspCompilationContext ctxt = compiler.getCompilationContext();
        JspRuntimeContext rctxt = ctxt.getRuntimeContext();

        synchronized (rctxt) {
            JspServletWrapper wrapper = rctxt.getWrapper(wrapperUri);

In case when multiple org.apache.jasper.servlet.JspServlet are registered
in web.xml, distict JspCompilationContext will be used for each
servlet mappings.

For instance, if there are two jspServlets a and b registered in web.xml,
a's compilation of a tag file won't be protected from b's encounter.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 56649] Concurrent issue of TagFileProcessor

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=56649

Daniel Koh <ho...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 OS|                            |All

--- Comment #1 from Daniel Koh <ho...@gmail.com> ---
Correction:
-->
In case when multiple org.apache.jasper.servlet.JspServlet are registered
in web.xml, **distinct JspRuntimeContext** will be used for each
servlet mappings.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 56649] Concurrent issue of TagFileProcessor

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=56649

--- Comment #2 from Mark Thomas <ma...@apache.org> ---
The JSP servlet is not designed to support more than one instance per web
application. Before this gets resolved as invalid (possibly with an update to
the docs to make the single instance point clear) what is your use case for
configuring more than one JSP servlet?

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 56649] Concurrent issue of TagFileProcessor

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=56649

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WORKSFORME

--- Comment #5 from Mark Thomas <ma...@apache.org> ---
Konstantin is right. Dedicated scratch directories should take care of this. I
should have realised that the original Jasper developers would have thought of
this. If separate directories doesn't address this, please feel free to
re-open, explain what the problem is and we'll take another look.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 56649] Concurrent issue of TagFileProcessor

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=56649

--- Comment #3 from Konstantin Kolinko <kn...@gmail.com> ---
If there are several JspServlet instances, it is possible to configure them to
write to different directories, so that there is no conflict.

// EmbeddedServletOptions.java
String dir = config.getInitParameter("scratchdir");


If there are several JspServlet instances, each one will have its own copy of a
Tag (loaded by a different class loader).

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 56649] Concurrent issue of TagFileProcessor

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=56649

--- Comment #4 from Daniel Koh <ho...@gmail.com> ---
(In reply to Mark Thomas from comment #2)
> The JSP servlet is not designed to support more than one instance per web
> application. Before this gets resolved as invalid (possibly with an update
> to the docs to make the single instance point clear) what is your use case
> for configuring more than one JSP servlet?


different Jsp options to be applied to different url-mappings.
(for instance, an option like genStringAsCharArray to be applied to
to specific Jsps with a large String)

allowing to register multiple Jsps will give users an impression that
configuring as above is possible.

What about throwing an exception when multiple JspServlets are registered
in web.xml to make it clear that multiple Jsps are not allowed?

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org