Re: svn commit: r1560931 - in /tomcat/tc7.0.x/trunk: build.xml java/org/apache/tomcat/util/descriptor/DigesterFactory.java
Hi, 2014-03-13 23:12 GMT+02:00 Konstantin Kolinko knst.koli...@gmail.com: 2014-03-13 16:28 GMT+04:00 Violeta Georgieva miles...@gmail.com: Hi, In OSGi world the functionality is separated in different bundles and schemes for servlet API is in one bundle and schemes for JSP API in another. With that change we pack all schemes in servlet-api.jar. Till this changed one was able to use whatever servlet api bundle compatible with Tomcat but with that change we enforce people to use only the jar provided by Tomcat which is not a bundle also. Is it possible to return back the check with JSPContext? Something like this? Till this changed one was able to use whatever servlet api bundle compatible with Tomcat It is container's responsibility to provide the servlet API jar, and I think the said jar can have whatever hard ties with container's internals. An application can use whatever 3rd party servlet.jar implementation at compile time, but at run time it has to use the container-provided one. For example, Cookie.java relies on certain configuration properties defined by Tomcat documentation to provide secure and specification-compliant behaviour. You cannot swap that implementation with random other. That's good to know. Thanks Violeta Apparently there are a ways to bypass Tomcat's enforcement of specification compliance wrt. where servlet-api.jar comes from. E.g. if one places a rogue jar into $CLASSPATH or into ${catalina.base}/lib or into endorsed directory, or into JRE. I think it is good that we can uncover such broken configurations. E.g. https://issues.apache.org/bugzilla/show_bug.cgi?id=56236 If you want to break dependency of DigesterFactory on this specific implementation of ServletContext, it is possible to copy schemas into the same jar where DigesterFactory.class is. But I see no need for that, and I think that such a change would make the things worse. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1560931 - in /tomcat/tc7.0.x/trunk: build.xml java/org/apache/tomcat/util/descriptor/DigesterFactory.java
Hi, 2014-03-13 23:33 GMT+02:00 Mark Thomas ma...@apache.org: On 13/03/2014 13:41, Violeta Georgieva wrote: 2014-03-13 15:28 GMT+02:00 Mark Thomas ma...@apache.org: snip/ What exactly is it that we want to cover? I can think of a number of requirements. 1. Ensure that Tomcat still works (excluding validation) if using a servlet API implementation that does not include the JSP schemas. 2. Ensure that Tomcat can still validate web.xml files if using a Servlet API implementation that does not include JSP schemas along with a JSP API implementation that does. Any more? No. These two cover the scenario. I think my recent changes have addressed this. It would be good if you could test with 7.0.x trunk and report back. My basic tests show that it is working. Thanks Violeta Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1577328 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/util/descriptor/DigesterFactory.java java/org/apache/tomcat/util/descriptor/LocalStrings.properties webapps/docs/changelo
2014-03-14 0:43 GMT+02:00 Konstantin Kolinko knst.koli...@gmail.com: 1. addSelf() is odd, does not match with TC8. Bad merge? 2. Both add() and addSelf() should display a warning. Maybe move log.warn() into locationFor(..) method. 3. What is the point of putting null values into the maps. 4. Message: digesterFactory.missingSchema=The XML schema [{0}] could not be found. This is likely to break XML validation if enabled. It is ambiguous to what if enabled refers to (what is the subject for that verb). Overall I do not like motivation behind this change (as I replied in Violetta's thread), but technically it does not change behaviour (in the correct case) and provides a warning message instead of ugly NPE. Thus it is OK with me. Thanks for the approval. Violeta 2014-03-14 1:33 GMT+04:00 ma...@apache.org: Author: markt Date: Thu Mar 13 21:33:08 2014 New Revision: 1577328 URL: http://svn.apache.org/r1577328 Log: Enable Tomcat to work in a OSGI environment with alternative Servlet and JSP API JARs. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1577315,1577324 Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java?rev=1577328r1=1577327r2=1577328view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java Thu Mar 13 21:33:08 2014 @@ -23,8 +23,11 @@ import java.util.Map; import javax.servlet.ServletContext; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.digester.Digester; import org.apache.tomcat.util.digester.RuleSet; +import org.apache.tomcat.util.res.StringManager; import org.xml.sax.ext.EntityResolver2; /** @@ -33,6 +36,25 @@ import org.xml.sax.ext.EntityResolver2; */ public class DigesterFactory { +private static final Log log = LogFactory.getLog(DigesterFactory.class); +private static final StringManager sm = +StringManager.getManager(Constants.PACKAGE_NAME); + +private static final ClassServletContext CLASS_SERVLET_CONTEXT; +private static final Class? CLASS_JSP_CONTEXT; + +static { +CLASS_SERVLET_CONTEXT = ServletContext.class; +Class? jspContext = null; +try { +jspContext = Class.forName(javax.servlet.jsp.JspContext); +} catch (ClassNotFoundException e) { +// Ignore - JSP API is not present. +} +CLASS_JSP_CONTEXT = jspContext; +} + + /** * Mapping of well-known public IDs used by the Servlet API to the matching * local resource. @@ -50,39 +72,39 @@ public class DigesterFactory { MapString, String systemIds = new HashMapString, String(); // W3C -publicIds.put(XmlIdentifiers.XSD_10_PUBLIC, idFor(XMLSchema.dtd)); -publicIds.put(XmlIdentifiers.DATATYPES_PUBLIC, idFor(datatypes.dtd)); -systemIds.put(XmlIdentifiers.XML_2001_XSD, idFor(xml.xsd)); +add(publicIds, XmlIdentifiers.XSD_10_PUBLIC, locationFor(XMLSchema.dtd)); +add(publicIds, XmlIdentifiers.DATATYPES_PUBLIC, locationFor(datatypes.dtd)); +add(systemIds, XmlIdentifiers.XML_2001_XSD, locationFor(xml.xsd)); // from J2EE 1.2 -publicIds.put(XmlIdentifiers.WEB_22_PUBLIC, idFor(web-app_2_2.dtd)); -publicIds.put(XmlIdentifiers.TLD_11_PUBLIC, idFor(web-jsptaglibrary_1_1.dtd)); +add(publicIds, XmlIdentifiers.WEB_22_PUBLIC, locationFor(web-app_2_2.dtd)); +add(publicIds, XmlIdentifiers.TLD_11_PUBLIC, locationFor(web-jsptaglibrary_1_1.dtd)); // from J2EE 1.3 -publicIds.put(XmlIdentifiers.WEB_23_PUBLIC, idFor(web-app_2_3.dtd)); -publicIds.put(XmlIdentifiers.TLD_12_PUBLIC, idFor(web-jsptaglibrary_1_2.dtd)); +add(publicIds, XmlIdentifiers.WEB_23_PUBLIC, locationFor(web-app_2_3.dtd)); +add(publicIds, XmlIdentifiers.TLD_12_PUBLIC, locationFor(web-jsptaglibrary_1_2.dtd)); // from J2EE 1.4 -systemIds.put( http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd;, -idFor(j2ee_web_services_1_1.xsd)); -systemIds.put( http://www.ibm.com/webservices/xsd/j2ee_web_services_client_1_1.xsd;, -
Re: svn commit: r1577328 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/util/descriptor/DigesterFactory.java java/org/apache/tomcat/util/descriptor/LocalStrings.properties webapps/docs/changelo
On 13/03/2014 22:43, Konstantin Kolinko wrote: 1. addSelf() is odd, does not match with TC8. Bad merge? Yes, it was a bad merge. I'll get that fixed. 2. Both add() and addSelf() should display a warning. Maybe move log.warn() into locationFor(..) method. Good idea. Will do. 3. What is the point of putting null values into the maps. There isn't a point. I'll get that fixed too. 4. Message: digesterFactory.missingSchema=The XML schema [{0}] could not be found. This is likely to break XML validation if enabled. It is ambiguous to what if enabled refers to (what is the subject for that verb). I'll improve the wording. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577463 - in /tomcat/trunk/java/org/apache/tomcat/util/descriptor: DigesterFactory.java LocalStrings.properties
Author: markt Date: Fri Mar 14 09:37:26 2014 New Revision: 1577463 URL: http://svn.apache.org/r1577463 Log: Review by kkolinko Avoid adding nulls to the map Log a warning for problems in addSelf() as well as add() Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java?rev=1577463r1=1577462r2=1577463view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java Fri Mar 14 09:37:26 2014 @@ -125,15 +125,15 @@ public class DigesterFactory { } private static void addSelf(MapString, String ids, String id) { -String systemId = locationFor(id); -ids.put(id, systemId); -ids.put(systemId, systemId); +String location = locationFor(id); +if (location != null) { +ids.put(id, location); +ids.put(location, location); +} } private static void add(MapString,String ids, String id, String location) { -if (location == null) { -log.warn(sm.getString(digesterFactory.missingSchema, id)); -} else { +if (location != null) { ids.put(id, location); } } @@ -144,6 +144,7 @@ public class DigesterFactory { location = CLASS_JSP_CONTEXT.getResource(resources/ + name); } if (location == null) { +log.warn(sm.getString(digesterFactory.missingSchema, name)); return null; } return location.toExternalForm(); Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties?rev=1577463r1=1577462r2=1577463view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties Fri Mar 14 09:37:26 2014 @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -digesterFactory.missingSchema=The XML schema [{0}] could not be found. This is likely to break XML validation if enabled. +digesterFactory.missingSchema=The XML schema [{0}] could not be found. This is very likely to break XML validation if XML validation is enabled. localResolver.unresolvedEntity=Could not resolve XML resource [{0}] with public ID [{1}], system ID [{2}] and base URI [{3}] to a known, local entity. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577464 - /tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java
Author: markt Date: Fri Mar 14 09:38:14 2014 New Revision: 1577464 URL: http://svn.apache.org/r1577464 Log: Fix bad merge Review by kkolinko Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java?rev=1577464r1=1577463r2=1577464view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java Fri Mar 14 09:38:14 2014 @@ -119,7 +119,6 @@ public class DigesterFactory { String systemId = locationFor(id); ids.put(id, systemId); ids.put(systemId, systemId); -ids.put(id, systemId); } private static void add(MapString,String ids, String id, String location) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577465 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/util/descriptor/DigesterFactory.java java/org/apache/tomcat/util/descriptor/LocalStrings.properties
Author: markt Date: Fri Mar 14 09:40:15 2014 New Revision: 1577465 URL: http://svn.apache.org/r1577465 Log: Review by kkolinko Avoid adding nulls to the map Log a warning for problems in addSelf() as well as add() Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1577463 Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java?rev=1577465r1=1577464r2=1577465view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/DigesterFactory.java Fri Mar 14 09:40:15 2014 @@ -116,15 +116,15 @@ public class DigesterFactory { } private static void addSelf(MapString, String ids, String id) { -String systemId = locationFor(id); -ids.put(id, systemId); -ids.put(systemId, systemId); +String location = locationFor(id); +if (location != null) { +ids.put(id, location); +ids.put(location, location); +} } private static void add(MapString,String ids, String id, String location) { -if (location == null) { -log.warn(sm.getString(digesterFactory.missingSchema, id)); -} else { +if (location != null) { ids.put(id, location); } } @@ -135,6 +135,7 @@ public class DigesterFactory { location = CLASS_JSP_CONTEXT.getResource(resources/ + name); } if (location == null) { +log.warn(sm.getString(digesterFactory.missingSchema, name)); return null; } return location.toExternalForm(); Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties?rev=1577465r1=1577464r2=1577465view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/descriptor/LocalStrings.properties Fri Mar 14 09:40:15 2014 @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -digesterFactory.missingSchema=The XML schema [{0}] could not be found. This is likely to break XML validation if enabled. +digesterFactory.missingSchema=The XML schema [{0}] could not be found. This is very likely to break XML validation if XML validation is enabled. localResolver.unresolvedEntity=Could not resolve XML resource [{0}] with public ID [{1}], system ID [{2}] and base URI [{3}] to a known, local entity. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in ASF Buildbot on tomcat-7-trunk
The Buildbot has detected a new failure on builder tomcat-7-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-7-trunk/builds/1802 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/tc7.0.x/trunk] 1577465 Blamelist: markt BUILD FAILED: failed compile_1 sincerely, -The Buildbot
[Bug 56236] tomcat cannot startup since version 6.0.39,7.0.52,8.0 on some machines.
https://issues.apache.org/bugzilla/show_bug.cgi?id=56236 Konstantin Kolinko knst.koli...@gmail.com changed: What|Removed |Added Resolution|FIXED |INVALID Severity|blocker |normal --- Comment #4 from Konstantin Kolinko knst.koli...@gmail.com --- The behaviour was changed in 8.0.4, 7.0.53 (and proposed for 6.0.x) to log a warning instead of failing fatally with an NullPointerException. The text of the warning will be: The XML schema [{0}] could not be found. This is very likely to break XML validation if XML validation is enabled. Note though that in my opinion any configuration that uses wrong servlet-api JAR at runtime is a broken one. Discussion: http://marc.info/?t=13905590931r=1w=2 [quote] For example, Cookie.java relies on certain configuration properties defined by Tomcat documentation to provide secure and specification-compliant behaviour. You cannot swap that implementation with random other. [/quote] -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577489 - /tomcat/trunk/webapps/docs/changelog.xml
Author: kkolinko Date: Fri Mar 14 11:41:35 2014 New Revision: 1577489 URL: http://svn.apache.org/r1577489 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56236 Add issue number Modified: tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1577489r1=1577488r2=1577489view=diff == --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Fri Mar 14 11:41:35 2014 @@ -96,6 +96,12 @@ effect. (markt) /fix fix +bug56236/bug: Enable Tomcat to work with alternative Servlet and +JSP API JARs that package the XML schemas in such as way as to require +a dependency on the JSP API before enabling validation for web.xml. +Tomcat has no such dependency. (markt) + /fix + fix bug56244/bug: Fix MBeans descriptor for WebappClassLoader MBean. (kkolinko) /fix @@ -126,12 +132,6 @@ tests for this and similar scenarios and fix the additional issues those unit tests identified. Based on a patch by Larry Isaacs. (markt) /fix - fix -Enable Tomcat to work with alternative Servlet and JSP API JARs that -package the XML schemas in such as way as to require a dependency on the -JSP API before enabling validation for web.xml. Tomcat has no such -dependency. (markt) - /fix /changelog /subsection subsection name=Coyote - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577492 - /tomcat/trunk/webapps/docs/changelog.xml
Author: kkolinko Date: Fri Mar 14 11:44:47 2014 New Revision: 1577492 URL: http://svn.apache.org/r1577492 Log: Fix trailing whitespace. Sorry for the noise. Modified: tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1577492r1=1577491r2=1577492view=diff == --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Fri Mar 14 11:44:47 2014 @@ -99,7 +99,7 @@ bug56236/bug: Enable Tomcat to work with alternative Servlet and JSP API JARs that package the XML schemas in such as way as to require a dependency on the JSP API before enabling validation for web.xml. -Tomcat has no such dependency. (markt) +Tomcat has no such dependency. (markt) /fix fix bug56244/bug: Fix MBeans descriptor for WebappClassLoader MBean. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577493 - /tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Author: kkolinko Date: Fri Mar 14 11:45:12 2014 New Revision: 1577493 URL: http://svn.apache.org/r1577493 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56236 Add issue number Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1577493r1=1577492r2=1577493view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri Mar 14 11:45:12 2014 @@ -79,6 +79,12 @@ effect. (markt) /fix fix +bug56236/bug: Enable Tomcat to work with alternative Servlet and +JSP API JARs that package the XML schemas in such as way as to require +a dependency on the JSP API before enabling validation for web.xml. +Tomcat has no such dependency. (markt) + /fix + fix bug56246/bug: Fix NullPointerException in MemoryRealm when authenticating an unknown user. (markt) /fix @@ -90,12 +96,6 @@ simply undeploy the old version of the application before deploying the new version. (markt) /fix - fix -Enable Tomcat to work with alternative Servlet and JSP API JARs that -package the XML schemas in such as way as to require a dependency on the -JSP API before enabling validation for web.xml. Tomcat has no such -dependency. (markt) - /fix /changelog /subsection subsection name=Coyote - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577495 - /tomcat/tc6.0.x/trunk/STATUS.txt
Author: kkolinko Date: Fri Mar 14 11:46:28 2014 New Revision: 1577495 URL: http://svn.apache.org/r1577495 Log: Add issue number and vote Modified: tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1577495r1=1577494r2=1577495view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Mar 14 11:46:28 2014 @@ -65,10 +65,11 @@ PATCHES PROPOSED TO BACKPORT: +1: kkolinko, markt -1: -* Fix issue with Tomcat running in environments (e.g. OSGI) with alternative +* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56236 + Fix issue with Tomcat running in environments (e.g. OSGI) with alternative Servlet and JSP API implementations that package the XML schemas differently http://people.apache.org/~markt/patches/2014-03-14-osgi-resources-tc6-v2.patch - +1: markt + +1: markt, kkolinko -1: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577501 - in /tomcat/trunk/java/org/apache/coyote/http11: InternalNio2InputBuffer.java InternalNio2OutputBuffer.java upgrade/Nio2ServletInputStream.java upgrade/Nio2ServletOutputStream.ja
Author: remm Date: Fri Mar 14 12:09:48 2014 New Revision: 1577501 URL: http://svn.apache.org/r1577501 Log: Start harmonizing exception types (todo: same thing for completion handlers). Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNio2InputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/Nio2ServletOutputStream.java Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNio2InputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNio2InputBuffer.java?rev=1577501r1=1577500r2=1577501view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/InternalNio2InputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/InternalNio2InputBuffer.java Fri Mar 14 12:09:48 2014 @@ -18,8 +18,8 @@ package org.apache.coyote.http11; import java.io.EOFException; import java.io.IOException; +import java.net.SocketTimeoutException; import java.nio.ByteBuffer; -import java.nio.channels.ClosedChannelException; import java.nio.channels.CompletionHandler; import java.nio.channels.ReadPendingException; import java.nio.charset.StandardCharsets; @@ -754,7 +754,7 @@ public class InternalNio2InputBuffer ext boolean notify = false; synchronized (completionHandler) { if (nBytes.intValue() 0) { -failed(new ClosedChannelException(), attachment); +failed(new EOFException(sm.getString(iib.eof.error)), attachment); return; } readPending = false; @@ -819,9 +819,10 @@ public class InternalNio2InputBuffer ext try { nRead = socket.getSocket().read(byteBuffer) .get(socket.getTimeout(), TimeUnit.MILLISECONDS).intValue(); -} catch (InterruptedException | ExecutionException -| TimeoutException e) { -throw new EOFException(sm.getString(iib.eof.error)); +} catch (InterruptedException | ExecutionException e) { +throw new IOException(e); +} catch (TimeoutException e) { +throw new SocketTimeoutException(); } if (nRead 0) { if (!flipped) { Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java?rev=1577501r1=1577500r2=1577501view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/InternalNio2OutputBuffer.java Fri Mar 14 12:09:48 2014 @@ -17,6 +17,7 @@ package org.apache.coyote.http11; +import java.io.EOFException; import java.io.IOException; import java.net.SocketTimeoutException; import java.nio.ByteBuffer; @@ -116,7 +117,7 @@ public class InternalNio2OutputBuffer ex boolean notify = false; synchronized (completionHandler) { if (nBytes.intValue() 0) { -failed(new IOException(sm.getString(iob.failedwrite)), attachment); +failed(new EOFException(sm.getString(iob.failedwrite)), attachment); return; } if (bufferedWrites.size() 0) { @@ -163,7 +164,7 @@ public class InternalNio2OutputBuffer ex boolean notify = false; synchronized (completionHandler) { if (nBytes.longValue() 0) { -failed(new IOException(sm.getString(iob.failedwrite)), attachment); +failed(new EOFException(sm.getString(iob.failedwrite)), attachment); return; } if (bufferedWrites.size() 0 || arrayHasData(attachment)) { @@ -381,9 +382,7 @@ public class InternalNio2OutputBuffer ex flipped = true; } socket.getSocket().write(byteBuffer).get(socket.getTimeout(), TimeUnit.MILLISECONDS); -} catch (InterruptedException e) { -throw new IOException(e); -} catch (ExecutionException e) { +} catch (InterruptedException | ExecutionException e) { throw new IOException(e); } catch (TimeoutException e) { throw new SocketTimeoutException(); Modified:
buildbot success in ASF Buildbot on tomcat-7-trunk
The Buildbot has detected a restored build on builder tomcat-7-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-7-trunk/builds/1803 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/tc7.0.x/trunk] 1577493 Blamelist: kkolinko Build succeeded! sincerely, -The Buildbot
buildbot failure in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/5594 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1577463 Blamelist: markt BUILD FAILED: failed compile_1 sincerely, -The Buildbot
svn commit: r1577544 - /tomcat/trunk/test/org/apache/jasper/compiler/TestELParser.java
Author: markt Date: Fri Mar 14 14:14:29 2014 New Revision: 1577544 URL: http://svn.apache.org/r1577544 Log: Add a couple more tests based on a report on the users list (There tests pass, the problem looks to be elsewhere) Modified: tomcat/trunk/test/org/apache/jasper/compiler/TestELParser.java Modified: tomcat/trunk/test/org/apache/jasper/compiler/TestELParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/compiler/TestELParser.java?rev=1577544r1=1577543r2=1577544view=diff == --- tomcat/trunk/test/org/apache/jasper/compiler/TestELParser.java (original) +++ tomcat/trunk/test/org/apache/jasper/compiler/TestELParser.java Fri Mar 14 14:14:29 2014 @@ -151,6 +151,25 @@ public class TestELParser { doTestParser(${my:link(!empty registration ? registration : '/test/registration')}); } + +@Test +public void testQuotes01() throws JasperException { +doTestParser('); +} + + +@Test +public void testQuotes02() throws JasperException { +doTestParser('${foo}'); +} + + +@Test +public void testQuotes03() throws JasperException { +doTestParser('${'foo'}'); +} + + private void doTestParser(String input) throws JasperException { Nodes nodes = ELParser.parse(input, false); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577546 - /tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
Author: remm Date: Fri Mar 14 14:24:09 2014 New Revision: 1577546 URL: http://svn.apache.org/r1577546 Log: Experiment some more with this test and NIO2 (sorry for the noise). Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java?rev=1577546r1=1577545r2=1577546view=diff == --- tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java (original) +++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java Fri Mar 14 14:24:09 2014 @@ -50,11 +50,11 @@ public class TestWebSocketFrameClientSSL // the websockets writes, which deadlock until timedout. // Can be reproduced in NIO by adding a Thread.sleep in // writes. Reenable later when investigated and fixed. -if (getTomcatInstance().getConnector().getProtocol().equals( +/*if (getTomcatInstance().getConnector().getProtocol().equals( org.apache.coyote.http11.Http11Nio2Protocol)) { return; } - +*/ Tomcat tomcat = getTomcatInstance(); // Must have a real docBase - just use temp Context ctx = @@ -90,7 +90,7 @@ public class TestWebSocketFrameClientSSL // Ignore the latch result as the message count test below will tell us // if the right number of messages arrived -handler.getLatch().await(TesterFirehoseServer.WAIT_TIME_MILLIS, +handler.getLatch().await(TesterFirehoseServer.WAIT_TIME_MILLIS * 4, TimeUnit.MILLISECONDS); QueueString messages = handler.getMessages(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56239] NullPointerException when finishing response under the Linux traffic control
https://issues.apache.org/bugzilla/show_bug.cgi?id=56239 Mark Thomas ma...@apache.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577557 - /tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java
Author: kkolinko Date: Fri Mar 14 14:54:13 2014 New Revision: 1577557 URL: http://svn.apache.org/r1577557 Log: Better reporting for skipped tests. With org.junit.Assume the tests are clearly reported as 'skipped' in JUnit test run summary. Modified: tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java Modified: tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java?rev=1577557r1=1577556r2=1577557view=diff == --- tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java (original) +++ tomcat/trunk/test/org/apache/catalina/comet/TestCometProcessor.java Fri Mar 14 14:54:13 2014 @@ -33,6 +33,7 @@ import static org.junit.Assert.assertTru import static org.junit.Assert.fail; import org.junit.Assert; +import org.junit.Assume; import org.junit.Test; import org.apache.catalina.Context; @@ -50,11 +51,9 @@ public class TestCometProcessor extends @Test public void testAsyncClose() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -119,11 +118,9 @@ public class TestCometProcessor extends @Test public void testSyncClose() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -192,11 +189,9 @@ public class TestCometProcessor extends @Test public void testConnectionClose() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -267,10 +262,9 @@ public class TestCometProcessor extends } private void doSimpleCometTest(String initParam) throws Exception { -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -362,11 +356,9 @@ public class TestCometProcessor extends */ @Test public void testCometConnectorStop() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance SimpleCometServlet servlet = new SimpleCometServlet(); @@ -461,11 +453,7 @@ public class TestCometProcessor extends private boolean isCometSupported() { String protocol = getTomcatInstance().getConnector().getProtocolHandlerClassName(); -if (protocol.indexOf(Nio) == -1 protocol.indexOf(Apr) == -1) { -return false; -} else { -return true; -} +return (protocol.contains(Nio) || protocol.contains(Apr)); } private static class SimpleCometServlet extends HttpServlet - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577561 - /tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java
Author: remm Date: Fri Mar 14 15:02:18 2014 New Revision: 1577561 URL: http://svn.apache.org/r1577561 Log: Improve the FutureWrite logic so that writing starts when creating it, and then will recurse on get until the content is actually written. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java?rev=1577561r1=1577560r2=1577561view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Fri Mar 14 15:02:18 2014 @@ -581,6 +581,7 @@ public class SecureNio2Channel extends N t = new IOException(Channel is in closing state.); return; } +wrap(); } @Override public boolean cancel(boolean mayInterruptIfRunning) { @@ -596,12 +597,12 @@ public class SecureNio2Channel extends N } @Override public Integer get() throws InterruptedException, ExecutionException { -wrap(); if (t != null) { throw new ExecutionException(t); } integer.get(); if (written == 0) { +wrap(); return get(); } else { return Integer.valueOf(written); @@ -611,12 +612,12 @@ public class SecureNio2Channel extends N public Integer get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { -wrap(); if (t != null) { throw new ExecutionException(t); } integer.get(timeout, unit); if (written == 0) { +wrap(); return get(timeout, unit); } else { return Integer.valueOf(written); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577562 - /tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
Author: kkolinko Date: Fri Mar 14 15:02:25 2014 New Revision: 1577562 URL: http://svn.apache.org/r1577562 Log: Better reporting for skipped tests. With org.junit.Assume the tests are clearly reported as 'skipped' in JUnit test run summary. Modified: tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java Modified: tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java?rev=1577562r1=1577561r2=1577562view=diff == --- tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java (original) +++ tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java Fri Mar 14 15:02:25 2014 @@ -41,6 +41,7 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpServletResponse; import org.junit.Assert; +import org.junit.Assume; import org.junit.Test; import org.apache.catalina.core.StandardContext; @@ -91,11 +92,10 @@ public class TestNonBlockingAPI extends public void testNonBlockingReadIgnoreIsReady() throws Exception { // TODO Investigate options to get this test to pass with the HTTP BIO // connector. -if (getTomcatInstance().getConnector().getProtocol().equals( -org.apache.coyote.http11.Http11Protocol)) { -throw new IOException( -Forced failure as this test requires true non-blocking IO); -} +Assume.assumeFalse( +Skipping as this test requires true non-blocking IO, +getTomcatInstance().getConnector().getProtocol() +.equals(org.apache.coyote.http11.Http11Protocol)); doTestNonBlockingRead(true); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56256] Multiple cookies and parallel deployment
https://issues.apache.org/bugzilla/show_bug.cgi?id=56256 Mark Thomas ma...@apache.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Mark Thomas ma...@apache.org --- The call to isRequestedSessionIdValid() checks all versions of the app for a match. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577565 - in /tomcat/trunk/test/org/apache/tomcat/util/net: TestClientCert.java TestCustomSsl.java TestSsl.java
Author: kkolinko Date: Fri Mar 14 15:17:27 2014 New Revision: 1577565 URL: http://svn.apache.org/r1577565 Log: Better reporting for skipped tests. With org.junit.Assume the tests are clearly reported as 'skipped' in JUnit test run summary. Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java?rev=1577565r1=1577564r2=1577565view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java Fri Mar 14 15:17:27 2014 @@ -20,6 +20,7 @@ import java.util.Arrays; import static org.junit.Assert.assertEquals; +import org.junit.Assume; import org.junit.Test; import org.apache.catalina.startup.Tomcat; @@ -35,9 +36,8 @@ public class TestClientCert extends Tomc @Test public void testClientCertGet() throws Exception { -if (!TesterSupport.isRenegotiationSupported(getTomcatInstance())) { -return; -} +Assume.assumeTrue(SSL renegotiation have to be supported, +TesterSupport.isRenegotiationSupported(getTomcatInstance())); // Unprotected resource ByteChunk res = @@ -72,9 +72,8 @@ public class TestClientCert extends Tomc private void doTestClientCertPost(int bodySize, boolean expectProtectedFail) throws Exception { -if (!TesterSupport.isRenegotiationSupported(getTomcatInstance())) { -return; -} +Assume.assumeTrue(SSL renegotiation have to be supported, +TesterSupport.isRenegotiationSupported(getTomcatInstance())); byte[] body = new byte[bodySize]; Arrays.fill(body, TesterSupport.DATA); Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java?rev=1577565r1=1577564r2=1577565view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java Fri Mar 14 15:17:27 2014 @@ -25,6 +25,7 @@ import static org.junit.Assert.assertEqu import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import org.junit.Assume; import org.junit.Test; import org.apache.catalina.Context; @@ -52,10 +53,9 @@ public class TestCustomSsl extends Tomca Tomcat tomcat = getTomcatInstance(); Connector connector = tomcat.getConnector(); -if (connector.getProtocolHandlerClassName().contains(Apr)) { -// This test is only for JSSE based SSL connectors -return; -} + +Assume.assumeFalse(This test is only for JSSE based SSL connectors, +connector.getProtocolHandlerClassName().contains(Apr)); connector.setProperty(sslImplementationName, org.apache.tomcat.util.net.jsse.TesterBug50640SslImpl); @@ -105,9 +105,8 @@ public class TestCustomSsl extends Tomca Tomcat tomcat = getTomcatInstance(); -if (!TesterSupport.isRenegotiationSupported(getTomcatInstance())) { -return; -} +Assume.assumeTrue(SSL renegotiation have to be supported, +TesterSupport.isRenegotiationSupported(getTomcatInstance())); TesterSupport.configureClientCertContext(tomcat); Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java?rev=1577565r1=1577564r2=1577565view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java Fri Mar 14 15:17:27 2014 @@ -34,6 +34,7 @@ import static org.junit.Assert.assertTru import static org.junit.Assert.fail; import org.junit.Assert; +import org.junit.Assume; import org.junit.Test; import org.apache.catalina.Context; @@ -165,9 +166,8 @@ public class TestSsl extends TomcatBaseT public void testRenegotiateWorks() throws Exception { Tomcat tomcat = getTomcatInstance(); -if (!TesterSupport.isRenegotiationSupported(tomcat)) { -return; -} +Assume.assumeTrue(SSL renegotiation have to be supported, +TesterSupport.isRenegotiationSupported(getTomcatInstance())); File appDir = new File(getBuildDirectory(), webapps/examples); // app dir is relative to server
buildbot success in ASF Buildbot on tomcat-trunk
The Buildbot has detected a restored build on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/5595 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1577501 Blamelist: kkolinko,remm Build succeeded! sincerely, -The Buildbot
svn commit: r1577569 - /tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java
Author: remm Date: Fri Mar 14 15:21:26 2014 New Revision: 1577569 URL: http://svn.apache.org/r1577569 Log: Add missing code to retry if no bytes are written (handshake) like for blocking IO, and use EOFException instead. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java?rev=1577569r1=1577568r2=1577569view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Fri Mar 14 15:21:26 2014 @@ -20,7 +20,6 @@ import java.io.EOFException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousSocketChannel; -import java.nio.channels.ClosedChannelException; import java.nio.channels.CompletionHandler; import java.nio.channels.WritePendingException; import java.util.concurrent.ExecutionException; @@ -665,7 +664,7 @@ public class SecureNio2Channel extends N @Override public void completed(Integer nBytes, A attach) { if (nBytes.intValue() 0) { -handler.failed(new ClosedChannelException(), attach); +handler.failed(new EOFException(), attach); return; } try { @@ -734,8 +733,8 @@ public class SecureNio2Channel extends N } @Override -public A void write(final ByteBuffer src, long timeout, TimeUnit unit, final A attachment, -final CompletionHandlerInteger, ? super A handler) { +public A void write(final ByteBuffer src, final long timeout, final TimeUnit unit, +final A attachment, final CompletionHandlerInteger, ? super A handler) { //are we closing or closed? if (closing || closed) { handler.failed(new IOException(Channel is in closing state.), attachment); @@ -746,7 +745,7 @@ public class SecureNio2Channel extends N // Prepare the output buffer this.netOutBuffer.clear(); // Wrap the source data into the internal buffer -SSLEngineResult result = sslEngine.wrap(bufHandler.getWriteBuffer(), netOutBuffer); +SSLEngineResult result = sslEngine.wrap(src, netOutBuffer); final int written = result.bytesConsumed(); netOutBuffer.flip(); if (result.getStatus() == Status.OK) { @@ -762,7 +761,9 @@ public class SecureNio2Channel extends N @Override public void completed(Integer nBytes, A attach) { if (nBytes.intValue() 0) { -handler.failed(new ClosedChannelException(), attach); +handler.failed(new EOFException(), attach); +} else if (written == 0) { +write(src, timeout, unit, attachment, handler); } else { // Call the handler completed method with the // consumed bytes number @@ -811,7 +812,7 @@ public class SecureNio2Channel extends N @Override public void completed(Integer nBytes, GatherStateA attachment) { if (nBytes.intValue() 0) { -state.handler.failed(new ClosedChannelException(), state.attachment); +state.handler.failed(new EOFException(), state.attachment); } else { if (state.pos == state.offset + state.length) { state.handler.completed(Long.valueOf(state.writeCount), state.attachment); @@ -822,7 +823,8 @@ public class SecureNio2Channel extends N netOutBuffer.clear(); // Wrap the source data into the internal buffer SSLEngineResult result = sslEngine.wrap(state.srcs[state.offset], netOutBuffer); -state.writeCount += result.bytesConsumed(); +int written = result.bytesConsumed(); +state.writeCount += written; netOutBuffer.flip(); if (result.getStatus() == Status.OK) { if (result.getHandshakeStatus() == HandshakeStatus.NEED_TASK) @@ -831,7 +833,9 @@ public class SecureNio2Channel extends N failed(new IOException(Unable to wrap data, invalid engine state: +result.getStatus()), attachment); return; } -state.offset++; +if (written 0) { +state.offset++; +} // Write data to the channel sc.write(netOutBuffer, state.timeout, state.unit, state, this); } catch (Throwable exp) {
svn commit: r1577581 - in /tomcat/trunk/test/org/apache/tomcat/util/net: TestClientCert.java TestCustomSsl.java TestSsl.java
Author: kkolinko Date: Fri Mar 14 15:43:47 2014 New Revision: 1577581 URL: http://svn.apache.org/r1577581 Log: Correct typo in the message Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java?rev=1577581r1=1577580r2=1577581view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java Fri Mar 14 15:43:47 2014 @@ -36,7 +36,7 @@ public class TestClientCert extends Tomc @Test public void testClientCertGet() throws Exception { -Assume.assumeTrue(SSL renegotiation have to be supported, +Assume.assumeTrue(SSL renegotiation has to be supported for this test, TesterSupport.isRenegotiationSupported(getTomcatInstance())); // Unprotected resource @@ -72,7 +72,7 @@ public class TestClientCert extends Tomc private void doTestClientCertPost(int bodySize, boolean expectProtectedFail) throws Exception { -Assume.assumeTrue(SSL renegotiation have to be supported, +Assume.assumeTrue(SSL renegotiation has to be supported for this test, TesterSupport.isRenegotiationSupported(getTomcatInstance())); byte[] body = new byte[bodySize]; Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java?rev=1577581r1=1577580r2=1577581view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java Fri Mar 14 15:43:47 2014 @@ -105,7 +105,7 @@ public class TestCustomSsl extends Tomca Tomcat tomcat = getTomcatInstance(); -Assume.assumeTrue(SSL renegotiation have to be supported, +Assume.assumeTrue(SSL renegotiation has to be supported for this test, TesterSupport.isRenegotiationSupported(getTomcatInstance())); TesterSupport.configureClientCertContext(tomcat); Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java?rev=1577581r1=1577580r2=1577581view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java Fri Mar 14 15:43:47 2014 @@ -166,7 +166,7 @@ public class TestSsl extends TomcatBaseT public void testRenegotiateWorks() throws Exception { Tomcat tomcat = getTomcatInstance(); -Assume.assumeTrue(SSL renegotiation have to be supported, +Assume.assumeTrue(SSL renegotiation has to be supported for this test, TesterSupport.isRenegotiationSupported(getTomcatInstance())); File appDir = new File(getBuildDirectory(), webapps/examples); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577582 - in /tomcat/tc7.0.x/trunk: ./ test/org/apache/catalina/comet/TestCometProcessor.java test/org/apache/tomcat/util/net/TestClientCert.java test/org/apache/tomcat/util/net/TestCusto
Author: kkolinko Date: Fri Mar 14 15:46:45 2014 New Revision: 1577582 URL: http://svn.apache.org/r1577582 Log: Merged revisions r1577557 r1577565 r1577581 from tomcat/trunk: Better reporting for skipped tests. With org.junit.Assume the tests are clearly reported as 'skipped' in JUnit test run summary. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/test/org/apache/catalina/comet/TestCometProcessor.java tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestClientCert.java tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestSsl.java Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1577557,1577565,1577581 Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/comet/TestCometProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/comet/TestCometProcessor.java?rev=1577582r1=1577581r2=1577582view=diff == --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/comet/TestCometProcessor.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/comet/TestCometProcessor.java Fri Mar 14 15:46:45 2014 @@ -33,6 +33,7 @@ import static org.junit.Assert.assertTru import static org.junit.Assert.fail; import org.junit.Assert; +import org.junit.Assume; import org.junit.Test; import org.apache.catalina.Context; @@ -50,11 +51,9 @@ public class TestCometProcessor extends @Test public void testAsyncClose() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -119,11 +118,9 @@ public class TestCometProcessor extends @Test public void testSyncClose() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -192,11 +189,9 @@ public class TestCometProcessor extends @Test public void testConnectionClose() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -267,10 +262,9 @@ public class TestCometProcessor extends } private void doSimpleCometTest(String initParam) throws Exception { -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance Tomcat tomcat = getTomcatInstance(); @@ -362,11 +356,9 @@ public class TestCometProcessor extends */ @Test public void testCometConnectorStop() throws Exception { - -if (!isCometSupported()) { -log.info(This test is skipped, because this connector does not support Comet.); -return; -} +Assume.assumeTrue( +This test is skipped, because this connector does not support Comet., +isCometSupported()); // Setup Tomcat instance SimpleCometServlet servlet = new SimpleCometServlet(); @@ -461,11 +453,7 @@ public class TestCometProcessor extends private boolean isCometSupported() { String protocol = getTomcatInstance().getConnector().getProtocolHandlerClassName(); -if (protocol.indexOf(Nio) == -1 protocol.indexOf(Apr) == -1) { -return false; -} else { -return true; -} +return (protocol.contains(Nio) || protocol.contains(Apr)); } private static class SimpleCometServlet extends HttpServlet Modified: tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestClientCert.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/net/TestClientCert.java?rev=1577582r1=1577581r2=1577582view=diff
svn commit: r1577598 - /tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java
Author: remm Date: Fri Mar 14 16:11:40 2014 New Revision: 1577598 URL: http://svn.apache.org/r1577598 Log: Make sure the byte buffer passed as a parameter is used in all read/write operations (come code is from the NIO1 which forces using the main read/write buffers). Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java?rev=1577598r1=1577597r2=1577598view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Fri Mar 14 16:11:40 2014 @@ -452,6 +452,10 @@ public class SecureNio2Channel extends N } private class FutureRead implements FutureInteger { +private ByteBuffer dst; +public FutureRead(ByteBuffer dst) { +this.dst = dst; +} @Override public boolean cancel(boolean mayInterruptIfRunning) { return false; @@ -490,7 +494,7 @@ public class SecureNio2Channel extends N netInBuffer.flip(); //unwrap the data try { -unwrap = sslEngine.unwrap(netInBuffer, bufHandler.getReadBuffer()); +unwrap = sslEngine.unwrap(netInBuffer, dst); } catch (SSLException e) { throw new ExecutionException(e); } @@ -522,7 +526,8 @@ public class SecureNio2Channel extends N private class FutureNetRead extends FutureRead { private FutureInteger integer; -protected FutureNetRead() { +protected FutureNetRead(ByteBuffer dst) { +super(dst); this.integer = sc.read(netInBuffer); } @Override @@ -564,22 +569,24 @@ public class SecureNio2Channel extends N if (!handshakeComplete) throw new IllegalStateException(Handshake incomplete, you must complete handshake before reading data.); if (netInBuffer.position() 0) { -return new FutureRead(); +return new FutureRead(dst); } else { -return new FutureNetRead(); +return new FutureNetRead(dst); } } private class FutureWrite implements FutureInteger { +private ByteBuffer src; private FutureInteger integer = null; private int written = 0; private Throwable t = null; -protected FutureWrite() { +protected FutureWrite(ByteBuffer src) { //are we closing or closed? if (closing || closed) { t = new IOException(Channel is in closing state.); return; } +this.src = src; wrap(); } @Override @@ -626,7 +633,7 @@ public class SecureNio2Channel extends N //The data buffer should be empty, we can reuse the entire buffer. netOutBuffer.clear(); try { -SSLEngineResult result = sslEngine.wrap(bufHandler.getWriteBuffer(), netOutBuffer); +SSLEngineResult result = sslEngine.wrap(src, netOutBuffer); written = result.bytesConsumed(); netOutBuffer.flip(); if (result.getStatus() == Status.OK) { @@ -650,7 +657,7 @@ public class SecureNio2Channel extends N */ @Override public FutureInteger write(ByteBuffer src) { -return new FutureWrite(); +return new FutureWrite(src); } private class ReadCompletionHandlerA implements CompletionHandlerInteger, A { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56190] Connection keep-alive not working with asynchronous servlet
https://issues.apache.org/bugzilla/show_bug.cgi?id=56190 --- Comment #11 from Francois-Xavier Bonnet f...@apache.org --- Thanks. I just tested. Everything works as expected now. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Created] (MTOMCAT-264) uriEncoding parameter not applied to HTTPS connector
Andreas Christoforides created MTOMCAT-264: -- Summary: uriEncoding parameter not applied to HTTPS connector Key: MTOMCAT-264 URL: https://issues.apache.org/jira/browse/MTOMCAT-264 Project: Apache Tomcat Maven Plugin Issue Type: Bug Components: tomcat6, tomcat7 Affects Versions: 2.2, 2.1 Reporter: Andreas Christoforides Assignee: Olivier Lamy (*$^¨%`£) The uriEncoding parameter does not work when using HTTPS. Looking at the code (http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java?revision=1558943view=markup), the parameter is applied to the non-HTTP connector and the AJP connector but not applied to the HTTPS connector. -- This message was sent by Atlassian JIRA (v6.2#6252) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/5596 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1577562 Blamelist: kkolinko,markt,remm BUILD FAILED: failed compile_1 sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Updated] (MTOMCAT-264) uriEncoding parameter not working with HTTPS and run goal
[ https://issues.apache.org/jira/browse/MTOMCAT-264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andreas Christoforides updated MTOMCAT-264: --- Description: The uriEncoding parameter does not work when using HTTPS with the run goal. Looking at the code (http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java?revision=1558943view=markup), the parameter is applied to the non-HTTP connector and the AJP connector but not applied to the HTTPS connector. was: The uriEncoding parameter does not work when using HTTPS. Looking at the code (http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java?revision=1558943view=markup), the parameter is applied to the non-HTTP connector and the AJP connector but not applied to the HTTPS connector. Summary: uriEncoding parameter not working with HTTPS and run goal (was: uriEncoding parameter not applied to HTTPS connector) uriEncoding parameter not working with HTTPS and run goal - Key: MTOMCAT-264 URL: https://issues.apache.org/jira/browse/MTOMCAT-264 Project: Apache Tomcat Maven Plugin Issue Type: Bug Components: tomcat6, tomcat7 Affects Versions: 2.1, 2.2 Reporter: Andreas Christoforides Assignee: Olivier Lamy (*$^¨%`£) The uriEncoding parameter does not work when using HTTPS with the run goal. Looking at the code (http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java?revision=1558943view=markup), the parameter is applied to the non-HTTP connector and the AJP connector but not applied to the HTTPS connector. -- This message was sent by Atlassian JIRA (v6.2#6252) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[jira] [Commented] (MTOMCAT-237) Maven variables not evaluated/resolved inside systemProperties
[ https://issues.apache.org/jira/browse/MTOMCAT-237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13935400#comment-13935400 ] Andreas Christoforides commented on MTOMCAT-237: I was mistaken in my case. We have properties that were added into the Maven model during the install lifecycle. The plugin does invoke the install lifecycle because it runs the process-classes phase.However, the actual run goal runs in its own lifecycle and therefore those properties are never added. The only way I found around that was to use the properties-maven-plugin and add the properties I needed as system properties thus allowing the Tomcat maven plugin to resolve them, Maven variables not evaluated/resolved inside systemProperties -- Key: MTOMCAT-237 URL: https://issues.apache.org/jira/browse/MTOMCAT-237 Project: Apache Tomcat Maven Plugin Issue Type: Bug Components: tomcat6, tomcat7 Affects Versions: 2.1 Reporter: Andreas Christoforides Assignee: Olivier Lamy (*$^¨%`£) Fix For: moreinfo Maven properties/variables are not evaluated/resolved when used inside systemProperties. Instead the string is used as is. -- This message was sent by Atlassian JIRA (v6.2#6252) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577665 - /tomcat/trunk/test/org/apache/jasper/TestJspC.java
Author: kkolinko Date: Fri Mar 14 19:16:54 2014 New Revision: 1577665 URL: http://svn.apache.org/r1577665 Log: 1. Do not hardcode the path to output directory. It can be controlled via build.properties. 2. Cleanup after the test. Modified: tomcat/trunk/test/org/apache/jasper/TestJspC.java Modified: tomcat/trunk/test/org/apache/jasper/TestJspC.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/TestJspC.java?rev=1577665r1=1577664r2=1577665view=diff == --- tomcat/trunk/test/org/apache/jasper/TestJspC.java (original) +++ tomcat/trunk/test/org/apache/jasper/TestJspC.java Fri Mar 14 19:16:54 2014 @@ -24,6 +24,7 @@ import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; +import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -35,8 +36,15 @@ public class TestJspC { @Before public void init() { +File tempDir = new File(System.getProperty(tomcat.test.temp, +output/tmp)); +outputDir = new File(tempDir, jspc); jspc = new JspC(); -outputDir = new File(output/jspc); +} + +@After +public void cleanup() throws IOException { +remove(outputDir); } @Test - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56265] New: Unexpected escaping in the values of dynamic tag attributes containing EL expressions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56265 Bug ID: 56265 Summary: Unexpected escaping in the values of dynamic tag attributes containing EL expressions Product: Tomcat 7 Version: 7.0.52 Hardware: PC Status: NEW Severity: normal Priority: P2 Component: Jasper Assignee: dev@tomcat.apache.org Reporter: knst.koli...@gmail.com The following was reported on the users list, double xmlEscape in dynamic attributes in 7.0.52 http://marc.info/?t=13947970987r=1w=2 [quote] Hi, I have several custom jspx tags with dynamic attributes that worked well up to Tomcat 7.0.47, but they do not work properly on Tomcat 7.0.52. Same problems occur also when using Spring form tags (I suspect that other libraries would have same problem, but I didn't test them). sample (data-test[2] is dynamic attribute, onclick is static): c:set var=world value='World'/c:set sf:form onclick=window.alert('Hello ${world}!') data-test=window.alert('Hello ${world}!') data-test2=window.alert('Hello World!') tomcat 7.0.47 output: form onclick=window.alert(#39;Hello #39;World#39;!#39;) data-test=window.alert(#39;Hello #39;World#39;!#39;) data-test2=window.alert(#39;Hello World!#39;) tomcat 7.0.52 output: form onclick=window.alert(#39;Hello #39;World#39;!#39;) data-test=window.alert(amp;#039;Hello #39;World#39;!amp;#039;) data-test2=window.alert(#39;Hello World!#39;) If there is EL used in dynamic attribute (data-test), non-EL part of that attribute is escaped twice, EL part is escaped only once. Tomcat 7.0.47 would escape everything just once. Everything works as before if static attribute is used (onclick) or there is no EL in dynamic attribute (data-test2). [/quote] -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56265] Unexpected escaping in the values of dynamic tag attributes containing EL expressions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56265 --- Comment #1 from Konstantin Kolinko knst.koli...@gmail.com --- Created attachment 31388 -- https://issues.apache.org/bugzilla/attachment.cgi?id=31388action=edit test.war A simple web application that reproduces this issue. Steps to reproduce on 7.0.52: 1. Deploy 2. Access http://localhost:8080/test/ 3. Actual: --- [data-test]: [window.alert(#039;Hello 'World'!#039;)] [data-test2]: [window.alert('Hello World!')] --- Expected: The following rows, in any order: --- [data-test]: [window.alert('Hello 'World'!')] [data-test2]: [window.alert('Hello World!')] --- Tomcat 7.0.42 does not have this issue, produces the Expected output. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56265] Unexpected escaping in the values of dynamic tag attributes containing EL expressions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56265 Konstantin Kolinko knst.koli...@gmail.com changed: What|Removed |Added OS||All --- Comment #2 from Konstantin Kolinko knst.koli...@gmail.com --- In 7.0.52 the text of index_jspx.java contains: [[[ private boolean _jspx_meth_my_005fmytag_005f0(javax.servlet.jsp.PageContext _jspx_page_context) throws java.lang.Throwable { javax.servlet.jsp.PageContext pageContext = _jspx_page_context; javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut(); // my:mytag org.apache.jsp.tag.webmytag_tagx _jspx_th_my_005fmytag_005f0 = (new org.apache.jsp.tag.webmytag_tagx()); _jsp_instancemanager.newInstance(_jspx_th_my_005fmytag_005f0); _jspx_th_my_005fmytag_005f0.setJspContext(_jspx_page_context); // /index.jspx(27,3) null _jspx_th_my_005fmytag_005f0.setDynamicAttribute(null, data-test2, window.alert('Hello World!')); // /index.jspx(27,3) null _jspx_th_my_005fmytag_005f0.setDynamicAttribute(null, data-test, (java.lang.Object) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(window.alert(#039;Hello ${world}!#039;), java.lang.Object.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null, false)); _jspx_th_my_005fmytag_005f0.doTag(); _jsp_instancemanager.destroyInstance(_jspx_th_my_005fmytag_005f0); return false; } ]]] So I wonder why is it window.alert(#039;Hello ${world}!#039;) , -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56266] New: Property location incorrect in build instructions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56266 Bug ID: 56266 Summary: Property location incorrect in build instructions Product: Tomcat 7 Version: 7.0.52 Hardware: PC Status: NEW Severity: minor Priority: P2 Component: Documentation Assignee: dev@tomcat.apache.org Reporter: ljty...@gmail.com BUILDING.txt states that the property 'tomcat.output' is in the build.properties file. It isn't; tomcat.output is in build.xml -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56266] Property location incorrect in build instructions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56266 Konstantin Kolinko knst.koli...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID OS||All --- Comment #1 from Konstantin Kolinko knst.koli...@gmail.com --- Of course it is not there, you have to create the build.properties file by yourselves. The instruction is correct. [quote] (3.2) Building 1. The build is controlled by creating a ${tomcat.source}/build.properties file. [/quote] For reference: http://ant.apache.org/manual/Tasks/property.html -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1577714 - /tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java
Author: kkolinko Date: Fri Mar 14 21:15:36 2014 New Revision: 1577714 URL: http://svn.apache.org/r1577714 Log: Properly delete %TEMP%/ser{number}.tmp temporary file that was used to test serialization of a Principal. On Windows the test could not delete the file, because FileInputStream has not been properly closed after reading. Thus rerunning the testsuite left a bunch of such files in the %TEMP% directory. The file is now created in output/tmp instead of the system temporary directory. Modified: tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java Modified: tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java?rev=1577714r1=1577713r2=1577714view=diff == --- tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java (original) +++ tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java Fri Mar 14 21:15:36 2014 @@ -44,14 +44,10 @@ public class TestSerializablePrincipal @SuppressWarnings(null) @Test public void testWriteReadPrincipal() { -// Get a temporary file to use for the serialization test -File file = null; -try { -file = File.createTempFile(ser, null); -file.deleteOnExit(); -} catch (IOException e) { -e.printStackTrace(); -fail(ioe creating temporary file); + +File tempDir = new File(System.getProperty(tomcat.test.temp, output/tmp)); +if (!tempDir.mkdirs() !tempDir.isDirectory()) { +fail(Unable to create temporary directory for test); } // Create the Principal to serialize @@ -62,36 +58,68 @@ public class TestSerializablePrincipal GenericPrincipal gpOriginal = new GenericPrincipal(usr, pwd, roles, tpOriginal); -// Do the serialization +// Get a temporary file to use for the serialization test +File file = null; try { -FileOutputStream fos = new FileOutputStream(file); -ObjectOutputStream oos = new ObjectOutputStream(fos); -SerializablePrincipal.writePrincipal(gpOriginal, oos); -oos.close(); -fos.close(); -} catch (FileNotFoundException e) { -e.printStackTrace(); -fail(fnfe creating object output stream); +file = File.createTempFile(ser, null, tempDir); } catch (IOException e) { e.printStackTrace(); -fail(ioe serializing principal); +fail(ioe creating temporary file); } -// De-serialize the Principal GenericPrincipal gpNew = null; try { -FileInputStream fis = new FileInputStream(file); -ObjectInputStream ois = new ObjectInputStream(fis); -gpNew = SerializablePrincipal.readPrincipal(ois); -} catch (FileNotFoundException e) { -e.printStackTrace(); -fail(fnfe reading object output stream); -} catch (IOException e) { -e.printStackTrace(); -fail(ioe de-serializing principal); -} catch (ClassNotFoundException e) { -e.printStackTrace(); -fail(cnfe de-serializing principal); +// Do the serialization +FileOutputStream fos = null; +try { +fos = new FileOutputStream(file); +ObjectOutputStream oos = new ObjectOutputStream(fos); +SerializablePrincipal.writePrincipal(gpOriginal, oos); +oos.close(); +} catch (FileNotFoundException e) { +e.printStackTrace(); +fail(fnfe creating object output stream); +} catch (IOException e) { +e.printStackTrace(); +fail(ioe serializing principal); +} finally { +if (fos != null) { +try { +fos.close(); +} catch (IOException ignored) { +// NO OP +} +} +} + +// De-serialize the Principal +FileInputStream fis = null; +try { +fis = new FileInputStream(file); +ObjectInputStream ois = new ObjectInputStream(fis); +gpNew = SerializablePrincipal.readPrincipal(ois); +} catch (FileNotFoundException e) { +e.printStackTrace(); +fail(fnfe reading object output stream); +} catch (IOException e) { +e.printStackTrace(); +fail(ioe de-serializing principal); +} catch (ClassNotFoundException e) { +e.printStackTrace(); +fail(cnfe
svn commit: r1577721 - in /tomcat/tc7.0.x/trunk: ./ test/org/apache/catalina/ha/session/TestSerializablePrincipal.java
Author: kkolinko Date: Fri Mar 14 21:21:29 2014 New Revision: 1577721 URL: http://svn.apache.org/r1577721 Log: Merged r1577714 from tomcat/trunk: Properly delete %TEMP%/ser{number}.tmp temporary file that was used to test serialization of a Principal. On Windows the test could not delete the file, because FileInputStream has not been properly closed after reading. Thus rerunning the testsuite left a bunch of such files in the %TEMP% directory. The file is now created in output/tmp instead of the system temporary directory. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1577714 Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java?rev=1577721r1=1577720r2=1577721view=diff == --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java Fri Mar 14 21:21:29 2014 @@ -44,14 +44,10 @@ public class TestSerializablePrincipal @SuppressWarnings(null) @Test public void testWriteReadPrincipal() { -// Get a temporary file to use for the serialization test -File file = null; -try { -file = File.createTempFile(ser, null); -file.deleteOnExit(); -} catch (IOException e) { -e.printStackTrace(); -fail(ioe creating temporary file); + +File tempDir = new File(System.getProperty(tomcat.test.temp, output/tmp)); +if (!tempDir.mkdirs() !tempDir.isDirectory()) { +fail(Unable to create temporary directory for test); } // Create the Principal to serialize @@ -62,36 +58,68 @@ public class TestSerializablePrincipal GenericPrincipal gpOriginal = new GenericPrincipal(usr, pwd, roles, tpOriginal); -// Do the serialization +// Get a temporary file to use for the serialization test +File file = null; try { -FileOutputStream fos = new FileOutputStream(file); -ObjectOutputStream oos = new ObjectOutputStream(fos); -SerializablePrincipal.writePrincipal(gpOriginal, oos); -oos.close(); -fos.close(); -} catch (FileNotFoundException e) { -e.printStackTrace(); -fail(fnfe creating object output stream); +file = File.createTempFile(ser, null, tempDir); } catch (IOException e) { e.printStackTrace(); -fail(ioe serializing principal); +fail(ioe creating temporary file); } -// De-serialize the Principal GenericPrincipal gpNew = null; try { -FileInputStream fis = new FileInputStream(file); -ObjectInputStream ois = new ObjectInputStream(fis); -gpNew = SerializablePrincipal.readPrincipal(ois); -} catch (FileNotFoundException e) { -e.printStackTrace(); -fail(fnfe reading object output stream); -} catch (IOException e) { -e.printStackTrace(); -fail(ioe de-serializing principal); -} catch (ClassNotFoundException e) { -e.printStackTrace(); -fail(cnfe de-serializing principal); +// Do the serialization +FileOutputStream fos = null; +try { +fos = new FileOutputStream(file); +ObjectOutputStream oos = new ObjectOutputStream(fos); +SerializablePrincipal.writePrincipal(gpOriginal, oos); +oos.close(); +} catch (FileNotFoundException e) { +e.printStackTrace(); +fail(fnfe creating object output stream); +} catch (IOException e) { +e.printStackTrace(); +fail(ioe serializing principal); +} finally { +if (fos != null) { +try { +fos.close(); +} catch (IOException ignored) { +// NO OP +} +} +} + +// De-serialize the Principal +FileInputStream fis = null; +try { +fis = new FileInputStream(file); +ObjectInputStream ois = new ObjectInputStream(fis); +gpNew = SerializablePrincipal.readPrincipal(ois); +} catch (FileNotFoundException e) { +e.printStackTrace(); +fail(fnfe reading
svn commit: r1577757 - in /tomcat/trunk/java/org/apache/tomcat/util/net: Nio2Endpoint.java SecureNio2Channel.java
Author: remm Date: Fri Mar 14 23:13:00 2014 New Revision: 1577757 URL: http://svn.apache.org/r1577757 Log: Implement the read/write pending contract in the SSL channel (not doing so would likely still trigger the exception, but would add corruption). Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1577757r1=1577756r2=1577757view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Mar 14 23:13:00 2014 @@ -479,12 +479,11 @@ public class Nio2Endpoint extends Abstra } } else { channel.setIOChannel(socket); -if ( channel instanceof SecureNio2Channel ) { +if (channel instanceof SecureNio2Channel) { SSLEngine engine = createSSLEngine(); -((SecureNio2Channel)channel).reset(engine); -} else { -channel.reset(); +((SecureNio2Channel) channel).setSSLEngine(engine); } +channel.reset(); } Nio2SocketWrapper socketWrapper = (useCaches) ? socketWrapperCache.pop() : null; if (socketWrapper == null) { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java?rev=1577757r1=1577756r2=1577757view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Fri Mar 14 23:13:00 2014 @@ -21,6 +21,7 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.CompletionHandler; +import java.nio.channels.ReadPendingException; import java.nio.channels.WritePendingException; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; @@ -49,8 +50,8 @@ public class SecureNio2Channel extends N protected boolean closed = false; protected boolean closing = false; -protected boolean readPending = false; -protected boolean writePending = false; +protected volatile boolean readPending = false; +protected volatile boolean writePending = false; private CompletionHandlerInteger, SocketWrapperNio2Channel handshakeReadCompletionHandler; private CompletionHandlerInteger, SocketWrapperNio2Channel handshakeWriteCompletionHandler; @@ -102,9 +103,8 @@ public class SecureNio2Channel extends N reset(); } -public void reset(SSLEngine engine) throws IOException { +public void setSSLEngine(SSLEngine engine) throws IOException { this.sslEngine = engine; -reset(); } @Override @@ -152,15 +152,23 @@ public class SecureNio2Channel extends N @Override public Boolean get() throws InterruptedException, ExecutionException { -int result = integer.get().intValue(); -return Boolean.valueOf(result = 0); +try { +int result = integer.get().intValue(); +return Boolean.valueOf(result = 0); +} finally { +writePending = false; +} } @Override public Boolean get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { -int result = integer.get(timeout, unit).intValue(); -return Boolean.valueOf(result = 0); +try { +int result = integer.get(timeout, unit).intValue(); +return Boolean.valueOf(result = 0); +} finally { +writePending = false; +} } } @@ -174,6 +182,11 @@ public class SecureNio2Channel extends N @Override public FutureBoolean flush() throws IOException { +if (writePending) { +throw new WritePendingException(); +} else { +writePending = true; +} return new FutureFlush(sc.write(netOutBuffer)); } @@ -470,13 +483,21 @@ public class SecureNio2Channel extends N } @Override public Integer get() throws InterruptedException, ExecutionException { -return unwrap(netInBuffer.position()); +try { +return unwrap(netInBuffer.position()); +} finally { +
[Bug 56265] Unexpected escaping in the values of dynamic tag attributes containing EL expressions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56265 --- Comment #3 from Konstantin Kolinko knst.koli...@gmail.com --- Thus far: 1. It is reproducible with the current trunk The following line numbers are from debugging the reproducer with current trunk @1577714. 2. 'setDynamicAttribute(' is written out at Generator$GenerateVisitor.generateSetters(...) at Generator.java L3098 At this point attrs[i].getValue() is already window.alert(#039;Hello ${world}!#039;) 3. The escaping happens when creating Node.JspAttribute. That is in Validator$ValidateVisitor.getJspAttribute(...) at Validator.java L1379 The code there originates from r1539173 Apparently the goal of r1539173 was to apply xml escaping to attributes in UninterpretedTag nodes, but it was applied to any tag attributes containing EL expressions. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56265] Unexpected escaping in the values of dynamic tag attributes containing EL expressions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56265 Konstantin Kolinko knst.koli...@gmail.com changed: What|Removed |Added Severity|normal |regression -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 56265] Unexpected escaping in the values of dynamic tag attributes containing EL expressions
https://issues.apache.org/bugzilla/show_bug.cgi?id=56265 --- Comment #4 from Konstantin Kolinko knst.koli...@gmail.com --- Created attachment 31390 -- https://issues.apache.org/bugzilla/attachment.cgi?id=31390action=edit 2014-03-15_56265_tc8_v1.patch Patch for this issue. Essentially it limits the effect of r1539173 to uninterpreted tags only. There is no JUnit testcase for this issue yet. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GUMP@vmgump]: Project tomcat-trunk-test-nio2 (in module tomcat-trunk) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project tomcat-trunk-test-nio2 has an issue affecting its community integration. This issue affects 1 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-trunk-test-nio2 : Tomcat 8.x, a web server implementing the Java Servlet 3.1, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio2/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on commons-daemon exists, no need to add for property commons-daemon.native.src.tgz. -DEBUG- Dependency on commons-daemon exists, no need to add for property tomcat-native.tar.gz. -DEBUG- Dependency on tomcat-trunk exists, no need to add for property tomcat-dbcp.home. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/build/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio2/gump_work/build_tomcat-trunk_tomcat-trunk-test-nio2.html Work Name: build_tomcat-trunk_tomcat-trunk-test-nio2 (Type: Build) Work ended in a state of : Failed Elapsed: 31 mins 28 secs Command Line: /usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.12-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140315-native-src.tar.gz -Dexamples.sources.skip=true -Dtomcat-dbcp.home=/srv/gump/public/workspace/tomcat-trunk/tomcat-deps -Djdt.jar=/srv/gump/packages/eclipse/plugins/org.eclipse.jdt.core_3.4.2/jdtcore.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20140315.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140315-native-src.tar.gz -Dexecute.test.nio=false -Dtest.accesslog=true -Dcommons-pool.home=/srv/gump/public/workspace/apache-co mmons/pool -Dcommons-dbcp.home=/srv/gump/public/workspace/apache-commons/dbcp -Dexecute.test.nio2=true -Dexecute.test.bio=false -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.3-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/public/workspace/hamcrest/hamcrest-java/build/hamcrest-core-20140315.jar -Dcglib.jar=/srv/gump/packages/cglib/cglib-nodep-2.2.jar test [Working Directory: /srv/gump/public/workspace/tomcat-trunk] CLASSPATH: /usr/lib/jvm/java-7-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-trunk/output/testclasses:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/servle t-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/websocket-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-storeconfig.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-tribes.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat