[GUMP@vmgump]: Project tomcat-trunk-test-apr (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-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-trunk-test-apr : Tomcat 9.x, a web server implementing the Java Servlet 4.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-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-trunk/output/logs-APR -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-APR/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-apr/gump_work/build_tomcat-trunk_tomcat-trunk-test-apr.html Work Name: build_tomcat-trunk_tomcat-trunk-test-apr (Type: Build) Work ended in a state of : Failed Elapsed: 24 mins 29 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 -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-APR -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dtest.apr.loc=/srv/gump/public/workspace/tomcat-native/dest-20150223/lib -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150223.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dtest.temp=output/test-tmp-APR -Dtest.accesslog=true -Dexecute.test.nio=false -Dtest .openssl.path=/srv/gump/public/workspace/openssl/dest-20150223/bin/openssl -Dexecute.test.apr=true -Dexecute.test.nio2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.4-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.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-8-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/servlet-api.ja r:/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-trunk/output/bu ild/lib/tomcat-spdy.jar:/srv/g
[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 Timed Out'. For reference only, the following projects are affected by this: - tomcat-trunk-test-nio2 : Tomcat 9.x, a web server implementing the Java Servlet 4.0, ... 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. -INFO- Failed with reason build timed out -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/logs-NIO2 -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO2/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: 60 mins 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 -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-NIO2 -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150223.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO2 -Dtest.accesslog=true -Dexecute.test.nio=false -Dtest.openssl.path=/srv/gump/public/workspace/openssl/dest-20150223/bin/opens sl -Dexecute.test.apr=false -Dexecute.test.nio2=true -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.4-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.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-8-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/servlet-api.ja r:/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-trunk/output/bu ild/lib/tomcat-spdy.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-util.jar:
[GUMP@vmgump]: Project tomcat-tc8.0.x-test-nio (in module tomcat-8.0.x) success, but with warnings.
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-nio contains errors. The current state of this project is 'Success'. Full details are available at: http://vmgump.apache.org/gump/public/tomcat-8.0.x/tomcat-tc8.0.x-test-nio/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -ERROR- Output with id openssl was not found in project openssl-1.0.2-make-install -ERROR- Unhandled Property: test.openssl.path on: Ant on Project:tomcat-tc8.0.x-test-nio -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- Project Reports in: /srv/gump/public/workspace/tomcat-8.0.x/output/logs-NIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-8.0.x/output/test-tmp-NIO/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-8.0.x/tomcat-tc8.0.x-test-nio/gump_work/build_tomcat-8.0.x_tomcat-tc8.0.x-test-nio.html Work Name: build_tomcat-8.0.x_tomcat-tc8.0.x-test-nio (Type: Build) Work ended in a state of : Success Elapsed: 26 mins 32 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 -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-NIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150223.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO -Dtest.accesslog=true -Dexecute.test.nio=true -Dtest.openssl.path=*Unset* -Dexecute.test.apr=false -Dexecute.test.bio=false -De xecute.test.nio2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.4-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.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/public/workspace/tomcat-8.0.x/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/bu ild/lib/tomcat-spdy.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-util.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-util-scan.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat
[GUMP@vmgump]: Project tomcat-trunk-test-nio (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-nio has an issue affecting its community integration. This issue affects 1 projects. The current state of this project is 'Failed', with reason 'Build Timed Out'. For reference only, the following projects are affected by this: - tomcat-trunk-test-nio : Tomcat 9.x, a web server implementing the Java Servlet 4.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio/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 timed out -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/logs-NIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio/gump_work/build_tomcat-trunk_tomcat-trunk-test-nio.html Work Name: build_tomcat-trunk_tomcat-trunk-test-nio (Type: Build) Work ended in a state of : Failed Elapsed: 1 hour 1 sec 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 -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-NIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150223.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO -Dtest.accesslog=true -Dexecute.test.nio=true -Dtest.openssl.path=/srv/gump/public/workspace/openssl/dest-20150223/bin/openssl -Dexecute.test.apr=false -Dexecute.test.nio2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.4-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.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-8-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/servlet-api.ja r:/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-trunk/output/bu ild/lib/tomcat-spdy.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-util.jar:/srv/
[Bug 57617] File upload error reporting behaviour changed
https://bz.apache.org/bugzilla/show_bug.cgi?id=57617 --- Comment #2 from Oliver Henlich --- Created attachment 32507 --> https://bz.apache.org/bugzilla/attachment.cgi?id=32507&action=edit server.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 57617] File upload error reporting behaviour changed
https://bz.apache.org/bugzilla/show_bug.cgi?id=57617 Oliver Henlich changed: What|Removed |Added OS||All CC||oliver.henl...@unimarket.co ||m -- 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 57617] File upload error reporting behaviour changed
https://bz.apache.org/bugzilla/show_bug.cgi?id=57617 --- Comment #1 from Oliver Henlich --- Created attachment 32506 --> https://bz.apache.org/bugzilla/attachment.cgi?id=32506&action=edit jsp -- 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 57617] New: File upload error reporting behaviour changed
https://bz.apache.org/bugzilla/show_bug.cgi?id=57617 Bug ID: 57617 Summary: File upload error reporting behaviour changed Product: Tomcat 7 Version: unspecified Hardware: All Status: NEW Severity: normal Priority: P2 Component: Connectors Assignee: dev@tomcat.apache.org Reporter: oliver.henl...@unimarket.com Created attachment 32505 --> https://bz.apache.org/bugzilla/attachment.cgi?id=32505&action=edit html page Hi, We recently upgraded to 7.0.59 and have noticed that our file upload error reporting does not work any more. Our application usually uses ajax requests and various frameworks to handle this but we are able to reproduce this with the very basic attached example. Expected behaviour: When uploading a file that exceeds the specified limit, an error should be reported to the client. Observed behaviour: The error is not returned to the client who instead encounters a "The connection was reset" error. The above behaviour is observed when connecting to the http connector (see attached server.xml) If we however connect to tomcat using mod_proxy_ajp we observe the expected behaviour (the client receives an error message). -- 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) success, but with warnings.
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 contains errors. The current state of this project is 'Success'. 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: -ERROR- Output with id openssl was not found in project openssl-1.0.2-make-install -ERROR- Unhandled Property: test.openssl.path on: Ant on Project:tomcat-tc8.0.x-test-apr -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- 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 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 : Success Elapsed: 26 mins 51 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 -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-APR -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dtest.apr.loc=/srv/gump/public/workspace/tomcat-native/dest-20150223/lib -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150223.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dtest.temp=output/test-tmp-APR -Dtest.accesslog=true -Dexecute.test.nio=false -Dtest .openssl.path=*Unset* -Dexecute.test.apr=true -Dexecute.test.bio=false -Dexecute.test.nio2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.4-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.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/public/workspace/tomcat-8.0.x/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/bu ild/lib/tomcat-spdy.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-util.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-ut
[GUMP@vmgump]: Project tomcat-tc8.0.x-test-nio2 (in module tomcat-8.0.x) success, but with warnings.
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-nio2 contains errors. The current state of this project is 'Success'. Full details are available at: http://vmgump.apache.org/gump/public/tomcat-8.0.x/tomcat-tc8.0.x-test-nio2/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -ERROR- Output with id openssl was not found in project openssl-1.0.2-make-install -ERROR- Unhandled Property: test.openssl.path on: Ant on Project:tomcat-tc8.0.x-test-nio2 -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- Project Reports in: /srv/gump/public/workspace/tomcat-8.0.x/output/logs-NIO2 -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-8.0.x/output/test-tmp-NIO2/logs The following work was performed: http://vmgump.apache.org/gump/public/tomcat-8.0.x/tomcat-tc8.0.x-test-nio2/gump_work/build_tomcat-8.0.x_tomcat-tc8.0.x-test-nio2.html Work Name: build_tomcat-8.0.x_tomcat-tc8.0.x-test-nio2 (Type: Build) Work ended in a state of : Success Elapsed: 27 mins 16 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 -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar -Dtest.reports=output/logs-NIO2 -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.4-201406061215/ecj-4.4.jar -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150223.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150223-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO2 -Dtest.accesslog=true -Dexecute.test.nio=false -Dtest.openssl.path=*Unset* -Dexecute.test.apr=false -Dexecute.test.bio=false -Dexecute.test.nio2=true -Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.4-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.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/public/workspace/tomcat-8.0.x/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/bu ild/lib/tomcat-spdy.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-util.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/lib/tomcat-util-scan.jar:/srv/gump/public/workspace/tomcat-8.0.x/output/build/
svn commit: r1661598 - in /tomcat/tc7.0.x/trunk: java/org/apache/catalina/startup/HostConfig.java webapps/docs/changelog.xml
Author: kfujino Date: Mon Feb 23 02:43:23 2015 New Revision: 1661598 URL: http://svn.apache.org/r1661598 Log: -When docBase refers internal war and unpackWARs is set to false, avoid registration of the invalid redeploy resource that has been added ".war" extension in duplicate. -If WAR exists, it is not necessary to trigger a reload when adding a Directory. Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1661598&r1=1661597&r2=1661598&view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java Mon Feb 23 02:43:23 2015 @@ -686,7 +686,8 @@ public class HostConfig // default to appBase dir + name expandedDocBase = new File(appBase(), cn.getBaseName()); -if (context.getDocBase() != null) { +if (context.getDocBase() != null +&& !context.getDocBase().toLowerCase(Locale.ENGLISH).endsWith(".war")) { // first assume docBase is absolute expandedDocBase = new File(context.getDocBase()); if (!expandedDocBase.isAbsolute()) { @@ -697,10 +698,14 @@ public class HostConfig // Add the eventual unpacked WAR and all the resources which will be // watched inside it -if (isExternalWar && unpackWARs) { - deployedApp.redeployResources.put(expandedDocBase.getAbsolutePath(), -Long.valueOf(expandedDocBase.lastModified())); -addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); +if (isExternalWar) { +if (unpackWARs) { + deployedApp.redeployResources.put(expandedDocBase.getAbsolutePath(), +Long.valueOf(expandedDocBase.lastModified())); +addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); +} else { +addWatchedResources(deployedApp, null, context); +} } else { // Find an existing matching war and expanded folder if (!isExternal) { @@ -721,12 +726,6 @@ public class HostConfig addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); } else { -if (!isExternal && !unpackWARs) { -// Trigger a reload if a DIR is added -deployedApp.reloadResources.put( -expandedDocBase.getAbsolutePath(), -Long.valueOf(0)); -} addWatchedResources(deployedApp, null, context); } // Add the context XML to the list of files which should trigger a redeployment 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=1661598&r1=1661597&r2=1661598&view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Mon Feb 23 02:43:23 2015 @@ -87,6 +87,15 @@ 49785: Enable StartTLS connections for JNDIRealm. (fschumacher) + +When docBase refers internal war and unpackWARs is set to false, avoid +registration of the invalid redeploy resource that has been added ".war" +extension in duplicate. (kfujino) + + +If WAR exists, it is not necessary to trigger a reload when adding a +Directory. (kfujino) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661597 - in /tomcat/tc8.0.x/trunk: java/org/apache/catalina/startup/HostConfig.java webapps/docs/changelog.xml
Author: kfujino Date: Mon Feb 23 02:40:58 2015 New Revision: 1661597 URL: http://svn.apache.org/r1661597 Log: -When docBase refers internal war and unpackWARs is set to false, avoid registration of the invalid redeploy resource that has been added ".war" extension in duplicate. -If WAR exists, it is not necessary to trigger a reload when adding a Directory. Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1661597&r1=1661596&r2=1661597&view=diff == --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/HostConfig.java Mon Feb 23 02:40:58 2015 @@ -588,7 +588,8 @@ public class HostConfig // default to appBase dir + name expandedDocBase = new File(host.getAppBaseFile(), cn.getBaseName()); -if (context.getDocBase() != null) { +if (context.getDocBase() != null +&& !context.getDocBase().toLowerCase(Locale.ENGLISH).endsWith(".war")) { // first assume docBase is absolute expandedDocBase = new File(context.getDocBase()); if (!expandedDocBase.isAbsolute()) { @@ -599,10 +600,14 @@ public class HostConfig // Add the eventual unpacked WAR and all the resources which will be // watched inside it -if (isExternalWar && unpackWARs) { - deployedApp.redeployResources.put(expandedDocBase.getAbsolutePath(), -Long.valueOf(expandedDocBase.lastModified())); -addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); +if (isExternalWar) { +if (unpackWARs) { + deployedApp.redeployResources.put(expandedDocBase.getAbsolutePath(), +Long.valueOf(expandedDocBase.lastModified())); +addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); +} else { +addWatchedResources(deployedApp, null, context); +} } else { // Find an existing matching war and expanded folder if (!isExternal) { @@ -623,12 +628,6 @@ public class HostConfig addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); } else { -if (!isExternal && !unpackWARs) { -// Trigger a reload if a DIR is added -deployedApp.reloadResources.put( -expandedDocBase.getAbsolutePath(), -Long.valueOf(0)); -} addWatchedResources(deployedApp, null, context); } // Add the context XML to the list of files which should trigger a redeployment Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1661597&r1=1661596&r2=1661597&view=diff == --- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Mon Feb 23 02:40:58 2015 @@ -51,6 +51,15 @@ 49785: Enable StartTLS connections for JNDIRealm. (fschumacher) + +When docBase refers internal war and unpackWARs is set to false, avoid +registration of the invalid redeploy resource that has been added ".war" +extension in duplicate. (kfujino) + + +If WAR exists, it is not necessary to trigger a reload when adding a +Directory. (kfujino) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661595 - /tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
Author: kfujino Date: Mon Feb 23 02:37:11 2015 New Revision: 1661595 URL: http://svn.apache.org/r1661595 Log: If WAR exists, it is not necessary to trigger a reload when adding a Directory. Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1661595&r1=1661594&r2=1661595&view=diff == --- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Mon Feb 23 02:37:11 2015 @@ -628,12 +628,6 @@ public class HostConfig addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); } else { -if (!isExternal && !unpackWARs) { -// Trigger a reload if a DIR is added -deployedApp.reloadResources.put( -expandedDocBase.getAbsolutePath(), -Long.valueOf(0)); -} addWatchedResources(deployedApp, null, context); } // Add the context XML to the list of files which should trigger a redeployment - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661594 - /tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
Author: kfujino Date: Mon Feb 23 02:34:50 2015 New Revision: 1661594 URL: http://svn.apache.org/r1661594 Log: When docBase refers internal war and unpackWARs is set to false, avoid registration of the invalid redeploy resource that has been added ".war" extension in duplicate. Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1661594&r1=1661593&r2=1661594&view=diff == --- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Mon Feb 23 02:34:50 2015 @@ -588,7 +588,8 @@ public class HostConfig // default to appBase dir + name expandedDocBase = new File(host.getAppBaseFile(), cn.getBaseName()); -if (context.getDocBase() != null) { +if (context.getDocBase() != null +&& !context.getDocBase().toLowerCase(Locale.ENGLISH).endsWith(".war")) { // first assume docBase is absolute expandedDocBase = new File(context.getDocBase()); if (!expandedDocBase.isAbsolute()) { @@ -599,10 +600,14 @@ public class HostConfig // Add the eventual unpacked WAR and all the resources which will be // watched inside it -if (isExternalWar && unpackWARs) { - deployedApp.redeployResources.put(expandedDocBase.getAbsolutePath(), -Long.valueOf(expandedDocBase.lastModified())); -addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); +if (isExternalWar) { +if (unpackWARs) { + deployedApp.redeployResources.put(expandedDocBase.getAbsolutePath(), +Long.valueOf(expandedDocBase.lastModified())); +addWatchedResources(deployedApp, expandedDocBase.getAbsolutePath(), context); +} else { +addWatchedResources(deployedApp, null, context); +} } else { // Find an existing matching war and expanded folder if (!isExternal) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: TestPojoEndpointBase failing on trunk
On Feb 22, 2015, at 10:57 AM, Mark Thomas wrote: > > On 19/02/2015 18:27, Mark Thomas wrote: >> On 19/02/2015 15:17, Jeremy Boynes wrote: >>> Mark >>> >>> I am seing regular failures in TestPojoEndpointBase in trunk where >>> the socket is not being closed (see attached log). I’ve not dug in >>> yet but this has started since r1660358 and may be related to recent >>> NIO changes (maybe r1660582?). >> >> I'm fairly sure I have a fix for that wrapped up in my current changes. >> I'll get those committed as soon as I can but I am still working through >> intermittent unit test failures. >> >> To add to the 'fun' my email provider has decided the most helpful thing >> they could do is add a random 20 min to 12+ hour delay to all my e-mail. >> That is causing its own problems - not least of which is me not seeing >> dev@ e-mails in a timely manner. Unsurprisingly DynDNS will be losing a >> customer just as quickly as I can find an alternative to migrate to. > > Goodbye to the incompetence of DynDNS / DuoCircle. > > Hello to DNSExit/GhettoSMTP and a system that works (and costs 50% to > 75% less). > > Having exchanged emails and instant messages with representatives of > both companies I already have a much warmer feeling about them than I > did with DynDNS and DuoCircle. Obviously time will tell in terms of > service but so far so good. > > Now I have e-mail arriving with seconds of it being sent, back to what > I'd much rather be doing... > > I think I have a fix for this that I have just committed. The unit tests > pass consistently (so far) on OSX. Now I am back at home, I'll run them > on Windows and Linux as well as BuildBot and Gump. > > There are still some strange failures on Gump that I don't understand at > all. Any help investigating those would be much appreciated. Thanks, this one is passing now. However, I’m seeing some other tests failing: test: [concat] Testsuites with skipped tests: [concat] TEST-org.apache.catalina.connector.TestRequest.NIO.txt [concat] TEST-org.apache.el.parser.TestELParser.NIO.txt [concat] TEST-org.apache.tomcat.util.net.TestClientCert.NIO.txt [concat] TEST-org.apache.tomcat.util.net.TestCustomSsl.NIO.txt [concat] TEST-org.apache.tomcat.util.net.TestSsl.NIO.txt [concat] TEST-org.apache.tomcat.util.net.jsse.openssl.TestCipher.NIO.txt [concat] TEST-org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser.NIO.txt [concat] TEST-org.apache.tomcat.websocket.TestConnectionLimit.NIO.txt [concat] TEST-org.apache.tomcat.websocket.pojo.TestEncodingDecoding.NIO.txt [concat] Testsuites with failed tests: [concat] TEST-org.apache.tomcat.websocket.TestWebSocketFrameClientSSL.NIO.txt [concat] TEST-org.apache.tomcat.websocket.TestWsWebSocketContainer.NIO.txt This is on OS X 10.10.2 with Java 1.8.0_31 Logs attached. Testsuite: org.apache.tomcat.websocket.TestWsWebSocketContainer Tests run: 26, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 70.925 sec - Standard Error - 22-Feb-2015 14:23:16.747 INFO [main] org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case [testMaxMessageSize01] 22-Feb-2015 14:23:17.007 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-127.0.0.1-auto-1"] 22-Feb-2015 14:23:17.028 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Tomcat 22-Feb-2015 14:23:17.028 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/9.0.0-dev 22-Feb-2015 14:23:17.151 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-127.0.0.1-auto-1-51485"] 22-Feb-2015 14:23:17.446 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-127.0.0.1-auto-1-51485"] 22-Feb-2015 14:23:17.502 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service Tomcat 22-Feb-2015 14:23:17.509 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-127.0.0.1-auto-1-51485"] 22-Feb-2015 14:23:17.511 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-127.0.0.1-auto-1-51485"] 22-Feb-2015 14:23:17.518 INFO [main] org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case [testMaxMessageSize02] 22-Feb-2015 14:23:17.519 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-127.0.0.1-auto-2"] 22-Feb-2015 14:23:17.520 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Tomcat 22-Feb-2015 14:23:17.520 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/9.0.0-dev 22-Feb-2015 14:23:17.525 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-127.0.0.1-auto-2-51488"] 22-Feb-2015 14:23:17.633 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausin
Re: TestPojoEndpointBase failing on trunk
On 19/02/2015 18:27, Mark Thomas wrote: > On 19/02/2015 15:17, Jeremy Boynes wrote: >> Mark >> >> I am seing regular failures in TestPojoEndpointBase in trunk where >> the socket is not being closed (see attached log). I’ve not dug in >> yet but this has started since r1660358 and may be related to recent >> NIO changes (maybe r1660582?). > > I'm fairly sure I have a fix for that wrapped up in my current changes. > I'll get those committed as soon as I can but I am still working through > intermittent unit test failures. > > To add to the 'fun' my email provider has decided the most helpful thing > they could do is add a random 20 min to 12+ hour delay to all my e-mail. > That is causing its own problems - not least of which is me not seeing > dev@ e-mails in a timely manner. Unsurprisingly DynDNS will be losing a > customer just as quickly as I can find an alternative to migrate to. Goodbye to the incompetence of DynDNS / DuoCircle. Hello to DNSExit/GhettoSMTP and a system that works (and costs 50% to 75% less). Having exchanged emails and instant messages with representatives of both companies I already have a much warmer feeling about them than I did with DynDNS and DuoCircle. Obviously time will tell in terms of service but so far so good. Now I have e-mail arriving with seconds of it being sent, back to what I'd much rather be doing... I think I have a fix for this that I have just committed. The unit tests pass consistently (so far) on OSX. Now I am back at home, I'll run them on Windows and Linux as well as BuildBot and Gump. There are still some strange failures on Gump that I don't understand at all. Any help investigating those would be much appreciated. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661524 - /tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
Author: markt Date: Sun Feb 22 18:50:11 2015 New Revision: 1661524 URL: http://svn.apache.org/r1661524 Log: Fix indent Modified: tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java Modified: tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java?rev=1661524&r1=1661523&r2=1661524&view=diff == --- tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java (original) +++ tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java Sun Feb 22 18:50:11 2015 @@ -320,16 +320,16 @@ public class TestUpgrade extends TomcatB sis.close(); sos.close(); } -while (sis.isReady()) { -int read = sis.read(buffer); -if (read > 0) { -sos.write(buffer, 0, read); -if (!sos.isReady()) { -break; -} +while (sis.isReady()) { +int read = sis.read(buffer); +if (read > 0) { +sos.write(buffer, 0, read); +if (!sos.isReady()) { +break; } } } +} @Override public void onDataAvailable() throws IOException { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661526 - in /tomcat/trunk: java/org/apache/coyote/http11/upgrade/ java/org/apache/tomcat/util/net/ java/org/apache/tomcat/websocket/server/ res/checkstyle/
Author: markt Date: Sun Feb 22 18:50:23 2015 New Revision: 1661526 URL: http://svn.apache.org/r1661526 Log: Limit concurrent read/write for HTTP upgrade to implementations that explicitly request it via a Tomcat specific interface. Note that the expectation is that concurrent read/writes will be replaced by these implementations having direct access to Tomcat's I/O layer. Added: tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java tomcat/trunk/res/checkstyle/org-import-control.xml Added: tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java?rev=1661526&view=auto == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java (added) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java Sun Feb 22 18:50:23 2015 @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.coyote.http11.upgrade; + +import javax.servlet.http.HttpUpgradeHandler; + + +/** + * Currently just a marker interface to enable Tomcat to identify + * implementations that expect/require concurrent read/write support. + * + * Note that concurrent read/write support is being phased out and this + * interface is expected to evolve into an interface internal handlers use to + * gain direct access to Tomcat's I/O layer rather than going through the + * Servlet API. + */ +public interface InternalHttpUpgradeHandler extends HttpUpgradeHandler { +} \ No newline at end of file Propchange: tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java -- svn:eol-style = native Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java?rev=1661526&r1=1661525&r2=1661526&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java Sun Feb 22 18:50:23 2015 @@ -56,6 +56,10 @@ public class UpgradeProcessor implements wrapper.unRead(leftOverInput); wrapper.setReadTimeout(INFINITE_TIMEOUT); wrapper.setWriteTimeout(INFINITE_TIMEOUT); + +if (httpUpgradeHandler instanceof InternalHttpUpgradeHandler) { +wrapper.setInternalUpgrade(true); +} } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1661526&r1=1661525&r2=1661526&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Sun Feb 22 18:50:23 2015 @@ -2326,11 +2326,9 @@ public class AprEndpoint extends Abstrac @Override public void run() { - -// Upgraded connections need to allow multiple threads to access the -// connection at the same time to enable blocking IO to be used when -// Servlet 3.1 NIO has been configured -if (socket.isUpgraded() && SocketStatus.OPEN_WRITE == status) { +// Upgraded connections using an internal upgrade handler are +// allowed concurrent read/wr
svn commit: r1661525 - /tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
Author: markt Date: Sun Feb 22 18:50:15 2015 New Revision: 1661525 URL: http://svn.apache.org/r1661525 Log: Remove upgradeInit code as the code that called it has been removed Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.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=1661525&r1=1661524&r2=1661525&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Sun Feb 22 18:50:15 2015 @@ -732,7 +732,6 @@ public class Nio2Endpoint extends Abstra }; private SendfileData sendfileData = null; -private boolean upgradeInit = false; private final CompletionHandler> readCompletionHandler; private final Semaphore readPending = new Semaphore(1); @@ -938,7 +937,6 @@ public class Nio2Endpoint extends Abstra new Exception()); } super.reset(channel, soTimeout); -upgradeInit = false; sendfileData = null; } @@ -952,19 +950,6 @@ public class Nio2Endpoint extends Abstra } } -@Override -public void setUpgraded(boolean upgraded) { -if (upgraded && !isUpgraded()) { -upgradeInit = true; -} -super.setUpgraded(upgraded); -} - -public boolean isUpgradeInit() { -boolean value = upgradeInit; -upgradeInit = false; -return value; -} public void setSendfileData(SendfileData sf) { this.sendfileData = sf; } public SendfileData getSendfileData() { return this.sendfileData; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661523 - /tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
Author: markt Date: Sun Feb 22 18:50:06 2015 New Revision: 1661523 URL: http://svn.apache.org/r1661523 Log: Remove some temporary debug logging 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=1661523&r1=1661522&r2=1661523&view=diff == --- tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java (original) +++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java Sun Feb 22 18:50:06 2015 @@ -20,8 +20,6 @@ import java.net.URI; import java.util.Queue; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.websocket.ClientEndpointConfig; import javax.websocket.ContainerProvider; @@ -45,10 +43,6 @@ public class TestWebSocketFrameClientSSL @Test public void testConnectToServerEndpoint() throws Exception { -Logger logger = Logger.getLogger("org.apache.tomcat.util.net.Nio2Endpoint"); -logger.setLevel(Level.ALL); -logger = Logger.getLogger("org.apache.coyote.http11.upgrade.UpgradeProcessor"); -logger.setLevel(Level.ALL); Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); @@ -96,10 +90,6 @@ public class TestWebSocketFrameClientSSL @Test public void testBug56032() throws Exception { -Logger logger = Logger.getLogger("org.apache.tomcat.util.net.Nio2Endpoint"); -logger.setLevel(Level.ALL); -logger = Logger.getLogger("org.apache.coyote.http11.upgrade.UpgradeProcessor"); -logger.setLevel(Level.ALL); Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661520 - /tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java
Author: markt Date: Sun Feb 22 18:49:51 2015 New Revision: 1661520 URL: http://svn.apache.org/r1661520 Log: As per EG discussion, the connection only closes after both streams have been closed. Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java?rev=1661520&r1=1661519&r2=1661520&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java Sun Feb 22 18:49:51 2015 @@ -123,7 +123,7 @@ public class UpgradeProcessor implements } return SocketState.CLOSED; } -if (upgradeServletInputStream.isClosed() || +if (upgradeServletInputStream.isClosed() && upgradeServletOutputStream.isClosed()) { if (log.isDebugEnabled()) { log.debug(sm.getString("upgradeProcessor.requiredClose", - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661518 - /tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java
Author: markt Date: Sun Feb 22 18:49:42 2015 New Revision: 1661518 URL: http://svn.apache.org/r1661518 Log: Fix infinite loop observed while running unit tests when write is called with no data on the input side and wrapping also produces no data. 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=1661518&r1=1661517&r2=1661518&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SecureNio2Channel.java Sun Feb 22 18:49:42 2015 @@ -663,8 +663,7 @@ public class SecureNio2Channel extends N writePending = false; throw new ExecutionException(t); } -integer.get(timeout, unit); -if (written == 0) { +if (integer.get(timeout, unit).intValue() > 0 && written == 0) { wrap(); return get(timeout, unit); } else { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661515 - in /tomcat/trunk/java/org/apache/coyote/http11/upgrade: UpgradeServletInputStream.java UpgradeServletOutputStream.java
Author: markt Date: Sun Feb 22 18:49:27 2015 New Revision: 1661515 URL: http://svn.apache.org/r1661515 Log: The container is responsible for the first calls to onDataAvailable() and onWritePossible(). Trigger them from the setting of the appropriate listener. Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java?rev=1661515&r1=1661514&r2=1661515&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java Sun Feb 22 18:49:27 2015 @@ -21,9 +21,11 @@ import java.io.IOException; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; +import org.apache.coyote.ContainerThreadMarker; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; +import org.apache.tomcat.util.net.DispatchType; import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; @@ -98,6 +100,13 @@ public class UpgradeServletInputStream e throw new IllegalStateException(sm.getString("upgrade.sis.read.closed")); } +// Container is responsible for first call to onDataAvailable(). +if (ContainerThreadMarker.isContainerThread()) { +socketWrapper.addDispatch(DispatchType.NON_BLOCKING_READ); +} else { +socketWrapper.registerReadInterest(); +} + this.listener = listener; this.applicationLoader = Thread.currentThread().getContextClassLoader(); // Switching to non-blocking. Don't know if data is available. Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java?rev=1661515&r1=1661514&r2=1661515&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java Sun Feb 22 18:49:27 2015 @@ -21,11 +21,9 @@ import java.io.IOException; import javax.servlet.ServletOutputStream; import javax.servlet.WriteListener; -import org.apache.coyote.ContainerThreadMarker; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; -import org.apache.tomcat.util.net.DispatchType; import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; @@ -110,15 +108,18 @@ public class UpgradeServletOutputStream if (closed) { throw new IllegalStateException(sm.getString("upgrade.sos.write.closed")); } -// Container is responsible for first call to onWritePossible() but only -// need to do this if setting the listener for the first time. +// Container is responsible for first call to onWritePossible(). synchronized (registeredLock) { registered = true; -if (ContainerThreadMarker.isContainerThread()) { -socketWrapper.addDispatch(DispatchType.NON_BLOCKING_WRITE); -} else { -socketWrapper.registerWriteInterest(); -} +// Need to get writes onto a separate thread as long as WebSocket +// uses Servlet non-blocking I/O as onOpen can throw an error which +// closes the WebSocket connection. That uses a blocking write which +// means onwWritePossible needs to be on a separate thread to clear +// the latch used in the blocking write. If +// socketWrapper.addDispatch() was used the current thread would +// block on the write and would not process the dispatch until the +// latch timed out triggering more errors. +socketWrapper.registerWriteInterest(); } this.listener = listener; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661521 - in /tomcat/trunk/java/org/apache/tomcat/websocket/server: WsHttpUpgradeHandler.java WsRemoteEndpointImplServer.java
Author: markt Date: Sun Feb 22 18:49:56 2015 New Revision: 1661521 URL: http://svn.apache.org/r1661521 Log: Now need to close both streams Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1661521&r1=1661520&r2=1661521&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Sun Feb 22 18:49:56 2015 @@ -122,7 +122,7 @@ public class WsHttpUpgradeHandler implem t.setContextClassLoader(applicationClassLoader); try { WsRemoteEndpointImplServer wsRemoteEndpointServer = -new WsRemoteEndpointImplServer(sos, webSocketContainer); +new WsRemoteEndpointImplServer(sis, sos, webSocketContainer); wsSession = new WsSession(ep, wsRemoteEndpointServer, webSocketContainer, handshakeRequest.getRequestURI(), handshakeRequest.getParameterMap(), Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java?rev=1661521&r1=1661520&r2=1661521&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer.java Sun Feb 22 18:49:56 2015 @@ -24,6 +24,7 @@ import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ExecutorService; +import javax.servlet.ServletInputStream; import javax.servlet.ServletOutputStream; import javax.websocket.SendHandler; import javax.websocket.SendResult; @@ -49,6 +50,7 @@ public class WsRemoteEndpointImplServer private static final Queue onResultRunnables = new ConcurrentLinkedQueue<>(); +private final ServletInputStream sis; private final ServletOutputStream sos; private final WsWriteTimeout wsWriteTimeout; private final ExecutorService executorService; @@ -59,7 +61,9 @@ public class WsRemoteEndpointImplServer private volatile boolean close; -public WsRemoteEndpointImplServer(ServletOutputStream sos, WsServerContainer serverContainer) { +public WsRemoteEndpointImplServer(ServletInputStream sis, ServletOutputStream sos, +WsServerContainer serverContainer) { +this.sis = sis; this.sos = sos; this.wsWriteTimeout = serverContainer.getTimeout(); this.executorService = serverContainer.getExecutorService(); @@ -147,6 +151,13 @@ public class WsRemoteEndpointImplServer } catch (IOException e) { if (log.isInfoEnabled()) { log.info(sm.getString("wsRemoteEndpointServer.closeFailed"), e); +} +} +try { +sis.close(); +} catch (IOException e) { +if (log.isInfoEnabled()) { +log.info(sm.getString("wsRemoteEndpointServer.closeFailed"), e); } } wsWriteTimeout.unregister(this); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661519 - in /tomcat/trunk/java/org/apache/tomcat/websocket/server: WsFrameServer.java WsHttpUpgradeHandler.java
Author: markt Date: Sun Feb 22 18:49:47 2015 New Revision: 1661519 URL: http://svn.apache.org/r1661519 Log: Align WebSocket impl with changes to upgrade end-of-stream handling Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java?rev=1661519&r1=1661518&r2=1661519&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFrameServer.java Sun Feb 22 18:49:47 2015 @@ -16,7 +16,6 @@ */ package org.apache.tomcat.websocket.server; -import java.io.EOFException; import java.io.IOException; import javax.servlet.ServletInputStream; @@ -50,12 +49,9 @@ public class WsFrameServer extends WsFra // Fill up the input buffer with as much data as we can int read = sis.read( inputBuffer, writePos, inputBuffer.length - writePos); -if (read == 0) { +if (read <= 0) { return; } -if (read == -1) { -throw new EOFException(); -} writePos += read; processInputBuffer(); } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1661519&r1=1661518&r2=1661519&view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Sun Feb 22 18:49:47 2015 @@ -218,8 +218,7 @@ public class WsHttpUpgradeHandler implem @Override public void onAllDataRead() { -// Will never happen with WebSocket -throw new IllegalStateException(); +// NO-OP } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661522 - /tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
Author: markt Date: Sun Feb 22 18:50:01 2015 New Revision: 1661522 URL: http://svn.apache.org/r1661522 Log: Update unit test to take account of recent changes to upgared behaviour in light of EG discussions. Modified: tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java Modified: tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java?rev=1661522&r1=1661521&r2=1661522&view=diff == --- tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java (original) +++ tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java Sun Feb 22 18:50:01 2015 @@ -54,12 +54,16 @@ public class TestUpgrade extends TomcatB @Test public void testSimpleUpgradeBlocking() throws Exception { -doUpgrade(EchoBlocking.class); +UpgradeConnection uc = doUpgrade(EchoBlocking.class); +uc.shutdownInput(); +uc.shutdownOutput(); } @Test public void testSimpleUpgradeNonBlocking() throws Exception { -doUpgrade(EchoNonBlocking.class); +UpgradeConnection uc = doUpgrade(EchoNonBlocking.class); +uc.shutdownInput(); +uc.shutdownOutput(); } @Test @@ -122,9 +126,9 @@ public class TestUpgrade extends TomcatB private void doTestMessages ( Class upgradeHandlerClass) throws Exception { -UpgradeConnection conn = doUpgrade(upgradeHandlerClass); -PrintWriter pw = new PrintWriter(conn.getWriter()); -BufferedReader reader = conn.getReader(); +UpgradeConnection uc = doUpgrade(upgradeHandlerClass); +PrintWriter pw = new PrintWriter(uc.getWriter()); +BufferedReader reader = uc.getReader(); pw.println(MESSAGE); pw.flush(); @@ -134,12 +138,16 @@ public class TestUpgrade extends TomcatB pw.println(MESSAGE); pw.flush(); +uc.shutdownOutput(); + // Note: BufferedReader.readLine() strips new lines // ServletInputStream.readLine() does not strip new lines String response = reader.readLine(); Assert.assertEquals(MESSAGE, response); response = reader.readLine(); Assert.assertEquals(MESSAGE, response); + +uc.shutdownInput(); } @@ -164,30 +172,26 @@ public class TestUpgrade extends TomcatB socket.setSoTimeout(5000); -InputStream is = socket.getInputStream(); -OutputStream os = socket.getOutputStream(); - -BufferedReader reader = new BufferedReader(new InputStreamReader(is)); -Writer writer = new OutputStreamWriter(os); +UpgradeConnection uc = new UpgradeConnection(socket); -writer.write("GET / HTTP/1.1" + CRLF); -writer.write("Host: whatever" + CRLF); -writer.write(CRLF); -writer.flush(); +uc.getWriter().write("GET / HTTP/1.1" + CRLF); +uc.getWriter().write("Host: whatever" + CRLF); +uc.getWriter().write(CRLF); +uc.getWriter().flush(); -String status = reader.readLine(); +String status = uc.getReader().readLine(); Assert.assertNotNull(status); Assert.assertEquals("101", getStatusCode(status)); // Skip the remaining response headers -String line = reader.readLine(); +String line = uc.getReader().readLine(); while (line != null && line.length() > 0) { // Skip -line = reader.readLine(); +line = uc.getReader().readLine(); } -return new UpgradeConnection(writer, reader); +return uc; } private static class UpgradeServlet extends HttpServlet { @@ -209,10 +213,24 @@ public class TestUpgrade extends TomcatB } private static class UpgradeConnection { +private final Socket socket; private final Writer writer; private final BufferedReader reader; -public UpgradeConnection(Writer writer, BufferedReader reader) { +public UpgradeConnection(Socket socket) { +this.socket = socket; +InputStream is; +OutputStream os; +try { +is = socket.getInputStream(); +os = socket.getOutputStream(); +} catch (IOException ioe) { +throw new IllegalArgumentException(ioe); +} + +BufferedReader reader = new BufferedReader(new InputStreamReader(is)); +Writer writer = new OutputStreamWriter(os); + this.writer = writer; this.reader = reader; } @@ -224,6 +242,15 @@ public class TestUpgrade extends TomcatB public BufferedReader getReader() { return reader; } + +public void shutdownOutput() throws IOException { +writer.flush(); +so
svn commit: r1661517 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AprEndpoint.java Nio2Endpoint.java NioEndpoint.java
Author: markt Date: Sun Feb 22 18:49:37 2015 New Revision: 1661517 URL: http://svn.apache.org/r1661517 Log: Update I/O implementations to support returning -1 for end of stream. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1661517&r1=1661516&r2=1661517&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Sun Feb 22 18:49:37 2015 @@ -2495,7 +2495,7 @@ public class AprEndpoint extends Abstrac return 0; } } else if (-result == Status.APR_EOF) { -throw new EOFException(sm.getString("socket.apr.clientAbort")); +return -1; } else if ((OS.IS_WIN32 || OS.IS_WIN64) && (-result == Status.APR_OS_START_SYSERR + 10053)) { // 10053 on Windows is connection aborted 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=1661517&r1=1661516&r2=1661517&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Sun Feb 22 18:49:37 2015 @@ -1064,7 +1064,7 @@ public class Nio2Endpoint extends Abstra } else if (nRead == 0 && !block) { readInterest = true; } else if (nRead == -1) { -throw new EOFException(); +return -1; } if (log.isDebugEnabled()) { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1661517&r1=1661516&r2=1661517&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Sun Feb 22 18:49:37 2015 @@ -1438,8 +1438,7 @@ public class NioEndpoint extends Abstrac leftToWrite -= nRead; } } else if (nRead == -1) { -// TODO i18n -throw new EOFException(); +return -1; } return len - leftToWrite; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661513 - /tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java
Author: markt Date: Sun Feb 22 18:49:14 2015 New Revision: 1661513 URL: http://svn.apache.org/r1661513 Log: Remove call to awaitBytes from longPoll for NIO2 as it could trigger double registrations Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java?rev=1661513&r1=1661512&r2=1661513&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Protocol.java Sun Feb 22 18:49:14 2015 @@ -16,8 +16,6 @@ */ package org.apache.coyote.http11; -import java.nio.channels.ReadPendingException; - import org.apache.coyote.Processor; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -152,16 +150,6 @@ public class Http11Nio2Protocol extends if (processor.isAsync()) { socket.setAsync(true); ((Nio2Endpoint) getProtocol().getEndpoint()).addTimeout(socket); -} else if (processor.isUpgrade()) { -if (((Nio2SocketWrapper) socket).isUpgradeInit()) { -try { -((Nio2SocketWrapper) socket).awaitBytes(); -} catch (ReadPendingException e) { -// Ignore, the initial state after upgrade is -// impossible to predict, and a read must be pending -// to get a first notification -} -} } else { // Either: // - this is an upgraded connection - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1661514 - in /tomcat/trunk/java/org/apache/coyote/http11/upgrade: LocalStrings.properties UpgradeProcessor.java UpgradeServletInputStream.java UpgradeServletOutputStream.java
Author: markt Date: Sun Feb 22 18:49:22 2015 New Revision: 1661514 URL: http://svn.apache.org/r1661514 Log: isCloseRequired -> Closed Align behaviour of methods with closed state Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties?rev=1661514&r1=1661513&r2=1661514&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/LocalStrings.properties Sun Feb 22 18:49:22 2015 @@ -25,11 +25,13 @@ upgrade.sis.isReady.ise=It is illegal to upgrade.sis.onErrorFail=onError processing for the registered ReadListener triggered this further error which was swallowed upgrade.sis.readListener.null=It is illegal to pass null to setReadListener() upgrade.sis.readListener.set=It is illegal to call setReadListener() more than once for the same upgraded connection +upgrade.sis.read.closed=The InputStream has been closed upgrade.sis.read.ise=It is illegal to call any of the read() methods in non-blocking mode without first checking that there is data available by calling isReady() upgrade.sos.errorCloseFail=Failed to close OutputStream cleanly after a previous error upgrade.sos.canWrite.ise=It is illegal to call canWrite() when the ServletOutputStream is not in non-blocking mode (i.e. setWriteListener() must be called first) upgrade.sos.onErrorFail=onError processing for the registered WriteListener triggered this further error which was swallowed upgrade.sos.writeListener.null=It is illegal to pass null to setWriteListener() upgrade.sos.writeListener.set=It is illegal to call setWriteListener() more than once for the same upgraded connection +upgrade.sos.write.closed=The OutputStream has been closed upgrade.sos.write.ise=It is illegal to call any of the write() methods in non-blocking mode without first checking that there is space available by calling isReady() Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java?rev=1661514&r1=1661513&r2=1661514&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java Sun Feb 22 18:49:22 2015 @@ -123,12 +123,12 @@ public class UpgradeProcessor implements } return SocketState.CLOSED; } -if (upgradeServletInputStream.isCloseRequired() || -upgradeServletOutputStream.isCloseRequired()) { +if (upgradeServletInputStream.isClosed() || +upgradeServletOutputStream.isClosed()) { if (log.isDebugEnabled()) { log.debug(sm.getString("upgradeProcessor.requiredClose", - Boolean.valueOf(upgradeServletInputStream.isCloseRequired()), - Boolean.valueOf(upgradeServletOutputStream.isCloseRequired(; +Boolean.valueOf(upgradeServletInputStream.isClosed()), + Boolean.valueOf(upgradeServletOutputStream.isClosed(; } return SocketState.CLOSED; } Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java?rev=1661514&r1=1661513&r2=1661514&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java Sun Feb 22 18:49:22 2015 @@ -35,7 +35,7 @@ public class UpgradeServletInputStream e private final SocketWrapperBase socketWrapper; -private volatile boolean closeRequired = false; +private volatile boolean closed = false; // Start in blocking-mode private volatile Boolean ready = Boolean.TRUE; private volatile ReadListener listener = null; @@ -66,6 +66,10 @@ public class UpgradeServletInputStream e sm.getString("upgrade.sis.isReady.ise")); } +if (closed) { +return false; +} + // If we already know the current state,
svn commit: r1661516 - /tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java
Author: markt Date: Sun Feb 22 18:49:32 2015 New Revision: 1661516 URL: http://svn.apache.org/r1661516 Log: Align ServletInputStream with required behaviour as clarified by recent EG discussions. Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java?rev=1661516&r1=1661515&r2=1661516&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletInputStream.java Sun Feb 22 18:49:32 2015 @@ -38,6 +38,7 @@ public class UpgradeServletInputStream e private final SocketWrapperBase socketWrapper; private volatile boolean closed = false; +private volatile boolean eof = false; // Start in blocking-mode private volatile Boolean ready = Boolean.TRUE; private volatile ReadListener listener = null; @@ -55,9 +56,7 @@ public class UpgradeServletInputStream e throw new IllegalStateException( sm.getString("upgrade.sis.isFinished.ise")); } -// The only way to finish an HTTP Upgrade connection is to close the -// socket. -return false; +return eof; } @@ -68,7 +67,7 @@ public class UpgradeServletInputStream e sm.getString("upgrade.sis.isReady.ise")); } -if (closed) { +if (eof || closed) { return false; } @@ -147,7 +146,11 @@ public class UpgradeServletInputStream e preReadChecks(); try { -return socketWrapper.read(listener == null, b, off, len); +int result = socketWrapper.read(listener == null, b, off, len); +if (result == -1) { +eof = true; +} +return result; } catch (IOException ioe) { close(); throw ioe; @@ -158,6 +161,7 @@ public class UpgradeServletInputStream e @Override public void close() throws IOException { +eof = true; closed = true; } @@ -188,9 +192,7 @@ public class UpgradeServletInputStream e if (result == 0) { return -1; } else if (result == -1) { -// Will never happen with a network socket. An IOException will be -// thrown when the client closes the connection. -// Echo back the -1 to be safe. +eof = true; return -1; } else { return b[0] & 0xFF; @@ -207,7 +209,12 @@ public class UpgradeServletInputStream e ClassLoader originalClassLoader = thread.getContextClassLoader(); try { thread.setContextClassLoader(applicationLoader); -listener.onDataAvailable(); +if (!eof) { +listener.onDataAvailable(); +} +if (eof) { +listener.onAllDataRead(); +} } catch (Throwable t) { ExceptionUtils.handleThrowable(t); onError(t); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [GUMP@vmgump]: Project tomcat-trunk-test-nio (in module tomcat-trunk) failed
On 22/02/2015 10:13, Mark Thomas wrote: > On 22/02/2015 03:58, Bill Barker wrote: > > > >>[concat] Testsuites with failed tests: >>[concat] >> TEST-org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser.NIO.txt > > Am I missing something here? A couple of times I have made some changes > which I thought fixed this (i.e. the test passes when I run the test > from the command line on the VMGump box) only for the test failures to > continue. > > The OpenSSL code doesn't seem to be changing that quickly. > > I'm prepared to believe I'm doing something wrong but it has happened a > couple of times now. Any suggestions welcome. > > In the meantime, I'll take another look at this. The tests appear to be behaving as if the trunk tests are running with OpenSSL 1.0.2 so I've tried this to fix it: http://svn.apache.org/viewvc?view=revision&revision=1661471 Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [GUMP@vmgump]: Project tomcat-trunk-test-nio (in module tomcat-trunk) failed
On 22/02/2015 03:58, Bill Barker wrote: >[concat] Testsuites with failed tests: >[concat] > TEST-org.apache.tomcat.util.net.jsse.openssl.TestOpenSSLCipherConfigurationParser.NIO.txt Am I missing something here? A couple of times I have made some changes which I thought fixed this (i.e. the test passes when I run the test from the command line on the VMGump box) only for the test failures to continue. The OpenSSL code doesn't seem to be changing that quickly. I'm prepared to believe I'm doing something wrong but it has happened a couple of times now. Any suggestions welcome. In the meantime, I'll take another look at this. >[concat] TEST-org.apache.tomcat.websocket.pojo.TestPojoEndpointBase.NIO.txt I think I have a fix for this. I plan to confirm this once I have the OpenSSL issues addressed. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org