svn commit: r1758223 - in /tomcat/trunk/java/org/apache: catalina/connector/OutputBuffer.java tomcat/util/buf/ByteChunk.java

2016-08-29 Thread violetagg
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

2016-08-29 Thread bugzilla
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

2016-08-29 Thread violetagg
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

2016-08-29 Thread violetagg
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/

2016-08-29 Thread violetagg
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

2016-08-29 Thread violetagg
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

2016-08-29 Thread bugzilla
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

2016-08-29 Thread Bill Barker
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