svn commit: r1758223 - in /tomcat/trunk/java/org/apache: catalina/connector/OutputBuffer.java tomcat/util/buf/ByteChunk.java
Author: violetagg Date: Mon Aug 29 13:40:51 2016 New Revision: 1758223 URL: http://svn.apache.org/viewvc?rev=1758223&view=rev Log: Introduce a new method ByteChunk.append(ByteBuffer) Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1758223&r1=1758222&r2=1758223&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Mon Aug 29 13:40:51 2016 @@ -18,6 +18,7 @@ package org.apache.catalina.connector; import java.io.IOException; import java.io.Writer; +import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.security.AccessController; import java.security.PrivilegedActionException; @@ -384,6 +385,20 @@ public class OutputBuffer extends Writer } +/** + * Sends the buffer data to the client output, checking the + * state of Response and calling the right interceptors. + * + * @param buf the ByteBuffer to be written to the response + * + * @throws IOException An underlying IOException occurred + */ +@Override +public void realWriteBytes(ByteBuffer buf) throws IOException { +// To be implemented +} + + public void write(byte b[], int off, int len) throws IOException { if (suspended) { Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java?rev=1758223&r1=1758222&r2=1758223&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java Mon Aug 29 13:40:51 2016 @@ -98,6 +98,15 @@ public final class ByteChunk implements */ public void realWriteBytes(byte cbuf[], int off, int len) throws IOException; + +/** + * Send the bytes ( usually the internal conversion buffer ). + * Expect 8k output if the buffer is full. + * + * @param from bytes that will be written + * @throws IOException If an I/O occurs while writing the bytes + */ +public void realWriteBytes(ByteBuffer from) throws IOException; } // @@ -357,6 +366,74 @@ public final class ByteChunk implements } +/** + * Add data to the buffer. + * + * @param from the ByteBuffer with the data + * @throws IOException Writing overflow data to the output channel failed + */ +public void append(ByteBuffer from) throws IOException { +int len = from.remaining(); + +// will grow, up to limit +makeSpace(len); + +// if we don't have limit: makeSpace can grow as it wants +if (limit < 0) { +// assert: makeSpace made enough space +from.get(buff, end, len); +end += len; +return; +} + +// Optimize on a common case. +// If the buffer is empty and the source is going to fill up all the +// space in buffer, may as well write it directly to the output, +// and avoid an extra copy +if (len == limit && end == start && out != null) { +out.realWriteBytes(from); +from.position(from.limit()); +return; +} +// if we have limit and we're below +if (len <= limit - end) { +// makeSpace will grow the buffer to the limit, +// so we have space +from.get(buff, end, len); +end += len; +return; +} + +// need more space than we can afford, need to flush +// buffer + +// the buffer is already at ( or bigger than ) limit + +// We chunk the data into slices fitting in the buffer limit, although +// if the data is written directly if it doesn't fit + +int avail = limit - end; +from.get(buff, end, avail); +end += avail; + +flushBuffer(); + +int fromLimit = from.limit(); +int remain = len - avail; +avail = limit - end; +while (remain >= avail) { +from.limit(from.position() + avail); +out.realWriteBytes(from); +from.position(from.limit()); +remain = remain - avail; +} + +from.limit(fromLimit); +from.get(buff, end, remain); +end += remain; +} + + // Removing data from the buffer public int substract() throws IOException { -
[Bug 55207] In XML syntax, jsp:text does not error on sub-elements from other namespaces
https://bz.apache.org/bugzilla/show_bug.cgi?id=55207 DzianisH changed: What|Removed |Added CC||gavrilovets...@gmail.com -- 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: r1758257 - in /tomcat/trunk: java/org/apache/coyote/ java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/ java/org/apache/coyote/http11/filters/ java/org/apache/coyote/http2/ test/or
Author: violetagg Date: Mon Aug 29 16:31:46 2016 New Revision: 1758257 URL: http://svn.apache.org/viewvc?rev=1758257&view=rev Log: Introduce a new method org.apache.coyote.OutputBuffer.doWrite(ByteBuffer) Modified: tomcat/trunk/java/org/apache/coyote/OutputBuffer.java tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/filters/ChunkedOutputFilter.java tomcat/trunk/java/org/apache/coyote/http11/filters/GzipOutputFilter.java tomcat/trunk/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java tomcat/trunk/java/org/apache/coyote/http11/filters/VoidOutputFilter.java tomcat/trunk/java/org/apache/coyote/http2/Stream.java tomcat/trunk/test/org/apache/coyote/http11/filters/TesterOutputBuffer.java Modified: tomcat/trunk/java/org/apache/coyote/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/OutputBuffer.java?rev=1758257&r1=1758256&r2=1758257&view=diff == --- tomcat/trunk/java/org/apache/coyote/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/OutputBuffer.java Mon Aug 29 16:31:46 2016 @@ -17,6 +17,7 @@ package org.apache.coyote; import java.io.IOException; +import java.nio.ByteBuffer; import org.apache.tomcat.util.buf.ByteChunk; @@ -24,7 +25,7 @@ import org.apache.tomcat.util.buf.ByteCh * Output buffer. * * This class is used internally by the protocol implementation. All writes from - * higher level code should happen via Resonse.doWrite(). + * higher level code should happen via Response.doWrite(). * * @author Remy Maucherat */ @@ -44,6 +45,19 @@ public interface OutputBuffer { /** + * Write the given data to the response. The caller owns the chunks. + * + * @param chunk data to write + * + * @return The number of bytes written which may be less than available in + * the input chunk + * + * @throws IOException an underlying I/O error occurred + */ +public int doWrite(ByteBuffer chunk) throws IOException; + + +/** * Bytes written to the underlying socket. This includes the effects of * chunking, compression, etc. * Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java?rev=1758257&r1=1758256&r2=1758257&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpMessage.java Mon Aug 29 16:31:46 2016 @@ -17,6 +17,8 @@ package org.apache.coyote.ajp; +import java.nio.ByteBuffer; + import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.buf.ByteChunk; @@ -220,18 +222,47 @@ public class AjpMessage { * @param numBytes The number of bytes to copy. */ public void appendBytes(byte[] b, int off, int numBytes) { +if (checkOverflow(numBytes)) { +return; +} +appendInt(numBytes); +System.arraycopy(b, off, buf, pos, numBytes); +pos += numBytes; +appendByte(0); +} + + +/** + * Copy a chunk of bytes into the packet, starting at the current + * write position. The chunk of bytes is encoded with the length + * in two bytes first, then the data itself, and finally a + * terminating \0 (which is not included in the encoded + * length). + * + * @param b The ByteBuffer from which to copy bytes. + */ +public void appendBytes(ByteBuffer b) { +int numBytes = b.remaining(); +if (checkOverflow(numBytes)) { +return; +} +appendInt(numBytes); +b.get(buf, pos, numBytes); +pos += numBytes; +appendByte(0); +} + + +private boolean checkOverflow(int numBytes) { if (pos + numBytes + 3 > buf.length) { log.error(sm.getString("ajpmessage.overflow", "" + numBytes, "" + pos), new ArrayIndexOutOfBoundsException()); if (log.isDebugEnabled()) { dump("Overflow/coBytes"); } -return; +return true; } -appendInt(numBytes); -System.arraycopy(b, off, buf, pos, numBytes); -pos += numBytes; -appendByte(0); +return false; } Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1758257&r1=1758256&r2=1758257&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpPr
svn commit: r1758261 - in /tomcat/trunk/java/org/apache: catalina/connector/OutputBuffer.java coyote/Response.java
Author: violetagg Date: Mon Aug 29 16:55:54 2016 New Revision: 1758261 URL: http://svn.apache.org/viewvc?rev=1758261&view=rev Log: Implement o.a.catalina.connector.OutputBuffer.realWriteBytes(ByteBuffer) Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java tomcat/trunk/java/org/apache/coyote/Response.java Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1758261&r1=1758260&r2=1758261&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Mon Aug 29 16:55:54 2016 @@ -395,7 +395,27 @@ public class OutputBuffer extends Writer */ @Override public void realWriteBytes(ByteBuffer buf) throws IOException { -// To be implemented + +if (closed) { +return; +} +if (coyoteResponse == null) { +return; +} + +// If we really have something to write +if (buf.remaining() > 0) { +// real write to the adapter +try { +coyoteResponse.doWrite(buf.slice()); +} catch (IOException e) { +// An IOException on a write is almost always due to +// the remote client aborting the request. Wrap this +// so that it can be handled better by the error dispatcher. +throw new ClientAbortException(e); +} +} + } Modified: tomcat/trunk/java/org/apache/coyote/Response.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Response.java?rev=1758261&r1=1758260&r2=1758261&view=diff == --- tomcat/trunk/java/org/apache/coyote/Response.java (original) +++ tomcat/trunk/java/org/apache/coyote/Response.java Mon Aug 29 16:55:54 2016 @@ -18,6 +18,7 @@ package org.apache.coyote; import java.io.IOException; import java.io.StringReader; +import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.util.Locale; import java.util.concurrent.atomic.AtomicBoolean; @@ -500,6 +501,20 @@ public final class Response { contentWritten+=chunk.getLength(); } + +/** + * Write a chunk of bytes. + * + * @param chunk The ByteBuffer to write + * + * @throws IOException If an I/O error occurs during the write + */ +public void doWrite(ByteBuffer chunk) throws IOException { +int len = chunk.remaining(); +outputBuffer.doWrite(chunk); +contentWritten += len - chunk.remaining(); +} + // public void recycle() { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1758276 - in /tomcat/trunk: java/org/apache/catalina/connector/ test/org/apache/catalina/connector/
Author: violetagg Date: Mon Aug 29 18:10:36 2016 New Revision: 1758276 URL: http://svn.apache.org/viewvc?rev=1758276&view=rev Log: Introduce a new method CoyoteOutputStream.write(ByteBuffer) Added: tomcat/trunk/test/org/apache/catalina/connector/test_content.txt (with props) Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java tomcat/trunk/test/org/apache/catalina/connector/TestCoyoteOutputStream.java Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java?rev=1758276&r1=1758275&r2=1758276&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteOutputStream.java Mon Aug 29 18:10:36 2016 @@ -17,6 +17,7 @@ package org.apache.catalina.connector; import java.io.IOException; +import java.nio.ByteBuffer; import javax.servlet.ServletOutputStream; import javax.servlet.WriteListener; @@ -97,6 +98,15 @@ public class CoyoteOutputStream extends if (nonBlocking) { checkRegisterForWrite(); } +} + + +public void write(ByteBuffer from) throws IOException { +boolean nonBlocking = checkNonBlockingWrite(); +ob.write(from); +if (nonBlocking) { +checkRegisterForWrite(); +} } Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1758276&r1=1758275&r2=1758276&view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Mon Aug 29 18:10:36 2016 @@ -430,6 +430,17 @@ public class OutputBuffer extends Writer } +public void write(ByteBuffer from) throws IOException { + +if (suspended) { +return; +} + +writeBytes(from); + +} + + private void writeBytes(byte b[], int off, int len) throws IOException { @@ -442,6 +453,24 @@ public class OutputBuffer extends Writer // if called from within flush(), then immediately flush // remaining bytes +if (doFlush) { +bb.flushBuffer(); +} + +} + + +private void writeBytes(ByteBuffer from) throws IOException { + +if (closed) { +return; +} + +bb.append(from); +bytesWritten += from.remaining(); + +// if called from within flush(), then immediately flush +// remaining bytes if (doFlush) { bb.flushBuffer(); } Modified: tomcat/trunk/test/org/apache/catalina/connector/TestCoyoteOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestCoyoteOutputStream.java?rev=1758276&r1=1758275&r2=1758276&view=diff == --- tomcat/trunk/test/org/apache/catalina/connector/TestCoyoteOutputStream.java (original) +++ tomcat/trunk/test/org/apache/catalina/connector/TestCoyoteOutputStream.java Mon Aug 29 18:10:36 2016 @@ -16,7 +16,10 @@ */ package org.apache.catalina.connector; +import java.io.File; import java.io.IOException; +import java.io.RandomAccessFile; +import java.nio.channels.FileChannel.MapMode; import java.nio.charset.StandardCharsets; import java.util.concurrent.atomic.AtomicInteger; @@ -99,6 +102,27 @@ public class TestCoyoteOutputStream exte doNonBlockingTest(2, 1, false); } +@Test +public void testWriteWithByteBuffer() throws Exception { +Tomcat tomcat = getTomcatInstance(); + +Context root = tomcat.addContext("", TEMP_DIR); +Tomcat.addServlet(root, "testServlet", new TestServlet()); +root.addServletMapping("/", "testServlet"); + +tomcat.start(); + +ByteChunk bc = new ByteChunk(); +int rc = getUrl("http://localhost:"; + getPort() + "/", bc, null, null); +Assert.assertEquals(HttpServletResponse.SC_OK, rc); +File file = new File("test/org/apache/catalina/connector/test_content.txt"); +try (RandomAccessFile raf = new RandomAccessFile(file, "r");) { +ByteChunk expected = new ByteChunk(); +expected.append(raf.getChannel().map(MapMode.READ_ONLY, 0, file.length())); +Assert.assertTrue(expected.equals(bc)); +} +} + private void doNonBlockingTest(int asyncWriteTarget, int syncWriteTarget, boolean useContainerThreadToSetListener) throws Exception { @@ -250,4 +274,20 @@ public class T
svn commit: r1758292 - /tomcat/trunk/test/org/apache/catalina/startup/TestContextConfigAnnotation.java
Author: violetagg Date: Mon Aug 29 19:01:02 2016 New Revision: 1758292 URL: http://svn.apache.org/viewvc?rev=1758292&view=rev Log: Fix the creation of the file in the test. The test was failing when there is a space in the path. Modified: tomcat/trunk/test/org/apache/catalina/startup/TestContextConfigAnnotation.java Modified: tomcat/trunk/test/org/apache/catalina/startup/TestContextConfigAnnotation.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestContextConfigAnnotation.java?rev=1758292&r1=1758291&r2=1758292&view=diff == --- tomcat/trunk/test/org/apache/catalina/startup/TestContextConfigAnnotation.java (original) +++ tomcat/trunk/test/org/apache/catalina/startup/TestContextConfigAnnotation.java Mon Aug 29 19:01:02 2016 @@ -18,6 +18,7 @@ package org.apache.catalina.startup; import java.beans.PropertyChangeListener; import java.io.File; +import java.net.URISyntaxException; import java.net.URL; import java.util.HashMap; import java.util.HashSet; @@ -364,12 +365,13 @@ public class TestContextConfigAnnotation * * @param className * @return File Resource + * @throws URISyntaxException */ -private File paramClassResource(String className) { +private File paramClassResource(String className) throws URISyntaxException { URL url = getClass().getClassLoader().getResource(className + ".class"); assertNotNull(url); -File file = new File(url.getPath()); +File file = new File(url.toURI()); return file; } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 60013] Non-ASCII characters in querystring get mangled after URL Rewrite using RewriteValve
https://bz.apache.org/bugzilla/show_bug.cgi?id=60013 Mark Thomas changed: What|Removed |Added Status|NEEDINFO|NEW --- Comment #12 from Mark Thomas --- Thanks for the test cases. They really do make bug reports a lot easier to work with. I'll start looking at them today. -- 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-tc8.0.x-test-apr (in module tomcat-8.0.x) 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-tc8.0.x-test-apr 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-tc8.0.x-test-apr : Tomcat 8.x, a web server implementing the Java Servlet 3.1, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-8.0.x/tomcat-tc8.0.x-test-apr/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. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-8.0.x/output/logs-APR -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-8.0.x/output/test-tmp-APR/logs -WARNING- No directory [/srv/gump/public/workspace/tomcat-8.0.x/output/test-tmp-APR/logs] The following work was performed: http://vmgump.apache.org/gump/public/tomcat-8.0.x/tomcat-tc8.0.x-test-apr/gump_work/build_tomcat-8.0.x_tomcat-tc8.0.x-test-apr.html Work Name: build_tomcat-8.0.x_tomcat-tc8.0.x-test-apr (Type: Build) Work ended in a state of : Failed Elapsed: 33 mins 19 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbase.path=/srv/gump/public/workspace/tomcat-8.0.x/tomcat-build-libs -Dexecute.test.nio2=false -Dtest.temp=output/test-tmp-APR -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.5-SNAPSHOT.jar -Dexamples.sources.skip=true -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20160829.jar -Dtest.openssl.path=/srv/gump/public/workspace/openssl-1.0.2/dest-20160829/bin/openssl -Dexecute.test.nio=false -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.jar -Dexecute.test.apr=true -Dexecute.test.bio=false -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20160829-native-src.tar.gz -Dtest.reports=output/logs-APR -Dto mcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20160829-native-src.tar.gz -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.5-201506032000/ecj-4.5.jar -Dtest.apr.loc=/srv/gump/public/workspace/tomcat-native-12/dest-20160829/lib -Dtest.relaxTiming=true -Dtest.excludePerformance=true -Dtest.accesslog=true -Deasymock.jar=/srv/gump/public/workspace/easymock/core/target/easymock-3.5-SNAPSHOT.jar -Dcglib.jar=/srv/gump/packages/cglib/cglib-nodep-2.2.jar test [Working Directory: /srv/gump/public/workspace/tomcat-8.0.x] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-8.0.x/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-8.0.x/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/servlet-api.ja r:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/websocket-api.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/catalina-storeconfig.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/catalina-tribes.jar:/srv/gump/pub