Re: [VOTE] Release Apache Tomcat 8.0.0-RC9
2013/12/18 Mark Thomas ma...@apache.org The proposed Apache Tomcat 8.0.0 release candidate 9 is now available for voting. Given this is a release candidate I am working on the basis that it is equivalent to an alpha. The main changes since RC5 are: - Better handling of generic types in the WebSocket 1.0 implementation - Refactor resource handling for the class loader - Add Cobertura support to the unit tests - Remove anti-Jar locking feature and replace it with open stream tracking - Update to a post Commons Pool 2.0 release snapshot - Complete refactoring of TLD handling including caching of parsed TLDs - More consistent handling of XML validation options - Much more detailed visibility of DBCP connections pools in JMX - Better organisation of JMX beans in the default JConsole view - Performance improvements - Numerous bug fixes It can be obtained from: https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.0-RC9/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-063/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tags/TOMCAT_8_0_0_RC9/ The proposed 8.0.0-RC9 release is: [ ] Broken - do not release [X] Alpha - go ahead and release as 8.0.0-RC9 alpha Rémy
Re: svn commit: r1551729 - /tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java
On 17.12.2013 23:06, sebb wrote: On 17 December 2013 21:43, rj...@apache.org wrote: Author: rjung Date: Tue Dec 17 21:43:02 2013 New Revision: 1551729 URL: http://svn.apache.org/r1551729 Log: Fix occasional test failure. The WebSocketClient first read headers via a BufferedReader, then tried to read the body via the underlying InputStream. Depending on the structure of the incoming packets reading the body failed because some bytes were already buffered in the reader and no longer available by the stream. The switch between rader and stream was motivated, because the decoding also had to switch from ISO-8859-1 (headers) to UTF-8 (body). We now simulate a rudimentary reader which always reads from the stream and allows to change the decoding charset while reading. It would be helpful to include this log message in the code comments. The commit log is basically ephemeral - it should (only) document why the commit was made. In this case Fix occasional test failure. would be sufficient. Comments that may be needed to understand why the code behaves in a particular way belong as comments in the code. After all, the mission of the ASF is to release source, which should be able to stand on its own. That's why I added the comment +/* + * This is not a real reader but just a thin wrapper around + * an input stream that allows to switch encoding during + * reading. + * An example is reading headers using ISO-8859-1 and a body + * using UTF-8. + * The class is not thread-safe and not well-performing. + */ to the class. IMHO here it doesn't make sense to add an explanation for the old no longer existing bug. IMHO it is a general anti-pattern not especially related to this test class so it doesn't make sense to document any past bugs in the code. Regards, Rainer Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java?rev=1551729r1=1551728r2=1551729view=diff == --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/websocket/TestWebSocket.java Tue Dec 17 21:43:02 2013 @@ -16,13 +16,11 @@ */ package org.apache.catalina.websocket; -import java.io.BufferedReader; +import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.io.Reader; import java.io.Writer; import java.net.InetSocketAddress; import java.net.Socket; @@ -382,12 +380,11 @@ public class TestWebSocket extends Tomca private static class WebSocketClient { private OutputStream os; -private InputStream is; private boolean isContinuation = false; final String encoding = ISO-8859-1; -private Socket socket ; -private Writer writer ; -private BufferedReader reader; +private Socket socket; +private Writer writer; +private CustomReader reader; public WebSocketClient(int port) { SocketAddress addr = new InetSocketAddress(localhost, port); @@ -397,9 +394,7 @@ public class TestWebSocket extends Tomca socket.connect(addr, 1); os = socket.getOutputStream(); writer = new OutputStreamWriter(os, encoding); -is = socket.getInputStream(); -Reader r = new InputStreamReader(is, encoding); -reader = new BufferedReader(r); +reader = new CustomReader(socket.getInputStream(), encoding); } catch (Exception e) { throw new RuntimeException(e); } @@ -449,28 +444,100 @@ public class TestWebSocket extends Tomca } private String readMessage() throws IOException { -ByteChunk bc = new ByteChunk(125); -CharChunk cc = new CharChunk(125); // Skip first byte -is.read(); +reader.read(); // Get payload length -int len = is.read() 0x7F; +int len = reader.read() 0x7F; assertTrue(len 126); // Read payload -int read = 0; -while (read len) { -read = read + is.read(bc.getBytes(), read, len - read); +reader.setEncoding(UTF-8); +return reader.read(len); +} +/* + * This is not a real reader but just a thin wrapper around + * an input stream that allows to switch encoding during
svn commit: r1551885 - /tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Author: kkolinko Date: Wed Dec 18 08:53:56 2013 New Revision: 1551885 URL: http://svn.apache.org/r1551885 Log: Followup to r1551495: Fix typo in changelog. Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1551885r1=1551884r2=1551885view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Dec 18 08:53:56 2013 @@ -105,7 +105,7 @@ received the codeMapMessage.MSG_STOP/code. (kfujino) /fix fix -Add time stamp to codeGET_ALL_SESSION/code message. (kfujino) +Add time stamp to codeGET_ALL_SESSIONS/code message. (kfujino) /fix /changelog /subsection - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 55903] New: tomcat7-mango service on server is stopped unexpectedly and there is a java core file
https://issues.apache.org/bugzilla/show_bug.cgi?id=55903 Bug ID: 55903 Summary: tomcat7-mango service on server is stopped unexpectedly and there is a java core file Product: Tomcat 7 Version: 7.0.37 Hardware: PC OS: Linux Status: NEW Severity: critical Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: ekh...@mera.ru Created attachment 31130 -- https://issues.apache.org/bugzilla/attachment.cgi?id=31130action=edit log file Tomcat unexpectedly stopped after several hours traffic we are using TC_37 with lib tcnative-1.1.28 as recomended in bug https://issues.apache.org/bugzilla/show_bug.cgi?id=55588 but we're still experiencing the following error: # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x, pid=7770, tid=935426960 # # JRE version: 6.0_43-b01 # Java VM: Java HotSpot(TM) Server VM (20.14-b01 mixed mode linux-x86 ) # Problematic frame: # C 0x # # An error report file with more information is saved as: # /tmp/hs_err_pid7770.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # please give me know if it is worth to attach core file? -- 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 55903] tomcat7-mango service on server is stopped unexpectedly and there is a java core file
https://issues.apache.org/bugzilla/show_bug.cgi?id=55903 Mark Thomas ma...@apache.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #1 from Mark Thomas ma...@apache.org --- You need to upgrade to tcnative-1.1.29 and the latest (or at least 7.0.47) Tomcat 7.0.x release. -- 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 55903] tomcat7-mango service on server is stopped unexpectedly and there is a java core file
https://issues.apache.org/bugzilla/show_bug.cgi?id=55903 --- Comment #2 from Ekaterina ekh...@mera.ru --- hello Mark, Thank you for so quick answer. Sorry for mistype. we are using tcnative-1.1.29 and TC_37. please give me know if it is possible to solve this issue without upgrade on 7.0.47. We have no possibility to do this upgrade now. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat 8.0.0-RC9
On 18/12/2013 00:59, Mark Thomas wrote: The proposed Apache Tomcat 8.0.0 release candidate 9 is now available for voting. Given this is a release candidate I am working on the basis that it is equivalent to an alpha. The main changes since RC5 are: - Better handling of generic types in the WebSocket 1.0 implementation - Refactor resource handling for the class loader - Add Cobertura support to the unit tests - Remove anti-Jar locking feature and replace it with open stream tracking - Update to a post Commons Pool 2.0 release snapshot - Complete refactoring of TLD handling including caching of parsed TLDs - More consistent handling of XML validation options - Much more detailed visibility of DBCP connections pools in JMX - Better organisation of JMX beans in the default JConsole view - Performance improvements - Numerous bug fixes It can be obtained from: https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.0-RC9/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-063/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tags/TOMCAT_8_0_0_RC9/ The proposed 8.0.0-RC9 release is: [ ] Broken - do not release [X] Alpha - go ahead and release as 8.0.0-RC9 alpha Unit tests pass on 64-bit Windows, Linux and OSX. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Current sporadic test suite failures
On 17.12.2013 11:01, Rainer Jung wrote: A) TC 7 === 3) org.apache.tomcat.websocket.TestWsSubprotocols - 1 x bio, 1 x nio Failure: Testcase: testWsSubprotocols took 4.005 sec Caused an ERROR null java.lang.NullPointerException at org.apache.tomcat.websocket.TestWsSubprotocols.testWsSubprotocols(TestWsSubprotocols.java:89) Logs: Nothing interesting Next steps: I'll add some debug logs locally to TestWsSubprotocols and see how far I get. Added logging shows: - Most often the sequence is SubProtocolsEndpoint.processOpen(), then the subprotocol assertion check which comes after wsContainer.connectToServer() and wsSession.isOpen() and finally another SubProtocolsEndpoint.processOpen(). In this case the test succeeds. - Rarely the assertion check comes after both SubProtocolsEndpoint.processOpen() calls, then the test also succeeds - Rarely the assertion check comes before the two calls to SubProtocolsEndpoint.processOpen(), then the test fails with NPE, because SubProtocolsEndpoint.subprotocols wasn't assigned yet (that happens in SubProtocolsEndpoint.processOpen()). Would it be OK to add a short sleep before the assertion or does that changed order of execution in fact indicate a server side problem instead of a test impl problem? Regards, Rainer - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Code signing trial - volunteers wanted
On 18.12.2013 01:24, Mark Thomas wrote: The infrastructure team is about to start a trial of a code signing service provided by Symantec. Tomcat is going to be the guinea pig for this trial. As part of the trial we want to test the mapping of the roles in the service to the roles at the ASF. We are therefore looking for two volunteers. Both volunteers need to be Tomcat committers. At least one of the volunteers needs to be a PMC member. My outline plan at the moment is something like: - Set up the test signing service - Figure out how to sign our Windows installer - Script the process - Get volunteer one (who will have RM permissions) to do a test release - Get volunteer two (who will have PMC permissions) to approve the test release for signing The idea is that any committer can be a release manager and upload a release for signing but only a PMC member can approve the upload for signing. Figuring out if that process is workable is part of the trial. If you like, I can try the approval step. It depends a bit on the infrastructure needed and during the next 2 weeks I might not always be available. Regards, Rainer - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat 8.0.0-RC9
On Dec 17, 2013, at 7:59 PM, Mark Thomas ma...@apache.org wrote: The proposed Apache Tomcat 8.0.0 release candidate 9 is now available for voting. Given this is a release candidate I am working on the basis that it is equivalent to an alpha. The main changes since RC5 are: - Better handling of generic types in the WebSocket 1.0 implementation - Refactor resource handling for the class loader - Add Cobertura support to the unit tests - Remove anti-Jar locking feature and replace it with open stream tracking - Update to a post Commons Pool 2.0 release snapshot - Complete refactoring of TLD handling including caching of parsed TLDs - More consistent handling of XML validation options - Much more detailed visibility of DBCP connections pools in JMX - Better organisation of JMX beans in the default JConsole view - Performance improvements - Numerous bug fixes It can be obtained from: https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.0-RC9/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-063/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tags/TOMCAT_8_0_0_RC9/ The proposed 8.0.0-RC9 release is: [ ] Broken - do not release [X] Alpha - go ahead and release as 8.0.0-RC9 alpha Dan Cheers, Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551933 - /tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
Author: rjung Date: Wed Dec 18 13:16:54 2013 New Revision: 1551933 URL: http://svn.apache.org/r1551933 Log: - Add a 100 ms sleep to allow for the server side to handle the request the client generated before checking for the side-effects - Clean up subprotocols at end of test to keep the two tests independent of each other Modified: tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java Modified: tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java?rev=1551933r1=1551932r2=1551933view=diff == --- tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java Wed Dec 18 13:16:54 2013 @@ -72,11 +72,17 @@ public class TestWsSubprotocols extends .build(), new URI(ws://localhost: + getPort() + SubProtocolsEndpoint.PATH_BASIC)); +try { +Thread.sleep(100); +} catch (InterruptedException e) { +// Ignore +} Assert.assertTrue(wsSession.isOpen()); if (wsSession.getNegotiatedSubprotocol() != null) { Assert.assertTrue(wsSession.getNegotiatedSubprotocol().isEmpty()); } wsSession.close(); +SubProtocolsEndpoint.recycle(); wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder @@ -84,11 +90,17 @@ public class TestWsSubprotocols extends .build(), new URI(ws://localhost: + getPort() + SubProtocolsEndpoint.PATH_BASIC)); +try { +Thread.sleep(100); +} catch (InterruptedException e) { +// Ignore +} Assert.assertTrue(wsSession.isOpen()); Assert.assertEquals(sp2, wsSession.getNegotiatedSubprotocol()); Assert.assertArrayEquals(new String[]{sp1,sp2}, SubProtocolsEndpoint.subprotocols.toArray(new String[2])); wsSession.close(); +SubProtocolsEndpoint.recycle(); } @ServerEndpoint(value = /echo, subprotocols = {sp1,sp2}) @@ -102,6 +114,10 @@ public class TestWsSubprotocols extends subprotocols = ((ServerEndpointConfig)epc).getSubprotocols(); } +public static void recycle() { +subprotocols = null; +} + } public static class Config extends WsContextListener { @@ -118,4 +134,4 @@ public class TestWsSubprotocols extends } } } -} \ No newline at end of file +} - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Current sporadic test suite failures
On 18.12.2013 13:12, Rainer Jung wrote: On 17.12.2013 11:01, Rainer Jung wrote: A) TC 7 === 3) org.apache.tomcat.websocket.TestWsSubprotocols - 1 x bio, 1 x nio Failure: Testcase: testWsSubprotocols took 4.005 sec Caused an ERROR null java.lang.NullPointerException at org.apache.tomcat.websocket.TestWsSubprotocols.testWsSubprotocols(TestWsSubprotocols.java:89) Added logging shows: - Most often the sequence is SubProtocolsEndpoint.processOpen(), then the subprotocol assertion check which comes after wsContainer.connectToServer() and wsSession.isOpen() and finally another SubProtocolsEndpoint.processOpen(). In this case the test succeeds. - Rarely the assertion check comes after both SubProtocolsEndpoint.processOpen() calls, then the test also succeeds - Rarely the assertion check comes before the two calls to SubProtocolsEndpoint.processOpen(), then the test fails with NPE, because SubProtocolsEndpoint.subprotocols wasn't assigned yet (that happens in SubProtocolsEndpoint.processOpen()). Would it be OK to add a short sleep before the assertion or does that changed order of execution in fact indicate a server side problem instead of a test impl problem? OK, it is expected that sometimes the main (client) thread proceeds to fast and the server side hasn't yet done what the client expects, so the subprotocols side-effect that is used to check for success hasn't yet materialized. Adding a 100ms sleep seems to be long enough (probably in combination with the associated thread yield) to allow the server side to make progress. I also added a reset for the subprotocols field to the end of the two tests, so that the first test doesn't influence the result of the second (which was actually the case for most runs here). So this was also only a problem in the test impl. Regards, Rainer - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Code signing trial - volunteers wanted
On 18/12/2013 13:05, Rainer Jung wrote: On 18.12.2013 01:24, Mark Thomas wrote: The infrastructure team is about to start a trial of a code signing service provided by Symantec. Tomcat is going to be the guinea pig for this trial. As part of the trial we want to test the mapping of the roles in the service to the roles at the ASF. We are therefore looking for two volunteers. Both volunteers need to be Tomcat committers. At least one of the volunteers needs to be a PMC member. My outline plan at the moment is something like: - Set up the test signing service - Figure out how to sign our Windows installer - Script the process - Get volunteer one (who will have RM permissions) to do a test release - Get volunteer two (who will have PMC permissions) to approve the test release for signing The idea is that any committer can be a release manager and upload a release for signing but only a PMC member can approve the upload for signing. Figuring out if that process is workable is part of the trial. If you like, I can try the approval step. It depends a bit on the infrastructure needed and during the next 2 weeks I might not always be available. Thanks. I suspect things won't progress that fast any way. This is more likely to be a task for January. There is a web based GUI and an API. Part of the test is to figure out which works best for us but either way the local infrastructure requirements should be minimal. Cheers, Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: Current sporadic test suite failures
On 18/12/2013 13:20, Rainer Jung wrote: On 18.12.2013 13:12, Rainer Jung wrote: On 17.12.2013 11:01, Rainer Jung wrote: A) TC 7 === 3) org.apache.tomcat.websocket.TestWsSubprotocols - 1 x bio, 1 x nio Failure: Testcase: testWsSubprotocols took 4.005 sec Caused an ERROR null java.lang.NullPointerException at org.apache.tomcat.websocket.TestWsSubprotocols.testWsSubprotocols(TestWsSubprotocols.java:89) Added logging shows: - Most often the sequence is SubProtocolsEndpoint.processOpen(), then the subprotocol assertion check which comes after wsContainer.connectToServer() and wsSession.isOpen() and finally another SubProtocolsEndpoint.processOpen(). In this case the test succeeds. - Rarely the assertion check comes after both SubProtocolsEndpoint.processOpen() calls, then the test also succeeds - Rarely the assertion check comes before the two calls to SubProtocolsEndpoint.processOpen(), then the test fails with NPE, because SubProtocolsEndpoint.subprotocols wasn't assigned yet (that happens in SubProtocolsEndpoint.processOpen()). Would it be OK to add a short sleep before the assertion or does that changed order of execution in fact indicate a server side problem instead of a test impl problem? OK, it is expected that sometimes the main (client) thread proceeds to fast and the server side hasn't yet done what the client expects, so the subprotocols side-effect that is used to check for success hasn't yet materialized. Adding a 100ms sleep seems to be long enough (probably in combination with the associated thread yield) to allow the server side to make progress. Based on previous experience a fixed sleep approach can be fragile. It often continued to fail on heavily loaded systems (like the CI system often is). The wait up to ~5 seconds with a while loop that tests every 10/50/100ms (take your pick) approach was more robust and tended to result in more stable test results. I also added a reset for the subprotocols field to the end of the two tests, so that the first test doesn't influence the result of the second (which was actually the case for most runs here). Good idea. So this was also only a problem in the test impl. Agreed. Thanks for looking into this. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551952 - /tomcat/tc6.0.x/trunk/webapps/docs/config/context.xml
Author: markt Date: Wed Dec 18 14:25:40 2013 New Revision: 1551952 URL: http://svn.apache.org/r1551952 Log: CTR Docs only Order attributes alphabetically Move TLD attributes to the common section since they are part of the Context interface definition Modified: tomcat/tc6.0.x/trunk/webapps/docs/config/context.xml Modified: tomcat/tc6.0.x/trunk/webapps/docs/config/context.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/config/context.xml?rev=1551952r1=1551951r2=1551952view=diff == --- tomcat/tc6.0.x/trunk/webapps/docs/config/context.xml (original) +++ tomcat/tc6.0.x/trunk/webapps/docs/config/context.xml Wed Dec 18 14:25:40 2013 @@ -337,18 +337,34 @@ be overridden by the strongemptySessionPath/strong attribute on the connector used to access this Context./p /attribute + + attribute name=tldNamespaceAware required=false +pIf the value of this flag is codetrue/code, the TLD files +XML validation will be namespace-aware. If you turn this flag on, +you should probably also turn codetldValidation/code on. The +default value for this flag is codefalse/code, and setting it +to true will incur a performance penalty. +/p + /attribute - attribute name=wrapperClass required=false -pJava class name of the codeorg.apache.catalina.Wrapper/code -implementation class that will be used for servlets managed by this -Context. If not specified, a standard default value will be used./p + attribute name=tldValidation required=false +pIf the value of this flag is codetrue/code, the TLD files +will be XML validated on context startup. The default value for +this flag is codefalse/code, and setting it to true will incur +a performance penalty./p /attribute - + attribute name=useHttpOnly required=false pShould the HttpOnly flag be set on session cookies to prevent client side script from accessing the session ID? Defaults to codefalse/code./p /attribute + + attribute name=wrapperClass required=false +pJava class name of the codeorg.apache.catalina.Wrapper/code +implementation class that will be used for servlets managed by this +Context. If not specified, a standard default value will be used./p + /attribute /attributes @@ -504,22 +520,6 @@ of the flag is codefalse/code./p /attribute - attribute name=tldNamespaceAware required=false -pIf the value of this flag is codetrue/code, the TLD files -XML validation will be namespace-aware. If you turn this flag on, -you should probably also turn codetldValidation/code on. The -default value for this flag is codefalse/code, and setting it -to true will incur a performance penalty. -/p - /attribute - - attribute name=tldValidation required=false -pIf the value of this flag is codetrue/code, the TLD files -will be XML validated on context startup. The default value for -this flag is codefalse/code, and setting it to true will incur -a performance penalty./p - /attribute - attribute name=unloadDelay required=false pNumber of ms that the container will wait for servlets to unload. If not specified, the default value is code2000/code ms./p - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 55905] New: Error message unhelpful when web.xml references a tld file that doesn't exist
https://issues.apache.org/bugzilla/show_bug.cgi?id=55905 Bug ID: 55905 Summary: Error message unhelpful when web.xml references a tld file that doesn't exist Product: Tomcat 7 Version: 7.0.47 Hardware: All OS: All Status: NEW Severity: normal Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: anthonygerrard+apache@gmail.com In your web-application web.xml add a taglib element but get the taglib-location wrong or forgot to include *.tld when packaging your archive jsp-config taglib taglib-urihttp://www.example.org/mytaglib/taglib-uri taglib-location/WEB-INF/wrong.tld/taglib-location /taglib /jsp-config Start you web-app. Expected: Get a helpful message like WARN org.apache.catalina.startup.TldConfig - Failed to process TLD with path [/WEB-INF/wrong.tld] and URI [http://www.example.org/mytaglib] java.io.FileNotFoundException: /WEB-INF/wrong.tld ... Actual: WARN org.apache.catalina.startup.TldConfig - Failed to process TLD with path [http://www.example.org/mytaglib] and URI [/WEB-INF/wrong.tld] java.net.MalformedURLException: null ... Note also that with the current error message the path is labelled at the URI and vice versa, adding to the confusion. -- 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: r1551953 - /tomcat/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
Author: rjung Date: Wed Dec 18 14:33:48 2013 New Revision: 1551953 URL: http://svn.apache.org/r1551953 Log: Reset test side-efect between test cases. Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java?rev=1551953r1=1551952r2=1551953view=diff == --- tomcat/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java (original) +++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java Wed Dec 18 14:33:48 2013 @@ -77,6 +77,7 @@ public class TestWsSubprotocols extends Assert.assertTrue(wsSession.getNegotiatedSubprotocol().isEmpty()); } wsSession.close(); +SubProtocolsEndpoint.recycle(); wsSession = wsContainer.connectToServer( TesterProgrammaticEndpoint.class, ClientEndpointConfig.Builder @@ -97,6 +98,7 @@ public class TestWsSubprotocols extends Assert.assertArrayEquals(new String[]{sp1,sp2}, SubProtocolsEndpoint.subprotocols.toArray(new String[2])); wsSession.close(); +SubProtocolsEndpoint.recycle(); } @ServerEndpoint(value = /echo, subprotocols = {sp1,sp2}) @@ -110,6 +112,10 @@ public class TestWsSubprotocols extends subprotocols = ((ServerEndpointConfig)epc).getSubprotocols(); } +public static void recycle() { +subprotocols = null; +} + } public static class Config extends WsContextListener { @@ -126,4 +132,4 @@ public class TestWsSubprotocols extends } } } -} \ No newline at end of file +} - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551955 - in /tomcat/tc7.0.x/trunk: ./ test/org/apache/tomcat/websocket/TestWsSubprotocols.java
Author: rjung Date: Wed Dec 18 14:38:35 2013 New Revision: 1551955 URL: http://svn.apache.org/r1551955 Log: Sync TestWsSubprotocols with trunk to prevent occasional test failures. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1524978,1551953 Modified: tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java?rev=1551955r1=1551954r2=1551955view=diff == --- tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/TestWsSubprotocols.java Wed Dec 18 14:38:35 2013 @@ -72,11 +72,6 @@ public class TestWsSubprotocols extends .build(), new URI(ws://localhost: + getPort() + SubProtocolsEndpoint.PATH_BASIC)); -try { -Thread.sleep(100); -} catch (InterruptedException e) { -// Ignore -} Assert.assertTrue(wsSession.isOpen()); if (wsSession.getNegotiatedSubprotocol() != null) { Assert.assertTrue(wsSession.getNegotiatedSubprotocol().isEmpty()); @@ -90,13 +85,16 @@ public class TestWsSubprotocols extends .build(), new URI(ws://localhost: + getPort() + SubProtocolsEndpoint.PATH_BASIC)); -try { -Thread.sleep(100); -} catch (InterruptedException e) { -// Ignore -} Assert.assertTrue(wsSession.isOpen()); Assert.assertEquals(sp2, wsSession.getNegotiatedSubprotocol()); +// Client thread might move faster than server. Wait for upto 5s for the +// subProtocols to be set +int count = 0; +while (count 50 SubProtocolsEndpoint.subprotocols == null) { +count++; +Thread.sleep(100); +} +Assert.assertNotNull(SubProtocolsEndpoint.subprotocols); Assert.assertArrayEquals(new String[]{sp1,sp2}, SubProtocolsEndpoint.subprotocols.toArray(new String[2])); wsSession.close(); @@ -106,7 +104,7 @@ public class TestWsSubprotocols extends @ServerEndpoint(value = /echo, subprotocols = {sp1,sp2}) public static class SubProtocolsEndpoint { public static String PATH_BASIC = /echo; -public static ListString subprotocols; +public static volatile ListString subprotocols; @OnOpen public void processOpen(@SuppressWarnings(unused) Session session, - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat 8.0.0-RC9
On 2013-12-17 7:59 PM, Mark Thomas wrote: The proposed 8.0.0-RC9 release is: [X] Broken - do not release [ ] Alpha - go ahead and release as 8.0.0-RC9 alpha Atmosphere stopped working with 8.0.0-RC9. With all previous RC from 1 to 7 it worked (didn't test 8) and websockets properly handled for this request https://gist.github.com/jfarcand/8023402 You can test it by downloading the .war from here http://goo.gl/36PSaz It seems this line: container.addEndpoint(ServerEndpointConfig.Builder.create(JSR356Endpoint.class, b.toString()).configurator(configurator).build()); has no effect anymore (see: http://goo.gl/POL9Ce). Ping me if you need more information. -- Jeanfrancois Cheers, Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551966 - /tomcat/tc6.0.x/trunk/java/org/apache/catalina/Context.java
Author: markt Date: Wed Dec 18 14:58:57 2013 New Revision: 1551966 URL: http://svn.apache.org/r1551966 Log: Better Javadoc Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/Context.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/Context.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/Context.java?rev=1551966r1=1551965r2=1551966view=diff == --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/Context.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/Context.java Wed Dec 18 14:58:57 2013 @@ -1100,63 +1100,72 @@ public interface Context extends Contain /** - * Get the server.xml context attribute's xmlNamespaceAware. - * @return true if namespace awarenes is enabled. + * Will the parsing of the web.xml file for this Context be performed by a + * namespace aware parser? * + * @return true if namespace awareness is enabled. */ public boolean getXmlNamespaceAware(); /** - * Get the server.xml context attribute's xmlValidation. - * @return true if validation is enabled. + * Will the parsing of the web.xml file for this Context be performed by a + * validating parser? * + * @return true if validation is enabled. */ public boolean getXmlValidation(); /** - * Set the validation feature of the XML parser used when - * parsing xml instances. - * @param xmlValidation true to enable xml instance validation + * Controls whether the parsing of the web.xml file for this Context will be + * performed by a validating parser. + * + * @param xmlValidation true to enable xml validation */ public void setXmlValidation(boolean xmlValidation); - /** - * Set the namespace aware feature of the XML parser used when - * parsing xml instances. +/** + * Controls whether the parsing of the web.xml file for this Context will be + * performed by a namespace aware parser. + * * @param xmlNamespaceAware true to enable namespace awareness */ public void setXmlNamespaceAware(boolean xmlNamespaceAware); /** - * Set the validation feature of the XML parser used when - * parsing tlds files. - * @param tldValidation true to enable xml instance validation + * Controls whether the parsing of *.tld files for this Context will be + * performed by a validating parser. + * + * @param tldValidation true to enable xml validation */ public void setTldValidation(boolean tldValidation); /** - * Get the validation feature of the XML parser used when - * parsing tlds files. + * Will the parsing of *.tld files for this Context be performed by a + * validating parser? + * * @return true if validation is enabled. */ public boolean getTldValidation(); /** - * Get the server.xml lt;hostgt; attribute's xmlNamespaceAware. - * @return true if namespace awarenes is enabled. + * Will the parsing of *.tld files for this Context be performed by a + * namespace aware parser? + * + * @return true if namespace awareness is enabled. */ public boolean getTldNamespaceAware(); /** - * Set the namespace aware feature of the XML parser used when - * parsing xml instances. + * Controls whether the parsing of *.tld files for this Context will be + * performed by a namespace aware parser. + * * @param tldNamespaceAware true to enable namespace awareness */ public void setTldNamespaceAware(boolean tldNamespaceAware); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551967 - /tomcat/tc6.0.x/trunk/
Author: markt Date: Wed Dec 18 15:00:38 2013 New Revision: 1551967 URL: http://svn.apache.org/r1551967 Log: Update mergeinfo Modified: tomcat/tc6.0.x/trunk/ (props changed) Propchange: tomcat/tc6.0.x/trunk/ -- Merged /tomcat/tc7.0.x/trunk:r1544469 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551975 - in /tomcat/tc6.0.x/trunk: ./ java/org/apache/catalina/core/StandardContext.java
Author: markt Date: Wed Dec 18 15:16:59 2013 New Revision: 1551975 URL: http://svn.apache.org/r1551975 Log: CTR: Javadoc + method re-ordering. No functional change. Modified: tomcat/tc6.0.x/trunk/ (props changed) tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Propchange: tomcat/tc6.0.x/trunk/ -- Merged /tomcat/tc7.0.x/trunk:r1544473 Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1551975r1=1551974r2=1551975view=diff == --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Wed Dec 18 15:16:59 2013 @@ -5,9 +5,9 @@ * 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. @@ -191,33 +191,33 @@ public class StandardContext */ private boolean antiJARLocking = false; - + /** * The antiResourceLocking flag for this Context. */ private boolean antiResourceLocking = false; - + /** * The set of application listener class names configured for this * application, in the order they were encountered in the web.xml file. */ private String applicationListeners[] = new String[0]; - + private final Object applicationListenersLock = new Object(); /** * The set of instantiated application event listener objects/code. */ -private transient Object applicationEventListenersObjects[] = +private transient Object applicationEventListenersObjects[] = new Object[0]; /** * The set of instantiated application lifecycle listener objects/code. */ -private transient Object applicationLifecycleListenersObjects[] = +private transient Object applicationLifecycleListenersObjects[] = new Object[0]; @@ -228,18 +228,18 @@ public class StandardContext new ApplicationParameter[0]; private final Object applicationParametersLock = new Object(); - + /** * The application available flag for this Context. */ private boolean available = false; - + /** - * The broadcaster that sends j2ee notifications. + * The broadcaster that sends j2ee notifications. */ private NotificationBroadcasterSupport broadcaster = null; - + /** * The Locale to character set mapper for this application. */ @@ -269,7 +269,7 @@ public class StandardContext * The security constraints for this web application. */ private SecurityConstraint constraints[] = new SecurityConstraint[0]; - + private final Object constraintsLock = new Object(); @@ -297,12 +297,12 @@ public class StandardContext */ private boolean crossContext = false; - + /** * Encoded path. */ private String encodedPath = null; - + /** * The follow standard delegation model flag that will be used to @@ -317,13 +317,13 @@ public class StandardContext private String displayName = null; -/** +/** * Override the default context xml location. */ private String defaultContextXml; -/** +/** * Override the default web xml location. */ private String defaultWebXml; @@ -342,7 +342,7 @@ public class StandardContext /** - * Has URL rewriting been disabled. + * Has URL rewriting been disabled. */ private boolean disableURLRewriting = false; @@ -373,7 +373,7 @@ public class StandardContext * they were defined in the deployment descriptor. */ private FilterMap filterMaps[] = new FilterMap[0]; - + private final Object filterMapsLock = new Object(); @@ -401,7 +401,7 @@ public class StandardContext /** * The mapper associated with this context. */ -private org.apache.tomcat.util.http.mapper.Mapper mapper = +private org.apache.tomcat.util.http.mapper.Mapper mapper = new org.apache.tomcat.util.http.mapper.Mapper(); @@ -478,8 +478,8 @@ public class StandardContext * The original document root for this web application. */ private String originalDocBase = null; - - + + /** * The privileged flag for this web application. */ @@ -516,7
Re: [VOTE] Release Apache Tomcat 8.0.0-RC9
On 18/12/2013 14:51, Jeanfrancois Arcand wrote: On 2013-12-17 7:59 PM, Mark Thomas wrote: The proposed 8.0.0-RC9 release is: [X] Broken - do not release [ ] Alpha - go ahead and release as 8.0.0-RC9 alpha Atmosphere stopped working with 8.0.0-RC9. With all previous RC from 1 to 7 it worked (didn't test 8) and websockets properly handled for this request https://gist.github.com/jfarcand/8023402 You can test it by downloading the .war from here http://goo.gl/36PSaz It seems this line: container.addEndpoint(ServerEndpointConfig.Builder.create(JSR356Endpoint.class, b.toString()).configurator(configurator).build()); has no effect anymore (see: http://goo.gl/POL9Ce). Ping me if you need more information. That should be enough for me to track this down. The likely culprit is the change I made to switch to lazy init for WebSocket. I'll take a look. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551986 - /tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
Author: markt Date: Wed Dec 18 15:51:32 2013 New Revision: 1551986 URL: http://svn.apache.org/r1551986 Log: Clean-up. No functional change. Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1551986r1=1551985r2=1551986view=diff == --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Wed Dec 18 15:51:32 2013 @@ -35,6 +35,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.Stack; import java.util.TreeMap; @@ -4629,34 +4630,33 @@ public class StandardContext extends Con */ public boolean filterStart() { -if (getLogger().isDebugEnabled()) +if (getLogger().isDebugEnabled()) { getLogger().debug(Starting filters); +} // Instantiate and record a FilterConfig for each defined filter boolean ok = true; synchronized (filterConfigs) { filterConfigs.clear(); -IteratorString names = filterDefs.keySet().iterator(); -while (names.hasNext()) { -String name = names.next(); -if (getLogger().isDebugEnabled()) +for (EntryString,FilterDef entry : filterDefs.entrySet()) { +String name = entry.getKey(); +if (getLogger().isDebugEnabled()) { getLogger().debug( Starting filter ' + name + '); -ApplicationFilterConfig filterConfig = null; +} try { -filterConfig = -new ApplicationFilterConfig(this, filterDefs.get(name)); +ApplicationFilterConfig filterConfig = +new ApplicationFilterConfig(this, entry.getValue()); filterConfigs.put(name, filterConfig); } catch (Throwable t) { t = ExceptionUtils.unwrapInvocationTargetException(t); ExceptionUtils.handleThrowable(t); -getLogger().error -(sm.getString(standardContext.filterStart, name), t); +getLogger().error(sm.getString( +standardContext.filterStart, name), t); ok = false; } } } -return (ok); - +return ok; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1551991 - /tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
Author: markt Date: Wed Dec 18 15:57:22 2013 New Revision: 1551991 URL: http://svn.apache.org/r1551991 Log: Refactoring the starting of individual filters into a separate private method so it can be reused elsewhere in the class. Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1551991r1=1551990r2=1551991view=diff == --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Wed Dec 18 15:57:22 2013 @@ -4638,19 +4638,7 @@ public class StandardContext extends Con synchronized (filterConfigs) { filterConfigs.clear(); for (EntryString,FilterDef entry : filterDefs.entrySet()) { -String name = entry.getKey(); -if (getLogger().isDebugEnabled()) { -getLogger().debug( Starting filter ' + name + '); -} -try { -ApplicationFilterConfig filterConfig = -new ApplicationFilterConfig(this, entry.getValue()); -filterConfigs.put(name, filterConfig); -} catch (Throwable t) { -t = ExceptionUtils.unwrapInvocationTargetException(t); -ExceptionUtils.handleThrowable(t); -getLogger().error(sm.getString( -standardContext.filterStart, name), t); +if (!filterStart(entry.getKey(), entry.getValue())) { ok = false; } } @@ -4660,6 +4648,25 @@ public class StandardContext extends Con } +private boolean filterStart(String name, FilterDef filterDef) { +if (getLogger().isDebugEnabled()) { +getLogger().debug( Starting filter ' + name + '); +} +try { +ApplicationFilterConfig filterConfig = +new ApplicationFilterConfig(this, filterDef); +filterConfigs.put(name, filterConfig); +} catch (Throwable t) { +t = ExceptionUtils.unwrapInvocationTargetException(t); +ExceptionUtils.handleThrowable(t); +getLogger().error(sm.getString( +standardContext.filterStart, name), t); +return false; +} +return true; +} + + /** * Finalize and release the set of filters for this Context. * Return codetrue/code if all filter finalization completed - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot retry in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/5348 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1551953 Blamelist: rjung BUILD FAILED: build successful exception slave lost sincerely, -The Buildbot
svn commit: r1552029 - /tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
Author: markt Date: Wed Dec 18 17:09:08 2013 New Revision: 1552029 URL: http://svn.apache.org/r1552029 Log: Revert r1551991 - The solution I had in mind isn't spec compliant Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1552029r1=1552028r2=1552029view=diff == --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Wed Dec 18 17:09:08 2013 @@ -4638,7 +4638,19 @@ public class StandardContext extends Con synchronized (filterConfigs) { filterConfigs.clear(); for (EntryString,FilterDef entry : filterDefs.entrySet()) { -if (!filterStart(entry.getKey(), entry.getValue())) { +String name = entry.getKey(); +if (getLogger().isDebugEnabled()) { +getLogger().debug( Starting filter ' + name + '); +} +try { +ApplicationFilterConfig filterConfig = +new ApplicationFilterConfig(this, entry.getValue()); +filterConfigs.put(name, filterConfig); +} catch (Throwable t) { +t = ExceptionUtils.unwrapInvocationTargetException(t); +ExceptionUtils.handleThrowable(t); +getLogger().error(sm.getString( +standardContext.filterStart, name), t); ok = false; } } @@ -4648,25 +4660,6 @@ public class StandardContext extends Con } -private boolean filterStart(String name, FilterDef filterDef) { -if (getLogger().isDebugEnabled()) { -getLogger().debug( Starting filter ' + name + '); -} -try { -ApplicationFilterConfig filterConfig = -new ApplicationFilterConfig(this, filterDef); -filterConfigs.put(name, filterConfig); -} catch (Throwable t) { -t = ExceptionUtils.unwrapInvocationTargetException(t); -ExceptionUtils.handleThrowable(t); -getLogger().error(sm.getString( -standardContext.filterStart, name), t); -return false; -} -return true; -} - - /** * Finalize and release the set of filters for this Context. * Return codetrue/code if all filter finalization completed - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1552035 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java
Author: markt Date: Wed Dec 18 17:14:53 2013 New Revision: 1552035 URL: http://svn.apache.org/r1552035 Log: Revert r1551352. Lazy init of WsServerContainer causes problems with Atmosphere that can't easily be avoided. Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1552035r1=1552034r2=1552035view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Wed Dec 18 17:14:53 2013 @@ -87,91 +87,76 @@ public class WsServerContainer extends W private volatile boolean addAllowed = true; private final ConcurrentHashMapString,SetWsSession authenticatedSessions = new ConcurrentHashMap(); -private ExecutorService executorService; -private volatile boolean initialized = false; +private final ExecutorService executorService; WsServerContainer(ServletContext servletContext) { -this.servletContext = servletContext; -} -private void init() { +this.servletContext = servletContext; -// Double checked locking. This is safe since Java 1.5 and initialized -// is volatile -if (initialized) { -return; +// Configure servlet context wide defaults +String value = servletContext.getInitParameter( +Constants.BINARY_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); +if (value != null) { +setDefaultMaxBinaryMessageBufferSize(Integer.parseInt(value)); +} + +value = servletContext.getInitParameter( +Constants.TEXT_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); +if (value != null) { +setDefaultMaxTextMessageBufferSize(Integer.parseInt(value)); +} + +value = servletContext.getInitParameter( +Constants.ENFORCE_NO_ADD_AFTER_HANDSHAKE_CONTEXT_INIT_PARAM); +if (value != null) { +setEnforceNoAddAfterHandshake(Boolean.parseBoolean(value)); +} +// Executor config +int executorCoreSize = 0; +int executorMaxSize = 10; +long executorKeepAliveTimeSeconds = 60; +value = servletContext.getInitParameter( +Constants.EXECUTOR_CORE_SIZE_INIT_PARAM); +if (value != null) { +executorCoreSize = Integer.parseInt(value); +} +value = servletContext.getInitParameter( +Constants.EXECUTOR_MAX_SIZE_INIT_PARAM); +if (value != null) { +executorMaxSize = Integer.parseInt(value); +} +value = servletContext.getInitParameter( +Constants.EXECUTOR_KEEPALIVETIME_SECONDS_INIT_PARAM); +if (value != null) { +executorKeepAliveTimeSeconds = Long.parseLong(value); +} + +FilterRegistration.Dynamic fr = servletContext.addFilter( +Tomcat WebSocket (JSR356) Filter, new WsFilter()); +fr.setAsyncSupported(true); + +EnumSetDispatcherType types = EnumSet.of(DispatcherType.REQUEST, +DispatcherType.FORWARD); + +fr.addMappingForUrlPatterns(types, true, /*); + +// Use a per web application executor for any threads the the WebSocket +// server code needs to create. Group all of the threads under a single +// ThreadGroup. +StringBuffer threadGroupName = new StringBuffer(WebSocketServer-); +threadGroupName.append(servletContext.getVirtualServerName()); +threadGroupName.append('-'); +if (.equals(servletContext.getContextPath())) { +threadGroupName.append(ROOT); +} else { +threadGroupName.append(servletContext.getContextPath()); } -synchronized (this) { -if (initialized) { -return; -} -initialized = true; - -// Configure servlet context wide defaults -String value = servletContext.getInitParameter( -Constants.BINARY_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); -if (value != null) { -setDefaultMaxBinaryMessageBufferSize(Integer.parseInt(value)); -} - -value = servletContext.getInitParameter( -Constants.TEXT_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); -if (value != null) { -setDefaultMaxTextMessageBufferSize(Integer.parseInt(value)); -} +ThreadGroup threadGroup = new ThreadGroup(threadGroupName.toString()); +WsThreadFactory wsThreadFactory = new WsThreadFactory(threadGroup); -value = servletContext.getInitParameter( -
svn commit: r1552042 - in /tomcat/trunk/java/org/apache/tomcat/websocket/server: WsFilter.java WsServerContainer.java
Author: markt Date: Wed Dec 18 17:29:08 2013 New Revision: 1552042 URL: http://svn.apache.org/r1552042 Log: Alternative partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=55855. Don't do the expensive 'Is this a WebSocket upgrade request check' if no endpoints have been registered Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1552042r1=1552041r2=1552042view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Wed Dec 18 17:29:08 2013 @@ -47,7 +47,8 @@ public class WsFilter implements Filter FilterChain chain) throws IOException, ServletException { // This filter only needs to handle WebSocket upgrade requests -if (!UpgradeUtil.isWebSocketUpgradeRequest(request, response)) { +if (!sc.areEndpointsRegistered() || +!UpgradeUtil.isWebSocketUpgradeRequest(request, response)) { chain.doFilter(request, response); return; } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1552042r1=1552041r2=1552042view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Wed Dec 18 17:29:08 2013 @@ -88,6 +88,7 @@ public class WsServerContainer extends W private final ConcurrentHashMapString,SetWsSession authenticatedSessions = new ConcurrentHashMap(); private final ExecutorService executorService; +private volatile boolean endpointsRegistered = false; WsServerContainer(ServletContext servletContext) { @@ -210,6 +211,8 @@ public class WsServerContainer extends W sm.getString(serverContainer.duplicatePaths, path)); } } + +endpointsRegistered = true; } @@ -267,6 +270,11 @@ public class WsServerContainer extends W } +boolean areEndpointsRegistered() { +return endpointsRegistered; +} + + public void doUpgrade(HttpServletRequest request, HttpServletResponse response, ServerEndpointConfig sec, MapString,String pathParams) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot success in ASF Buildbot on tomcat-trunk
The Buildbot has detected a restored build on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/5349 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1551991 Blamelist: markt,rjung Build succeeded! sincerely, -The Buildbot
svn commit: r1552071 - in /tomcat/trunk/java/org/apache/jasper: resources/LocalStrings.properties servlet/TldScanner.java
Author: violetagg Date: Wed Dec 18 19:28:21 2013 New Revision: 1552071 URL: http://svn.apache.org/r1552071 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55905 Prevent NPE when the specified tld resource does not exists. Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties?rev=1552071r1=1552070r2=1552071view=diff == --- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties Wed Dec 18 19:28:21 2013 @@ -402,4 +402,4 @@ org.apache.jasper.compiler.TldCache.serv org.apache.jasper.servlet.JasperInitializer.onStartup=Initializing Jasper for context [{0}] org.apache.jasper.servlet.TldScanner.webxmlSkip=Skipping load of TLD for URI {1} from resource path {0} as it has already been defined in jsp-config org.apache.jasper.servlet.TldScanner.webxmlAdd=Loading TLD for URI {1} from resource path {0} - +org.apache.jasper.servlet.TldScanner.webxmlFailPathDoesNotExist=Failed to process TLD with path [{0}] and URI [{1}]. The specified path does not exist. Modified: tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java?rev=1552071r1=1552070r2=1552071view=diff == --- tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java (original) +++ tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java Wed Dec 18 19:28:21 2013 @@ -175,21 +175,27 @@ public class TldScanner { } URL url = context.getResource(resourcePath); -TldResourcePath tldResourcePath; -if (resourcePath.endsWith(.jar)) { -// if the path points to a jar file, the TLD is presumed to be -// inside at META-INF/taglib.tld -tldResourcePath = new TldResourcePath( -url, resourcePath, META-INF/taglib.tld); +if (url != null) { +TldResourcePath tldResourcePath; +if (resourcePath.endsWith(.jar)) { +// if the path points to a jar file, the TLD is presumed to be +// inside at META-INF/taglib.tld +tldResourcePath = new TldResourcePath(url, resourcePath, META-INF/taglib.tld); +} else { +tldResourcePath = new TldResourcePath(url, resourcePath); +} +// parse TLD but store using the URI supplied in the descriptor +TaglibXml tld = tldParser.parse(tldResourcePath); +uriTldResourcePathMap.put(taglibURI, tldResourcePath); +tldResourcePathTaglibXmlMap.put(tldResourcePath, tld); +if (tld.getListeners() != null) { +listeners.addAll(tld.getListeners()); +} } else { -tldResourcePath = new TldResourcePath(url, resourcePath); -} -// parse TLD but store using the URI supplied in the descriptor -TaglibXml tld = tldParser.parse(tldResourcePath); -uriTldResourcePathMap.put(taglibURI, tldResourcePath); -tldResourcePathTaglibXmlMap.put(tldResourcePath, tld); -if (tld.getListeners() != null) { -listeners.addAll(tld.getListeners()); +log.warn(Localizer.getMessage(MSG + .webxmlFailPathDoesNotExist, +resourcePath, +taglibURI)); +continue; } } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1552074 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/startup/LocalStrings.properties java/org/apache/catalina/startup/TldConfig.java webapps/docs/changelog.xml
Author: violetagg Date: Wed Dec 18 19:48:53 2013 New Revision: 1552074 URL: http://svn.apache.org/r1552074 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55905 Merged revision 1552071 from tomcat/trunk: Prevent NPE when the specified tld resource does not exists. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1552071 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1552074r1=1552073r2=1552074view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties Wed Dec 18 19:48:53 2013 @@ -126,7 +126,8 @@ tldConfig.jarFail=Failed to process JAR tldConfig.webinfFail=Failed to process TLD found at [{0}] tldConfig.webinfScan=Scanning WEB-INF for TLD files in [{0}] tldConfig.webxmlAdd=Adding path [{0}] for URI [{1}] -tldConfig.webxmlFail=Failed to process TLD with path [{1}] and URI [{0}] +tldConfig.webxmlFail=Failed to process TLD with path [{0}] and URI [{1}] +tldConfig.webxmlFailPathDoesNotExist=Failed to process TLD with path [{0}] and URI [{1}]. The specified path does not exist. tldConfig.webxmlSkip=Path [{1}] skipped since URI [{0}] is a duplicate tldConfig.webxmlStart=Scanning taglib elements in web.xml userConfig.database=Exception loading user database Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=1552074r1=1552073r2=1552074view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java Wed Dec 18 19:48:53 2013 @@ -342,10 +342,15 @@ public final class TldConfig implements try { stream = context.getServletContext().getResourceAsStream( resourcePath); -XmlErrorHandler handler = tldScanStream(stream); -handler.logFindings(log, resourcePath); -taglibUris.add(descriptor.getTaglibURI()); -webxmlTaglibUris.add(descriptor.getTaglibURI()); +if (stream != null) { +XmlErrorHandler handler = tldScanStream(stream); +handler.logFindings(log, resourcePath); +taglibUris.add(descriptor.getTaglibURI()); +webxmlTaglibUris.add(descriptor.getTaglibURI()); +} else { + log.warn(sm.getString(tldConfig.webxmlFailPathDoesNotExist, resourcePath, +descriptor.getTaglibURI())); +} } catch (IOException ioe) { log.warn(sm.getString(tldConfig.webxmlFail, resourcePath, descriptor.getTaglibURI()), ioe); 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=1552074r1=1552073r2=1552074view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Dec 18 19:48:53 2013 @@ -81,6 +81,10 @@ WebSocket Filter lazy so that it is not added to web applications that do not need it. (markt) /fix + fix +bug55905/bug: Prevent a NPE when web.xml references a taglib file +that does not exist. Provide better error message. (violetagg) + /fix /changelog /subsection subsection name=Coyote - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 55905] Error message unhelpful when web.xml references a tld file that doesn't exist
https://issues.apache.org/bugzilla/show_bug.cgi?id=55905 Violeta Georgieva violet...@apache.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #1 from Violeta Georgieva violet...@apache.org --- Thanks for the report. Fixed in trunk and 7.0.x and will be included in 8.0.0-RC10 and 7.0.50 onwards. Regards Violeta -- 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
Re: svn commit: r1552042 - in /tomcat/trunk/java/org/apache/tomcat/websocket/server: WsFilter.java WsServerContainer.java
Hi Mark, 2013/12/18 ma...@apache.org Author: markt Date: Wed Dec 18 17:29:08 2013 New Revision: 1552042 URL: http://svn.apache.org/r1552042 Log: Alternative partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=55855. Don't do the expensive 'Is this a WebSocket upgrade request check' if no endpoints have been registered Will we downport this fix to Tomcat 7? Thanks Violeta Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1552042r1=1552041r2=1552042view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Wed Dec 18 17:29:08 2013 @@ -47,7 +47,8 @@ public class WsFilter implements Filter FilterChain chain) throws IOException, ServletException { // This filter only needs to handle WebSocket upgrade requests -if (!UpgradeUtil.isWebSocketUpgradeRequest(request, response)) { +if (!sc.areEndpointsRegistered() || +!UpgradeUtil.isWebSocketUpgradeRequest(request, response)) { chain.doFilter(request, response); return; } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1552042r1=1552041r2=1552042view=diff == --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Wed Dec 18 17:29:08 2013 @@ -88,6 +88,7 @@ public class WsServerContainer extends W private final ConcurrentHashMapString,SetWsSession authenticatedSessions = new ConcurrentHashMap(); private final ExecutorService executorService; +private volatile boolean endpointsRegistered = false; WsServerContainer(ServletContext servletContext) { @@ -210,6 +211,8 @@ public class WsServerContainer extends W sm.getString(serverContainer.duplicatePaths, path)); } } + +endpointsRegistered = true; } @@ -267,6 +270,11 @@ public class WsServerContainer extends W } +boolean areEndpointsRegistered() { +return endpointsRegistered; +} + + public void doUpgrade(HttpServletRequest request, HttpServletResponse response, ServerEndpointConfig sec, MapString,String pathParams) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1552076 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/websocket/server/WsServerContainer.java webapps/docs/changelog.xml
Author: markt Date: Wed Dec 18 20:06:58 2013 New Revision: 1552076 URL: http://svn.apache.org/r1552076 Log: Revert r1551356. Lazy init of WsServerContainer causes problems with Atmosphere that can't easily be avoided. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ -- Reverse-merged /tomcat/trunk:r1551352 Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1552076r1=1552075r2=1552076view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Wed Dec 18 20:06:58 2013 @@ -87,89 +87,74 @@ public class WsServerContainer extends W private volatile boolean addAllowed = true; private final ConcurrentHashMapString,SetWsSession authenticatedSessions = new ConcurrentHashMapString, SetWsSession(); -private ExecutorService executorService; -private volatile boolean initialized = false; +private final ExecutorService executorService; WsServerContainer(ServletContext servletContext) { -this.servletContext = servletContext; -} -private void init() { +this.servletContext = servletContext; -// Double checked locking. This is safe since Java 1.5 and initialized -// is volatile -if (initialized) { -return; +// Configure servlet context wide defaults +String value = servletContext.getInitParameter( +Constants.BINARY_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); +if (value != null) { +setDefaultMaxBinaryMessageBufferSize(Integer.parseInt(value)); +} + +value = servletContext.getInitParameter( +Constants.TEXT_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); +if (value != null) { +setDefaultMaxTextMessageBufferSize(Integer.parseInt(value)); +} + +value = servletContext.getInitParameter( +Constants.ENFORCE_NO_ADD_AFTER_HANDSHAKE_CONTEXT_INIT_PARAM); +if (value != null) { +setEnforceNoAddAfterHandshake(Boolean.parseBoolean(value)); +} +// Executor config +int executorCoreSize = 0; +int executorMaxSize = 10; +long executorKeepAliveTimeSeconds = 60; +value = servletContext.getInitParameter( +Constants.EXECUTOR_CORE_SIZE_INIT_PARAM); +if (value != null) { +executorCoreSize = Integer.parseInt(value); +} +value = servletContext.getInitParameter( +Constants.EXECUTOR_MAX_SIZE_INIT_PARAM); +if (value != null) { +executorMaxSize = Integer.parseInt(value); +} +value = servletContext.getInitParameter( +Constants.EXECUTOR_KEEPALIVETIME_SECONDS_INIT_PARAM); +if (value != null) { +executorKeepAliveTimeSeconds = Long.parseLong(value); +} + +FilterRegistration.Dynamic fr = servletContext.addFilter( +WsFilter.class.getName(), new WsFilter()); +fr.setAsyncSupported(true); + +EnumSetDispatcherType types = EnumSet.of(DispatcherType.REQUEST, +DispatcherType.FORWARD); + +fr.addMappingForUrlPatterns(types, true, /*); + +// Use a per web application executor for any threads the the WebSocket +// server code needs to create. Group all of the threads under a single +// ThreadGroup. +StringBuffer threadGroupName = new StringBuffer(WebSocketServer-); +if (.equals(servletContext.getContextPath())) { +threadGroupName.append(ROOT); +} else { +threadGroupName.append(servletContext.getContextPath()); } -synchronized (this) { -if (initialized) { -return; -} -initialized = true; - -// Configure servlet context wide defaults -String value = servletContext.getInitParameter( -Constants.BINARY_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); -if (value != null) { -setDefaultMaxBinaryMessageBufferSize(Integer.parseInt(value)); -} - -value = servletContext.getInitParameter( -Constants.TEXT_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM); -if (value != null) { -setDefaultMaxTextMessageBufferSize(Integer.parseInt(value)); -} +ThreadGroup threadGroup
svn commit: r1552080 - /tomcat/trunk/webapps/docs/extras.xml
Author: violetagg Date: Wed Dec 18 20:25:37 2013 New Revision: 1552080 URL: http://svn.apache.org/r1552080 Log: Add a link from extras page to download page. Issue is reported via o.a.comments. Modified: tomcat/trunk/webapps/docs/extras.xml Modified: tomcat/trunk/webapps/docs/extras.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/extras.xml?rev=1552080r1=1552079r2=1552080view=diff == --- tomcat/trunk/webapps/docs/extras.xml (original) +++ tomcat/trunk/webapps/docs/extras.xml Wed Dec 18 20:25:37 2013 @@ -44,9 +44,10 @@ section name=Downloading p -To download the extras components open the Tomcat download page and -select browse from the Quick Navigation Links. The extras components can be -found in bin/extras. +To download the extras components open the +a href=http://tomcat.apache.org/download-80.cgi;Tomcat download page/a +and select Browse from the Quick Navigation Links. The extras components +can be found in bin/extras. /p /section - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1552083 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/websocket/server/UpgradeUtil.java java/org/apache/tomcat/websocket/server/WsFilter.java java/org/apache/tomcat/websocket/serv
Author: markt Date: Wed Dec 18 20:30:32 2013 New Revision: 1552083 URL: http://svn.apache.org/r1552083 Log: Alternative partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=55855. Don't do the expensive 'Is this a WebSocket upgrade request check' if no endpoints have been registered Also fix method name typo Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1552042 Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java?rev=1552083r1=1552082r2=1552083view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java Wed Dec 18 20:30:32 2013 @@ -67,7 +67,7 @@ public class UpgradeUtil { * WebSocket spec 1.0, section 8.2 implies such a limitation and RFC * 6455 section 4.1 requires that a WebSocket Upgrade uses GET. */ -public static boolean isWebSocketUpgrageRequest(ServletRequest request, +public static boolean isWebSocketUpgradeRequest(ServletRequest request, ServletResponse response) { return ((request instanceof HttpServletRequest) Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1552083r1=1552082r2=1552083view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Wed Dec 18 20:30:32 2013 @@ -47,7 +47,8 @@ public class WsFilter implements Filter FilterChain chain) throws IOException, ServletException { // This filter only needs to handle WebSocket upgrade requests -if (!UpgradeUtil.isWebSocketUpgrageRequest(request, response)) { +if (!sc.areEndpointsRegistered() || +!UpgradeUtil.isWebSocketUpgradeRequest(request, response)) { chain.doFilter(request, response); return; } Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1552083r1=1552082r2=1552083view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Wed Dec 18 20:30:32 2013 @@ -88,6 +88,7 @@ public class WsServerContainer extends W private final ConcurrentHashMapString,SetWsSession authenticatedSessions = new ConcurrentHashMapString, SetWsSession(); private final ExecutorService executorService; +private volatile boolean endpointsRegistered = false; WsServerContainer(ServletContext servletContext) { @@ -208,6 +209,8 @@ public class WsServerContainer extends W sm.getString(serverContainer.duplicatePaths, path)); } } + +endpointsRegistered = true; } @@ -270,6 +273,11 @@ public class WsServerContainer extends W } +boolean areEndpointsRegistered() { +return endpointsRegistered; +} + + public void doUpgrade(HttpServletRequest request, HttpServletResponse response, ServerEndpointConfig sec, MapString,String pathParams) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1552085 - /tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Author: markt Date: Wed Dec 18 20:32:10 2013 New Revision: 1552085 URL: http://svn.apache.org/r1552085 Log: Update changelog Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1552085r1=1552084r2=1552085view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Dec 18 20:32:10 2013 @@ -76,6 +76,10 @@ Handle the case where a WebSocket annotation configures a message size limit larger than the default permitted by Tomcat. (markt) /fix +bug55855/bug: This is a partial fix that bypasses the relatively +expensive check for a WebSocket upgrade request if not WebSocket +endpoints have been registered. (markt) + /fix fix bug55905/bug: Prevent a NPE when web.xml references a taglib file that does not exist. Provide better error message. (violetagg) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1552089 - in /tomcat/tc7.0.x/trunk: ./ webapps/docs/extras.xml
Author: violetagg Date: Wed Dec 18 20:47:34 2013 New Revision: 1552089 URL: http://svn.apache.org/r1552089 Log: Merged revision 1552080 from tomcat/trunk: Add a link from extras page to download page. Issue is reported via o.a.comments. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/webapps/docs/extras.xml Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1552080 Modified: tomcat/tc7.0.x/trunk/webapps/docs/extras.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/extras.xml?rev=1552089r1=1552088r2=1552089view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/extras.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/extras.xml Wed Dec 18 20:47:34 2013 @@ -44,9 +44,10 @@ section name=Downloading p -To download the extras components open the Tomcat download page and -select browse from the Quick Navigation Links. The extras components can be -found in bin/extras. +To download the extras components open the +a href=http://tomcat.apache.org/download-70.cgi;Tomcat download page/a +and select Browse from the Quick Navigation Links. The extras components +can be found in bin/extras. /p /section - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in ASF Buildbot on tomcat-7-trunk
The Buildbot has detected a new failure on builder tomcat-7-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-7-trunk/builds/1651 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/tc7.0.x/trunk] 1552074 Blamelist: violetagg BUILD FAILED: failed compile_1 sincerely, -The Buildbot
Tagging Tomcat 7.0.50
Hi, I'm going to tag Tomcat 7.0.50 tomorrow. If you need to add something please write here. Thanks Violeta
svn commit: r1552099 - /tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Author: violetagg Date: Wed Dec 18 21:05:28 2013 New Revision: 1552099 URL: http://svn.apache.org/r1552099 Log: Fix the build - missing opening tag in the changelog.xml. Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1552099r1=1552098r2=1552099view=diff == --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Dec 18 21:05:28 2013 @@ -76,6 +76,7 @@ Handle the case where a WebSocket annotation configures a message size limit larger than the default permitted by Tomcat. (markt) /fix + fix bug55855/bug: This is a partial fix that bypasses the relatively expensive check for a WebSocket upgrade request if not WebSocket endpoints have been registered. (markt) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 55907] New: Unterminated loop during Poller creation due to cyclic references in native allocator
https://issues.apache.org/bugzilla/show_bug.cgi?id=55907 Bug ID: 55907 Summary: Unterminated loop during Poller creation due to cyclic references in native allocator Product: Tomcat Native Version: 1.1.29 Hardware: Sun OS: Solaris Status: NEW Severity: normal Priority: P2 Component: Library Assignee: dev@tomcat.apache.org Reporter: rainer.j...@kippdata.de The loop happens during poller thread startup. The following shutdown hangs due to waiting for a native lock that the poller holds. The looping is not reproducible, it was observed during one of many runs of TestAsyncContextImpl. tcnative version used was 1.1.29 plus apr 1.4.8, platform Solaris 10 Sparc, JDK 1.7.0_45 32 Bits. I add the data to this issue primarily such that we can come back here if the problem gets observed in the wild. In the logs the incomplete poller startup results in the message [junit] 18-Dec-2013 20:50:28.194 SEVERE [http-apr-127.0.0.1-auto-27-Poller] org.apache.tomcat.util.net.AprEndpoint$Poller.run Poller failed with error [9] : [Bad file number] about a second after the loop starts. The looping thread is: http-apr-127.0.0.1-auto-27-Poller daemon prio=3 tid=0x007c9400 nid=0x134 runnable [0xb407f000] java.lang.Thread.State: RUNNABLE apr_palloc (38a540, 28, 58a258, 28000, 42c8a0, 42c8a0) + 29c impl_pollset_create (44c918, 2000, 58a258, 44c950, 2, 44c918) + b8 apr_pollset_create_ex (b407f78c, 2000, 58a258, 2, 3, b51d4ec4) + c8 Java_org_apache_tomcat_jni_Poll_create (7c9530, b407f78c, 2000, 2, 58a258, 0) + 38 at org.apache.tomcat.jni.Poll.create(Native Method) at org.apache.tomcat.util.net.AprEndpoint.allocatePoller(AprEndpoint.java:804) at org.apache.tomcat.util.net.AprEndpoint$Poller.run(AprEndpoint.java:1969) at java.lang.Thread.run(Thread.java:744) The main thread later blocks during shutdown: main prio=3 tid=0x00029800 nid=0x2 runnable [0xfdf7e000] java.lang.Thread.State: RUNNABLE lwp_park (0, 0, 0) apr_pool_destroy (75c680, fdf7e958, 0, 75c680, fdf7e9d4, 372d08) + c4 at org.apache.tomcat.jni.Pool.destroy(Native Method) at org.apache.tomcat.util.net.AprEndpoint$Sendfile.destroy(AprEndpoint.java:2098) at org.apache.tomcat.util.net.AprEndpoint.stopInternal(AprEndpoint.java:704) at org.apache.tomcat.util.net.AbstractEndpoint.stop(AbstractEndpoint.java:740) at org.apache.coyote.AbstractProtocol.stop(AbstractProtocol.java:515) at org.apache.catalina.connector.Connector.stopInternal(Connector.java:1014) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) - locked 0xe69c1760 (a org.apache.catalina.connector.Connector) at org.apache.catalina.core.StandardService.stopInternal(StandardService.java:516) - locked 0xe69ca618 (a java.lang.Object) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) - locked 0xe69ca570 (a org.apache.catalina.core.StandardService) at org.apache.catalina.core.StandardServer.stopInternal(StandardServer.java:766) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) - locked 0xe69c9ec8 (a org.apache.catalina.core.StandardServer) at org.apache.catalina.startup.Tomcat.stop(Tomcat.java:350) at org.apache.catalina.startup.TomcatBaseTest.tearDown(TomcatBaseTest.java:163) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38) at
[Bug 55907] Unterminated loop during Poller creation due to cyclic references in native allocator
https://issues.apache.org/bugzilla/show_bug.cgi?id=55907 Rainer Jung rainer.j...@kippdata.de changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |LATER -- 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
buildbot success in ASF Buildbot on tomcat-7-trunk
The Buildbot has detected a restored build on builder tomcat-7-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-7-trunk/builds/1654 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/tc7.0.x/trunk] 1552099 Blamelist: violetagg Build succeeded! sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot failure in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/5351 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1552071 Blamelist: violetagg BUILD FAILED: failed compile_1 sincerely, -The Buildbot
svn commit: r1552141 - /tomcat/maven-plugin/trunk/src/site/site.xml
Author: olamy Date: Wed Dec 18 22:44:31 2013 New Revision: 1552141 URL: http://svn.apache.org/r1552141 Log: use skin released version Modified: tomcat/maven-plugin/trunk/src/site/site.xml Modified: tomcat/maven-plugin/trunk/src/site/site.xml URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/src/site/site.xml?rev=1552141r1=1552140r2=1552141view=diff == --- tomcat/maven-plugin/trunk/src/site/site.xml (original) +++ tomcat/maven-plugin/trunk/src/site/site.xml Wed Dec 18 22:44:31 2013 @@ -30,7 +30,7 @@ skin groupIdorg.apache.maven.skins/groupId artifactIdmaven-fluido-skin/artifactId -version1.3.1-SNAPSHOT/version +version1.3.1/version /skin custom - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1552153 - in /tomcat/tc6.0.x/trunk/java/org/apache/catalina: Host.java core/StandardHost.java
Author: markt Date: Wed Dec 18 23:03:36 2013 New Revision: 1552153 URL: http://svn.apache.org/r1552153 Log: Better Javadoc Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/Host.java tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardHost.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/Host.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/Host.java?rev=1552153r1=1552152r2=1552153view=diff == --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/Host.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/Host.java Wed Dec 18 23:03:36 2013 @@ -149,32 +149,44 @@ public interface Host extends Container /** - * Get the server.xml lt;hostgt; attribute's xmlNamespaceAware. - * @return true if namespace awarenes is enabled. + * Will the parsing of the web.xml file for Contexts of this Host be + * performed by a namespace aware parser? If codefalse/code it may still + * be enabled per Context using + * {@link Context#setXmlNamespaceAware(boolean)}. * + * @return true if namespace awareness is enabled. */ public boolean getXmlNamespaceAware(); /** - * Get the server.xml lt;hostgt; attribute's xmlValidation. - * @return true if validation is enabled. + * Will the parsing of the web.xml file and *.tld files for Contexts of this + * Host be performed by a validating parser? If codefalse/code it may + * still be enabled per Context using + * {@link Context#setXmlValidation(boolean)}. * + * @return true if validation is enabled. */ public boolean getXmlValidation(); /** - * Set the validation feature of the XML parser used when - * parsing xml instances. - * @param xmlValidation true to enable xml instance validation + * Controls whether the parsing of the web.xml file and *.tld files for this + * Context will be performed by a validating parser. If codefalse/code + * it may still be enabled per Context using + * {@link Context#setXmlValidation(boolean)}. + * + * @param xmlValidation true to enable xml validation */ public void setXmlValidation(boolean xmlValidation); - /** - * Set the namespace aware feature of the XML parser used when - * parsing xml instances. +/** + * Controls whether the parsing of the web.xml file for Contexts of this + * Host will be performed by a namespace aware parser. If codefalse/code + * it may still be enabled per Context using + * {@link Context#setXmlNamespaceAware(boolean)}. + * * @param xmlNamespaceAware true to enable namespace awareness */ public void setXmlNamespaceAware(boolean xmlNamespaceAware); @@ -182,7 +194,7 @@ public interface Host extends Container /** * Return the regular expression that defines the files and directories in - * the host's {@link #appBase} that will be ignored by the automatic + * the host's {@link #getAppBase()} that will be ignored by the automatic * deployment process. */ public String getDeployIgnore(); @@ -190,15 +202,15 @@ public interface Host extends Container /** * Return the compiled regular expression that defines the files and - * directories in the host's {@link #appBase} that will be ignored by the - * automatic deployment process. + * directories in the host's {@link #getAppBase()} that will be ignored by + * the automatic deployment process. */ public Pattern getDeployIgnorePattern(); /** * Set the regular expression that defines the files and directories in - * the host's {@link #appBase} that will be ignored by the automatic + * the host's {@link #getAppBase()} that will be ignored by the automatic * deployment process. */ public void setDeployIgnore(String deployIgnore); Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardHost.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardHost.java?rev=1552153r1=1552152r2=1552153view=diff == --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardHost.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardHost.java Wed Dec 18 23:03:36 2013 @@ -448,44 +448,26 @@ public class StandardHost } - /** - * Set the validation feature of the XML parser used when - * parsing xml instances. - * @param xmlValidation true to enable xml instance validation - */ + public void setXmlValidation(boolean xmlValidation){ - this.xmlValidation = xmlValidation; - } -/** - * Get the server.xml lt;hostgt; attribute's xmlValidation. - * @return true if validation is enabled. - * -
[jira] [Commented] (MTOMCAT-250) Pull Request: Support Alternate Session Managers in Standalone War Bootstrap
[ https://issues.apache.org/jira/browse/MTOMCAT-250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13852324#comment-13852324 ] Josh Chaitin-Pollak commented on MTOMCAT-250: - To clarify, this patch / Pull Request is NOT specific to any specific Session Manager implementation, it simply allows the user to specify a factory class to construct a session manager on startup. I'm sure a more sophisticated solution could be devised, but the existing Tomcat7RunnerCli is pretty basic in its configuration abilities anyway. I am open to enhancing the patch if there are recommended implementations. Pull Request: Support Alternate Session Managers in Standalone War Bootstrap Key: MTOMCAT-250 URL: https://issues.apache.org/jira/browse/MTOMCAT-250 Project: Apache Tomcat Maven Plugin Issue Type: Improvement Reporter: Josh Chaitin-Pollak Priority: Minor Fix For: 3.0 Hello, I have created a pull request on GitHub to allow the standalone war bootstrapper to use a factory to create an alternate session manager. https://github.com/apache/tomcat-maven-plugin/pull/5 I am using this with a modified version of the memcached-session-manager project to allow my standalone war project to use that session manager. I think this would be of utility to more people. Here is the MSM pull request for reference: https://github.com/magro/memcached-session-manager/pull/33 And here is an example of how you would use this patch: {code} java -Dmsm.memcachedNodes=n1:localhost:21211 -jar standalone.jar \ -sessionManagerFactory de.javakaffee.web.msm.MemcachedBackupSessionManagerFactory {code} -- This message was sent by Atlassian JIRA (v6.1.4#6159) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot success in ASF Buildbot on tomcat-trunk
The Buildbot has detected a restored build on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/5352 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: bb-vm_ubuntu Build Reason: scheduler Build Source Stamp: [branch tomcat/trunk] 1552080 Blamelist: violetagg Build succeeded! sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org