[Bug 57108] Implement multiple sslcontext SNI (server name indication) dispatch
https://issues.apache.org/bugzilla/show_bug.cgi?id=57108 --- Comment #5 from Unlogic --- This will surely be a killer function if it makes to Tomcat 9. As the use of Windows XP is fading out the demand for SNI support is increasing by the day. -- 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: r1654064 - in /tomcat/tc7.0.x/trunk: java/org/apache/naming/resources/DirContextURLConnection.java webapps/docs/changelog.xml
Hi, 2015-01-23 8:12 GMT+02:00 Felix Schumacher < felix.schumac...@internetallee.de>: > > Am 22.01.2015 um 21:54 schrieb fschumac...@apache.org: >> >> Author: fschumacher >> Date: Thu Jan 22 20:54:47 2015 >> New Revision: 1654064 >> >> URL: http://svn.apache.org/r1654064 >> Log: >> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57420 >> Make UEncoder a local variable in DirContextURLConnection to make it threadsafe. >> Based on ideas from kkolinko and violetagg. >> >> Modified: >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java >> tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml >> >> Modified: tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java >> URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java?rev=1654064&r1=1654063&r2=1654064&view=diff >> == >> --- tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java (original) >> +++ tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java Thu Jan 22 20:54:47 2015 >> @@ -42,6 +42,7 @@ import javax.naming.directory.DirContext >> import org.apache.naming.JndiPermission; >> import org.apache.tomcat.util.buf.UDecoder; >> import org.apache.tomcat.util.buf.UEncoder; >> +import org.apache.tomcat.util.buf.UEncoder.SafeCharsSet; > > After enabling the checkstyle validation (being reminded by gump), I now see, that this import is not allowed by checkstyle. But I don't know why it is illegal. I do not see such behavior on my side. Everything is OK with DirContextURLConnection. Regards, Violeta > Can anyone enlighten me on this? > > Thanks > Felix >
[Bug 57486] New: Improve reuse of ProtectedFunctionMapper instances in generated JSP
https://issues.apache.org/bugzilla/show_bug.cgi?id=57486 Bug ID: 57486 Summary: Improve reuse of ProtectedFunctionMapper instances in generated JSP Product: Tomcat 8 Version: 8.0.17 Hardware: PC Status: NEW Severity: enhancement Priority: P2 Component: Jasper Assignee: dev@tomcat.apache.org Reporter: knst.koli...@gmail.com The following was noted when reviewing r1653857 (the fix for bug 57441), r1653972. I am filing it as an enhancement, as these are performance issues, not affecting observed functionality. The code discussed here is org.apache.jasper.compiler.ELFunctionMapper$ELFunctionVisitor.doMap(ELNode.Nodes el). Functionality The code is responsible for generation of ProtectedFunctionMapper instances that are passed to EL expressions when evaluating them. 1) If EL expression does not call functions, it does not need a FunctionMapper, so none is generated. 2) If EL expression has function calls, it needs a FunctionMapper instance. The instance is populated with all functions that are called by this EL expression. There is an attempt to reuse FunctionMapper instances (ELFunctionVisitor.matchMap()), but in general each EL expression gets its own FunctionMapper instance. The class generates code that creates mapper instances and assigns them to static fields in JSP class. Example http://localhost:8080/examples/jsp/jsp2/el/functions.jsp The "functions.jsp" example page generates the current code (with current Tomcat trunk) (several empty lines added for better readability): [[[ private static org.apache.jasper.runtime.ProtectedFunctionMapper _jspx_fnmap_0; private static org.apache.jasper.runtime.ProtectedFunctionMapper _jspx_fnmap_1; private static org.apache.jasper.runtime.ProtectedFunctionMapper _jspx_fnmap_2; static { _jspx_fnmap_0= org.apache.jasper.runtime.ProtectedFunctionMapper.getMapForFunction("fn:escapeXml", org.apache.taglibs.standard.functions.Functions.class, "escapeXml", new Class[] {java.lang.String.class}); _jspx_fnmap_1= org.apache.jasper.runtime.ProtectedFunctionMapper.getInstance(); _jspx_fnmap_1.mapFunction("my:reverse", jsp2.examples.el.Functions.class, "reverse", new Class[] {java.lang.String.class}); _jspx_fnmap_1.mapFunction("fn:escapeXml", org.apache.taglibs.standard.functions.Functions.class, "escapeXml", new Class[] {java.lang.String.class}); _jspx_fnmap_2= org.apache.jasper.runtime.ProtectedFunctionMapper.getInstance(); _jspx_fnmap_2.mapFunction("my:countVowels", jsp2.examples.el.Functions.class, "numVowels", new Class[] {java.lang.String.class}); _jspx_fnmap_2.mapFunction("fn:escapeXml", org.apache.taglibs.standard.functions.Functions.class, "escapeXml", new Class[] {java.lang.String.class}); } ]]] The first one is mapper used for EL that calls a single function ("fn:escapeXml"). Other are for ELs that call two functions each. Concerns 1. In JSP pages the tag libraries are declared only once. Thus it is possible to reuse a single ProtectedFunctionMapper instance across the entire JSP page. Instead of the above 3 mapper instances it would be better to have one mapper instance that provides all ("fn:escapeXml", "my:reverse", "my:countVowels") at once. In JSP documents (*.jspx) the libraries can be declared differently on each element, so situation will be more difficult. I say that a function mapper can be reused if all functions declared in it use the same set of URIs (all used functions belong to the same set of tag libraries). This is how ELFunctionVisitor.matchMap() has to be implemented. When a function mapper is reused, it shall be possible to update is (add new function mappings). I imply that a ProtectedFunctionMapper shall be able to automatically switch from single-method to multiple-methods-map mode when its mapFunction() method is called to add a method. 2. Regarding r1653857 ELFunctionMapper$ELFunctionVisitor.doMap() uses nested Fvisitor class to get a list of functions called by EL. The functions where getFunctionInfo() is null (Added via Lambda or ImportHandler) are later ignored by ProtectedFunctionMapper methods. It would be more simple to skip them in the list generated by Fvisitor instead of skipping them later in ProtectedFunctionMapper. There is no need to pass them to ProtectedFunctionMapper, as it will return null when being asked about them. -- 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: r1654064 - in /tomcat/tc7.0.x/trunk: java/org/apache/naming/resources/DirContextURLConnection.java webapps/docs/changelog.xml
Am 23.01.2015 09:46, schrieb Violeta Georgieva: Hi, 2015-01-23 8:12 GMT+02:00 Felix Schumacher < felix.schumac...@internetallee.de>: Am 22.01.2015 um 21:54 schrieb fschumac...@apache.org: Author: fschumacher Date: Thu Jan 22 20:54:47 2015 New Revision: 1654064 URL: http://svn.apache.org/r1654064 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57420 Make UEncoder a local variable in DirContextURLConnection to make it threadsafe. Based on ideas from kkolinko and violetagg. Modified: tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java?rev=1654064&r1=1654063&r2=1654064&view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java Thu Jan 22 20:54:47 2015 @@ -42,6 +42,7 @@ import javax.naming.directory.DirContext import org.apache.naming.JndiPermission; import org.apache.tomcat.util.buf.UDecoder; import org.apache.tomcat.util.buf.UEncoder; +import org.apache.tomcat.util.buf.UEncoder.SafeCharsSet; After enabling the checkstyle validation (being reminded by gump), I now see, that this import is not allowed by checkstyle. But I don't know why it is illegal. I do not see such behavior on my side. Everything is OK with DirContextURLConnection. I didn't see anything also, until I enabled checkstyle locally by adding "execute.validate=true" to my build.properties. I can make the failure go away by adding SafeCharSet to the allowed classes: diff --git a/res/checkstyle/org-import-control.xml b/res/checkstyle/org-import-control.xml index 8d79419..85191a8 100644 --- a/res/checkstyle/org-import-control.xml +++ b/res/checkstyle/org-import-control.xml @@ -110,6 +110,7 @@ + Would this be acceptable? Regards Felix Regards, Violeta Can anyone enlighten me on this? Thanks Felix - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1654064 - in /tomcat/tc7.0.x/trunk: java/org/apache/naming/resources/DirContextURLConnection.java webapps/docs/changelog.xml
2015-01-23 11:51 GMT+03:00 Felix Schumacher : > Am 23.01.2015 09:46, schrieb Violeta Georgieva: > >> Hi, >> >> 2015-01-23 8:12 GMT+02:00 Felix Schumacher < >> felix.schumac...@internetallee.de>: >>> >>> >>> Am 22.01.2015 um 21:54 schrieb fschumac...@apache.org: Author: fschumacher Date: Thu Jan 22 20:54:47 2015 New Revision: 1654064 URL: http://svn.apache.org/r1654064 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57420 Make UEncoder a local variable in DirContextURLConnection to make it >> >> threadsafe. Based on ideas from kkolinko and violetagg. Modified: >> >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: >> >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java URL: >> >> >> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java?rev=1654064&r1=1654063&r2=1654064&view=diff >> >> == --- >> >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java >> (original) +++ >> >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java >> Thu Jan 22 20:54:47 2015 @@ -42,6 +42,7 @@ import javax.naming.directory.DirContext import org.apache.naming.JndiPermission; import org.apache.tomcat.util.buf.UDecoder; import org.apache.tomcat.util.buf.UEncoder; +import org.apache.tomcat.util.buf.UEncoder.SafeCharsSet; >>> >>> >>> After enabling the checkstyle validation (being reminded by gump), I now >> >> see, that this import is not allowed by checkstyle. But I don't know why >> it >> is illegal. >> >> I do not see such behavior on my side. Everything is OK with >> DirContextURLConnection. > > > I didn't see anything also, until I enabled checkstyle locally by adding > "execute.validate=true" to my build.properties. > I can make the failure go away by adding SafeCharSet to the allowed classes: > > diff --git a/res/checkstyle/org-import-control.xml > b/res/checkstyle/org-import-control.xml > index 8d79419..85191a8 100644 > --- a/res/checkstyle/org-import-control.xml > +++ b/res/checkstyle/org-import-control.xml > @@ -110,6 +110,7 @@ > > > > + > > > > > Would this be acceptable? It is acceptable, as the purpose of that imports check is to disallow unexpected dependencies between jars. But personally I think it is more readable to just write the full form "UEncoder.SafeCharsSet.WITH_SLASH" on that one line where that enum is used. Best regards, Konstantin Kolinko - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r1654064 - in /tomcat/tc7.0.x/trunk: java/org/apache/naming/resources/DirContextURLConnection.java webapps/docs/changelog.xml
On 23/01/2015 08:51, Felix Schumacher wrote: > diff --git a/res/checkstyle/org-import-control.xml > b/res/checkstyle/org-import-control.xml > index 8d79419..85191a8 100644 > --- a/res/checkstyle/org-import-control.xml > +++ b/res/checkstyle/org-import-control.xml > @@ -110,6 +110,7 @@ > > > > + > > > > > Would this be acceptable? It would but I wonder why individual classes rather than packages are being defined there. It is worth a look at the JAR packaging and dependencies declared in the POMs to see of this could be simplified. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654148 - /tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java
Author: kkolinko Date: Fri Jan 23 09:05:29 2015 New Revision: 1654148 URL: http://svn.apache.org/r1654148 Log: Simplify. No change in functionality. Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java?rev=1654148&r1=1654147&r2=1654148&view=diff == --- tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java Fri Jan 23 09:05:29 2015 @@ -217,8 +217,7 @@ public class ELFunctionMapper { } // Setup arguments for either getMapForFunction or mapFunction -for (int i = 0; i < functions.size(); i++) { -ELNode.Function f = functions.get(i); +for (ELNode.Function f : functions) { FunctionInfo funcInfo = f.getFunctionInfo(); String fnQName = f.getPrefix() + ":" + f.getName(); if (funcInfo == null) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654152 - in /tomcat/tc8.0.x/trunk: ./ java/org/apache/catalina/core/StandardContext.java test/org/apache/catalina/core/TesterTldListener.java
Author: kkolinko Date: Fri Jan 23 09:15:31 2015 New Revision: 1654152 URL: http://svn.apache.org/r1654152 Log: Trivial followup to r1652938 (BZ 57446 fix). No change in functionality. Merged r1653888 from tomcat/trunk. Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TesterTldListener.java Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jan 23 09:15:31 2015 @@ -1 +1 @@ -/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1654013,1654030,1654050,1654123 +/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1654013,1654030,1654050,1654123 Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1654152&r1=1654151&r2=1654152&view=diff == --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Fri Jan 23 09:15:31 2015 @@ -214,7 +214,6 @@ public class StandardContext extends Con * The set of application listeners that are required to have limited access * to ServletContext methods. See Servlet 3.1 section 4.4. */ - private final Set noPluggabilityListeners = new HashSet<>(); /** Modified: tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TesterTldListener.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TesterTldListener.java?rev=1654152&r1=1654151&r2=1654152&view=diff == --- tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TesterTldListener.java (original) +++ tomcat/tc8.0
svn commit: r1654154 - in /tomcat/tc8.0.x/trunk: ./ java/org/apache/jasper/compiler/ELFunctionMapper.java
Author: kkolinko Date: Fri Jan 23 09:18:32 2015 New Revision: 1654154 URL: http://svn.apache.org/r1654154 Log: Simplify. No change in functionality. (Reviewing r1653857) Merged r1653972, r1654148 from tomcat/trunk. Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jan 23 09:18:32 2015 @@ -1 +1 @@ -/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1654013,1654030,1654050,1654123 +/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148 Modified: tomcat/tc8.0.x/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java?rev=1654154&r1=1654153&r2=1654154&view=diff == --- tomcat/tc8.0.x/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/jasper/compiler/ELFunctionMapper.java Fri Jan 23 09:18:32 2015 @@ -21,6 +21,9 @@ import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import javax.servlet.jsp.tagext.FunctionInfo; @@ -166,14 +169,12 @@ public class ELFunctionMapper { // Only care about functions in ELNode's class Fvisitor extends ELNode.Visitor { -private final ArrayList funcs = -new ArrayList<>(); -private final HashMap keyMap = new HashMap<>(); +private final List funcs = new ArrayList<>(); +private final Set keySet = new HashSet<>(); @Override
Re: svn commit: r1654064 - in /tomcat/tc7.0.x/trunk: java/org/apache/naming/resources/DirContextURLConnection.java webapps/docs/changelog.xml
2015-01-23 10:51 GMT+02:00 Felix Schumacher < felix.schumac...@internetallee.de>: > > Am 23.01.2015 09:46, schrieb Violeta Georgieva: > >> Hi, >> >> 2015-01-23 8:12 GMT+02:00 Felix Schumacher < >> felix.schumac...@internetallee.de>: >>> >>> >>> Am 22.01.2015 um 21:54 schrieb fschumac...@apache.org: Author: fschumacher Date: Thu Jan 22 20:54:47 2015 New Revision: 1654064 URL: http://svn.apache.org/r1654064 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57420 Make UEncoder a local variable in DirContextURLConnection to make it >> >> threadsafe. Based on ideas from kkolinko and violetagg. Modified: >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java URL: >> >> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java?rev=1654064&r1=1654063&r2=1654064&view=diff >> == --- >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java >> (original) +++ >> >> tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java >> Thu Jan 22 20:54:47 2015 @@ -42,6 +42,7 @@ import javax.naming.directory.DirContext import org.apache.naming.JndiPermission; import org.apache.tomcat.util.buf.UDecoder; import org.apache.tomcat.util.buf.UEncoder; +import org.apache.tomcat.util.buf.UEncoder.SafeCharsSet; >>> >>> >>> After enabling the checkstyle validation (being reminded by gump), I now >> >> see, that this import is not allowed by checkstyle. But I don't know why it >> is illegal. >> >> I do not see such behavior on my side. Everything is OK with >> DirContextURLConnection. > > > I didn't see anything also, until I enabled checkstyle locally by adding "execute.validate=true" to my build.properties. > I can make the failure go away by adding SafeCharSet to the allowed classes: Strange thing is that I do not see the problem in the Eclipse IDE but now when I executed the check from the console the problem appeared. > diff --git a/res/checkstyle/org-import-control.xml b/res/checkstyle/org-import-control.xml > index 8d79419..85191a8 100644 > --- a/res/checkstyle/org-import-control.xml > +++ b/res/checkstyle/org-import-control.xml > @@ -110,6 +110,7 @@ > > > > + > > > > > Would this be acceptable? > > Regards > Felix > > >> >> Regards, >> Violeta >> >>> Can anyone enlighten me on this? >>> >>> Thanks >>> Felix >>> > > - > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org >
[Bug 57438] Infinite redirect loop when maximum upload size exceeded
https://issues.apache.org/bugzilla/show_bug.cgi?id=57438 Martin Visser changed: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #2 from Martin Visser --- After changing the implementation in the Spring MVC controllers I managed to avoid the problem. I was unable to trace the redirects via Wireshark, but I still think it's something in Tomcat rather than in Spring. I did nothing in the Spring application, I only switched Tomcat versions. That's why I created this issue. But nonetheless, it works for me now, so this issue can be closed. -- 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
Time for 8.0.18
Given the regression in 8.0.17, I'm planning to tag 8.0.18 today. I'm starting running the unit tests now and I'll tag once I confirm that they are passing. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654159 - in /tomcat/trunk: java/org/apache/catalina/startup/LocalStrings.properties java/org/apache/catalina/startup/VersionLoggerListener.java webapps/docs/config/listeners.xml
Author: kkolinko Date: Fri Jan 23 09:59:43 2015 New Revision: 1654159 URL: http://svn.apache.org/r1654159 Log: Allow to log the system properties with VersionLoggerListener. This feature is off by default. Implementation note: this shall work even if keys/values in System properties are not String. (A recent notable issue caused by non-String values: https://bugs.eclipse.org/bugs/show_bug.cgi?id=445122 ) Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java tomcat/trunk/webapps/docs/config/listeners.xml Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1654159&r1=1654158&r2=1654159&view=diff == --- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Fri Jan 23 09:59:43 2015 @@ -132,6 +132,7 @@ versionLoggerListener.vm.version versionLoggerListener.vm.vendor=JVM Vendor:{0} versionLoggerListener.catalina.base=CATALINA_BASE: {0} versionLoggerListener.catalina.home=CATALINA_HOME: {0} -versionLoggerListener.env =Environment variable: {0} = {1} versionLoggerListener.arg =Command line argument: {0} +versionLoggerListener.env =Environment variable: {0} = {1} +versionLoggerListener.prop =System property: {0} = {1} webAnnotationSet.invalidInjection=Invalid method resource injection annotation. Modified: tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java?rev=1654159&r1=1654158&r2=1654159&view=diff == --- tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java Fri Jan 23 09:59:43 2015 @@ -19,8 +19,8 @@ package org.apache.catalina.startup; import java.lang.management.ManagementFactory; import java.util.List; import java.util.Map; -import java.util.SortedSet; -import java.util.TreeSet; +import java.util.SortedMap; +import java.util.TreeMap; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; @@ -44,6 +44,7 @@ public class VersionLoggerListener imple private boolean logArgs = true; private boolean logEnv = false; +private boolean logProps = false; public boolean getLogArgs() { @@ -66,6 +67,16 @@ public class VersionLoggerListener imple } +public boolean getLogProps() { +return logProps; +} + + +public void setLogProps(boolean logProps) { +this.logProps = logProps; +} + + @Override public void lifecycleEvent(LifecycleEvent event) { if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) { @@ -106,10 +117,19 @@ public class VersionLoggerListener imple } if (logEnv) { -Map envs = System.getenv(); -SortedSet keys = new TreeSet<>(envs.keySet()); -for (String key : keys) { -log.info(sm.getString("versionLoggerListener.env", key, envs.get(key))); +SortedMap sortedMap = new TreeMap<>(System.getenv()); +for (Map.Entry e : sortedMap.entrySet()) { +log.info(sm.getString("versionLoggerListener.env", e.getKey(), e.getValue())); +} +} + +if (logProps) { +SortedMap sortedMap = new TreeMap<>(); +for (Map.Entry e : System.getProperties().entrySet()) { +sortedMap.put(String.valueOf(e.getKey()), String.valueOf(e.getValue())); +} +for (Map.Entry e : sortedMap.entrySet()) { +log.info(sm.getString("versionLoggerListener.prop", e.getKey(), e.getValue())); } } } Modified: tomcat/trunk/webapps/docs/config/listeners.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/listeners.xml?rev=1654159&r1=1654158&r2=1654159&view=diff == --- tomcat/trunk/webapps/docs/config/listeners.xml (original) +++ tomcat/trunk/webapps/docs/config/listeners.xml Fri Jan 23 09:59:43 2015 @@ -446,6 +446,12 @@ false will be used. + +If true, the current Java system properties will be +logged. If not specified, the default value of +false will be used. + + - To unsubscribe,
svn commit: r1654161 - in /tomcat/tc8.0.x/trunk: ./ java/org/apache/catalina/startup/LocalStrings.properties java/org/apache/catalina/startup/VersionLoggerListener.java webapps/docs/changelog.xml weba
Author: kkolinko Date: Fri Jan 23 10:08:52 2015 New Revision: 1654161 URL: http://svn.apache.org/r1654161 Log: Allow to log the system properties with VersionLoggerListener. This feature is off by default. Merged r1654159 from tomcat/trunk. Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/VersionLoggerListener.java tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml tomcat/tc8.0.x/trunk/webapps/docs/config/listeners.xml Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jan 23 10:08:52 2015 @@ -1 +1 @@ -/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148 +/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148,1654159 Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1654161&r1=1654160&r2=1654161&view=diff == --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/startup/LocalStrings.properties Fri Jan 23 10:08:52 2015 @@ -132,6 +132,7 @@ versionLoggerListener.vm.version versionLoggerListener.vm.vendor=JVM Vendor:{0} versionLoggerListener.catalina.base=CATALINA_BASE: {0} versionLoggerListener.catalina.home=CATALINA_HOME: {0} -versionLoggerListener.env =Environment variable: {0} = {1} versionLoggerListener.arg =Command line argument: {0} +versionLoggerListener.env =Environm
svn commit: r1654179 - in /tomcat/tc8.0.x/tags/TOMCAT_8_0_18: ./ build.properties.default
Author: markt Date: Fri Jan 23 11:49:28 2015 New Revision: 1654179 URL: http://svn.apache.org/r1654179 Log: Tag 8.0.18 Added: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ (props changed) - copied from r1654178, tomcat/tc8.0.x/trunk/ Modified: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/build.properties.default Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- bugtraq:append = false Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- bugtraq:label = Bugzilla ID (optional) Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- --- bugtraq:logregex (added) +++ bugtraq:logregex Fri Jan 23 11:49:28 2015 @@ -0,0 +1,2 @@ +(https?\://issues.apache.org/bugzilla/show_bug.cgi\?id=\d+|BZ\s?\d+) +(\d+) Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- --- bugtraq:message (added) +++ bugtraq:message Fri Jan 23 11:49:28 2015 @@ -0,0 +1 @@ +Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=%BUGID% Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- bugtraq:number = true Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- bugtraq:url = https://issues.apache.org/bugzilla/show_bug.cgi?id=%BUGID% Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- bugtraq:warnifnoissue = false Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- --- svn:ignore (added) +++ svn:ignore Fri Jan 23 11:49:28 2015 @@ -0,0 +1,7 @@ +.* +build.properties +logs +nbproject +output +work +*.iml Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Jan 23 11:49:28 2015 @@ -0,0 +1 @@ +/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148,1654159 Propchange: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ -- svnmailer:content-charset = utf-8 Modified: tomcat/tc8.0.x/tags/TOMCAT_8_0_18/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/tags/TOMCAT_8_0_18/build.properties.default?rev=1654179&r1=1654178&r2=1654179&view=diff == --- tomcat/tc8.0.x/tags/TOMCAT_8_0_18/build.properties.default (original) +++ tomcat/tc8.0.x/tags/TOMCAT_8_0_18/build.properties.default Fri Jan 23 11:49:28 2015 @@ -27,7 +27,7 @@ version.major=8 version.minor=0 version.build=18 version.patch=0 -version.suffix=-dev +version.suffix= # - Build control flags - # Note enabling validation uses Checkstyle which is LGPL licensed - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 54217] JDBC connection pool runs out of connections when Context reload=“true” is enabled in Tomcat
https://issues.apache.org/bugzilla/show_bug.cgi?id=54217 --- Comment #15 from Michael Osipov <1983-01...@gmx.net> --- Levan, you probably want to use such a listener: http://mo-tomcat-ext.sourceforge.net/user-guide.html#CloseableResourceListener -- 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
[VOTE] Release Apache Tomcat 8.0.18
The proposed Apache Tomcat 8.0.18 release is now available for voting. The main changes since 8.0.17 are: - Fix a regression that resulted in truncated responses for forwarded responses larger than the output buffer There is also the usual collection of bug fixes, new features and performance improvements. For full details, see the changelog: http://svn.us.apache.org/repos/asf/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml It can be obtained from: https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.18/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-1030/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ The proposed 8.0.18 release is: [ ] Broken - do not release [ ] Stable - go ahead and release as 8.0.18 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 54217] JDBC connection pool runs out of connections when Context reload=“true” is enabled in Tomcat
https://issues.apache.org/bugzilla/show_bug.cgi?id=54217 --- Comment #16 from Levan --- (In reply to Michael Osipov from comment #15) > Levan, you probably want to use such a listener: > http://mo-tomcat-ext.sourceforge.net/user-guide. > html#CloseableResourceListener Thank you, Michael, for the suggestion. I have updated my answer on the Stack Overflow to mention your solution as an alternative. P.S. Btw, there is a typo in the description of the filter on this page http://mo-tomcat-ext.sourceforge.net/user-guide.html: "Prevents memory leaks caused by left open resources during undepoyment." I mean the word "undeployment". -- 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: r1654203 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/startup/LocalStrings.properties java/org/apache/catalina/startup/VersionLoggerListener.java webapps/docs/changelog.xml weba
Author: kkolinko Date: Fri Jan 23 13:29:05 2015 New Revision: 1654203 URL: http://svn.apache.org/r1654203 Log: Allow to log the system properties with VersionLoggerListener. This feature is off by default. Merged r1654161 from tomcat/tc8.0.x/trunk (r1654159 from tomcat/trunk). 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/VersionLoggerListener.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml tomcat/tc7.0.x/trunk/webapps/docs/config/listeners.xml Propchange: tomcat/tc7.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jan 23 13:29:05 2015 @@ -1,2 +1,2 @@ -/tomcat/tc8.0.x/trunk:1636525,1637336,1637685,1637709,1638726,1640089,1640276,1640349,1640363,1640366,1640642,1640672,1640674,1640689,1640884,1641001,1641065,1641067,1641375,1641638,1641723,1641726,1641729-1641730,1641736,1641988,1642669-1642670,1642698,1642701,1643205,1643215,1643217,1643230,1643232,1643273,1643285,1643329-1643330,1643511,1643513,1643521,1643539,1643571,1643581-1643582,1643635,1643655,1643738,1643964,1644018,1644333,1644954,1644992,1645014,1645360,1645456,1645627,1645642,1645686,1645903-1645904,1645908-1645909,1645913,1645920,1646458,1646460-1646462,1647043,1648816,1651420-1651422,1651844,1652939-1652940,1652973,1653798,1653817,1653841,1654042 -/tomcat/trunk:1156115-1157160,1157162-1157859,1157862-1157942,1157945-1160347,1160349-1163716,1163718-1166689,1166691-1174340,1174342-1175596,1175598-1175611,1175613-1175932,1175934-1177783,1177785-1177980,1178006-1180720,1180722-1183094,1183096-1187753,1187755,1187775,1187801,1187806,1187809,1187826-1188312,1188314-1188401,1188646-1188840,1188842-1190176,1190178-1195223,1195225-1195953,1195955,1195957-1201238,1201240-1203345,1203347-1206623,1206625-1208046,1208073,1208096,1208114,1208145,1208772,1209194-1212125,1212127-1220291,1220293,1220295-1221321,1221323-1222329,1222332-1222401,1222405-1222795,1222850-1222950,1222969-1225326,1225328-1225463,1225465,1225627,1225629-1226534,1226536-1228908,1228911-1228923,1228927-1229532,1229534-1230766,1230768-1231625,1231627-1233414,1233419-1235207,1235209-1237425,1237427,1237429-1237977,1237981,1237985,1237995,1238070,1238073,1239024-1239048,1239050-1239062,1239135,1239256,1239258-1239485,1239785-1240046,1240101,1240106,1240109,1240112,1240114 ,1240116,1240118,1240121,1240329,1240474-1240850,1240857,1241087,1241160,1241408-1241822,1241908-1241909,1241912-1242110,1242371-1292130,1292134-1292458,1292464-1292670,1292672-1292776,1292780-1293392,1293397-1297017,1297019-1297963,1297965-1299820,1300108,1300111-1300460,1300520-1300948,1300997,1301006,1301280,1302332,1302348,1302608-1302610,1302649,1302837,1303138,1303163,1303338,1303521,1303587,1303698,1303803,1303852,1304011,1304035,1304037,1304135,1304249,1304253,1304260,1304271,1304275,1304468,1304895,1304930-1304932,1305194,1305943,1305965,1306556,1306579-1306580,1307084,1307310,1307511-1307512,1307579,1307591,1307597,1310636,1310639-1310640,1310642,1310701,1311212,1311995,1327617,1327670,1331766,1333161,1333173,1333827,1334787,1335026,1335257,1335547,1335692,1335711,1335731,1336515,1336813,1336864,1336868,1336884,1337419,1337426,1337546,1337572,1337591-1337595,1337643,1337707,1337719,1337734,1337741,1337745,1338151-1338154,1338178,1342027,1342029,1342315,1342320,1342476,1342 498,1342503,1342717,1342795,1342805,1343044-1343046,1343335,1343394,1343400,1343629,1343708,1343718,1343895,1344063,1344068,1344250,1344266,1344515,1344528,1344612,1344629,1344725,1344868,1344890,1344893,1344896,1344901,1345020,1345029,1345039,1345287-1345290,1345294,1345309,1345325,1345357,1345367,1345579-1345580,1345582,1345688,1345699,1345704,1345731-1345732,1345737,1345744,1345752,1345754,1345779,1345781,1345846,1346107,1346365,1346376,1346404,1346510,1346514,1346519,1346581,1346635,1346644,1346683,1346794,1346885,1346932,1347034,1347047,1347087,1347108-1347109,1347583,1347737,1348105,1348357,1348398,1348425,1348461-1348495,1348498,1348752,1348762,1348772,1348776,1348859,1348968,1348973,1348989,1349007,1349237,1349298,1349317,1349410,1349473,1349539,1349879,1349887,1349893,1349922,1349984,1350124,1350241,1350243,1350294-1350295,1350299,1350864,1350900,1351010,1351054,1351056,1351068,1351134-1351135,1351148,1351259,1351604,1351636-1351640,1351991,1351993,1352011,1352056,1352059,1 352661,1352663,1352788,1352799,1353087,1353125,1353240,1353261,1353414,1353468,1353501,1353581,1353708,1354137,1354170,1354197,1354255,1354362,1354375,1354469,1354664,1354685,1354817,1354847,1354856,1355726,1355810,1356006-1356007,1356014,1356045,1356125,1356422,1356505,1356898,1357042,1357401,1357407,1358586,1358590,1358612-1358613,1359102,1359340,1359981,1360059,1360455,1360460,1360838,1360847,1360892,1360942,1361263,1361430,1361754-1361755,1361762,1361769,1361772,1361962,1361982,1361985,1361991,136414
[Bug 54217] JDBC connection pool runs out of connections when Context reload=“true” is enabled in Tomcat
https://issues.apache.org/bugzilla/show_bug.cgi?id=54217 --- Comment #17 from Michael Osipov <1983-01...@gmx.net> --- Oh thanks, I have checked spelling so often that I missed this one. -- 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.18
On 23/01/2015 13:09, Mark Thomas wrote: > The proposed Apache Tomcat 8.0.18 release is now available for voting. > > The main changes since 8.0.17 are: > - Fix a regression that resulted in truncated responses for > forwarded responses larger than the output buffer > > There is also the usual collection of bug fixes, new features and > performance improvements. For full details, see the changelog: > http://svn.us.apache.org/repos/asf/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml > > It can be obtained from: > https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.18/ > The Maven staging repo is: > https://repository.apache.org/content/repositories/orgapachetomcat-1030/ > The svn tag is: > http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ > > The proposed 8.0.18 release is: > [ ] Broken - do not release > [X] Stable - go ahead and release as 8.0.18 Unit tests pass for BIO, NIO, NIO2 and APR 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: [VOTE] Release Apache Tomcat 8.0.18
2015-01-23 14:09 GMT+01:00 Mark Thomas : > The proposed 8.0.18 release is: > [ ] Broken - do not release > [X] Stable - go ahead and release as 8.0.18 > > Rémy
[Bug 57472] performance (classloader?) problems with signed jars in WEB-INF/lib
https://issues.apache.org/bugzilla/show_bug.cgi?id=57472 --- Comment #1 from Mark Thomas --- 8MB+ will be too big for a Bugzilla attachment but if you can put the file somewhere I can download it, a web application that reproduces this issue would be much appreciated. -- 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.18
[X] Stable - go ahead and release as 8.0.18 Tested WebSockets & AsyncContext -- Jeanfrancois On 2015-01-23 8:09 AM, Mark Thomas wrote: The proposed Apache Tomcat 8.0.18 release is now available for voting. The main changes since 8.0.17 are: - Fix a regression that resulted in truncated responses for forwarded responses larger than the output buffer There is also the usual collection of bug fixes, new features and performance improvements. For full details, see the changelog: http://svn.us.apache.org/repos/asf/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml It can be obtained from: https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.18/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-1030/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_18/ The proposed 8.0.18 release is: [ ] Broken - do not release [ ] Stable - go ahead and release as 8.0.18 - 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
[Bug 57472] performance (classloader?) problems with signed jars in WEB-INF/lib
https://issues.apache.org/bugzilla/show_bug.cgi?id=57472 --- Comment #2 from ole.schulz-hildebra...@ppimedia.de --- I put an example application signedjar.war here: https://drive.google.com/file/d/0By0Iea2JkjtKdlI2SGFSaVg2ZWs/view?pli=1 -- 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: r1654280 - /tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java
Author: fschumacher Date: Fri Jan 23 17:33:20 2015 New Revision: 1654280 URL: http://svn.apache.org/r1654280 Log: Make checkstyle happy and remove forbidden import. Modified: tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java Modified: tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java?rev=1654280&r1=1654279&r2=1654280&view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/naming/resources/DirContextURLConnection.java Fri Jan 23 17:33:20 2015 @@ -42,7 +42,6 @@ import javax.naming.directory.DirContext import org.apache.naming.JndiPermission; import org.apache.tomcat.util.buf.UDecoder; import org.apache.tomcat.util.buf.UEncoder; -import org.apache.tomcat.util.buf.UEncoder.SafeCharsSet; import org.apache.tomcat.util.http.FastHttpDateFormat; /** @@ -432,7 +431,7 @@ public class DirContextURLConnection ext try { NamingEnumeration enumeration = collection.list("/"); -UEncoder urlEncoder = new UEncoder(SafeCharsSet.WITH_SLASH); +UEncoder urlEncoder = new UEncoder(UEncoder.SafeCharsSet.WITH_SLASH); while (enumeration.hasMoreElements()) { NameClassPair ncp = enumeration.nextElement(); String s = ncp.getName(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654315 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AprEndpoint.java Nio2Endpoint.java NioEndpoint.java SendfileDataBase.java
Author: markt Date: Fri Jan 23 19:02:27 2015 New Revision: 1654315 URL: http://svn.apache.org/r1654315 Log: Add a SendfileBase class and refactor the existing implementations to inherit from it. Added: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java (with props) Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654315&r1=1654314&r2=1654315&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:02:27 2015 @@ -1917,7 +1917,7 @@ public class AprEndpoint extends Abstrac /** * SendfileData class. */ -public static class SendfileData { +public static class SendfileData extends SendfileDataBase { // File public String fileName; public long fd; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1654315&r1=1654314&r2=1654315&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Jan 23 19:02:27 2015 @@ -1615,7 +1615,7 @@ public class Nio2Endpoint extends Abstra /** * SendfileData class. */ -public static class SendfileData { +public static class SendfileData extends SendfileDataBase { // File public String fileName; public FileChannel fchannel; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1654315&r1=1654314&r2=1654315&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Jan 23 19:02:27 2015 @@ -1755,7 +1755,7 @@ public class NioEndpoint extends Abstrac /** * SendfileData class. */ -public static class SendfileData { +public static class SendfileData extends SendfileDataBase { // File public volatile String fileName; public volatile FileChannel fchannel; Added: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java?rev=1654315&view=auto == --- tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java (added) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Fri Jan 23 19:02:27 2015 @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.net; + +public abstract class SendfileDataBase { + +} Propchange: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java -- svn:eol-style = native - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654316 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AprEndpoint.java Nio2Endpoint.java NioEndpoint.java SendfileDataBase.java
Author: markt Date: Fri Jan 23 19:02:35 2015 New Revision: 1654316 URL: http://svn.apache.org/r1654316 Log: Pull up keep-alive Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654316&r1=1654315&r2=1654316&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:02:35 2015 @@ -1929,8 +1929,6 @@ public class AprEndpoint extends Abstrac public long socket; // Position public long pos; -// KeepAlive flag -public boolean keepAlive; } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1654316&r1=1654315&r2=1654316&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Jan 23 19:02:35 2015 @@ -1621,8 +1621,6 @@ public class Nio2Endpoint extends Abstra public FileChannel fchannel; public long pos; public long length; -// KeepAlive flag -public boolean keepAlive; // Internal use only private Nio2SocketWrapper socket; private ByteBuffer buffer; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1654316&r1=1654315&r2=1654316&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Jan 23 19:02:35 2015 @@ -1761,7 +1761,5 @@ public class NioEndpoint extends Abstrac public volatile FileChannel fchannel; public volatile long pos; public volatile long length; -// KeepAlive flag -public volatile boolean keepAlive; } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java?rev=1654316&r1=1654315&r2=1654316&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Fri Jan 23 19:02:35 2015 @@ -18,4 +18,11 @@ package org.apache.tomcat.util.net; public abstract class SendfileDataBase { +/** + * Is the current request being processed on a keep-alive connection? This + * determines if the socket is closed once the send file completes or if + * processing continues with the next request on the connection (or waiting + * for that next request to arrive). + */ +public boolean keepAlive; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654317 - in /tomcat/trunk/java/org/apache: coyote/http11/Http11AprProcessor.java tomcat/util/net/AprEndpoint.java
Author: markt Date: Fri Jan 23 19:02:40 2015 New Revision: 1654317 URL: http://svn.apache.org/r1654317 Log: Align APR with NIO and NIO2. Remove start which was only ever used to initialise pos and initialise pos directly. Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654317&r1=1654316&r2=1654317&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:02:40 2015 @@ -375,7 +375,7 @@ public class Http11AprProcessor extends contentDelimitation = true; sendfileData = new AprEndpoint.SendfileData(); sendfileData.fileName = fileName; -sendfileData.start = ((Long) request.getAttribute( +sendfileData.pos = ((Long) request.getAttribute( org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); sendfileData.end = ((Long) request.getAttribute( org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue(); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654317&r1=1654316&r2=1654317&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:02:40 2015 @@ -1923,7 +1923,6 @@ public class AprEndpoint extends Abstrac public long fd; public long fdpool; // Range information -public long start; public long end; // Socket and socket pool public long socket; @@ -2024,7 +2023,6 @@ public class AprEndpoint extends Abstrac (data.fileName, File.APR_FOPEN_READ | File.APR_FOPEN_SENDFILE_ENABLED | File.APR_FOPEN_BINARY, 0, data.fdpool); -data.pos = data.start; // Set the socket to nonblocking mode Socket.timeoutSet(data.socket, 0); while (true) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654318 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AprEndpoint.java Nio2Endpoint.java NioEndpoint.java SendfileDataBase.java
Author: markt Date: Fri Jan 23 19:02:45 2015 New Revision: 1654318 URL: http://svn.apache.org/r1654318 Log: Pull up pos and filename Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654318&r1=1654317&r2=1654318&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:02:45 2015 @@ -1919,15 +1919,12 @@ public class AprEndpoint extends Abstrac */ public static class SendfileData extends SendfileDataBase { // File -public String fileName; public long fd; public long fdpool; // Range information public long end; // Socket and socket pool public long socket; -// Position -public long pos; } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1654318&r1=1654317&r2=1654318&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Jan 23 19:02:45 2015 @@ -1616,10 +1616,7 @@ public class Nio2Endpoint extends Abstra * SendfileData class. */ public static class SendfileData extends SendfileDataBase { -// File -public String fileName; public FileChannel fchannel; -public long pos; public long length; // Internal use only private Nio2SocketWrapper socket; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1654318&r1=1654317&r2=1654318&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Jan 23 19:02:45 2015 @@ -1756,10 +1756,7 @@ public class NioEndpoint extends Abstrac * SendfileData class. */ public static class SendfileData extends SendfileDataBase { -// File -public volatile String fileName; public volatile FileChannel fchannel; -public volatile long pos; public volatile long length; } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java?rev=1654318&r1=1654317&r2=1654318&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Fri Jan 23 19:02:45 2015 @@ -25,4 +25,17 @@ public abstract class SendfileDataBase { * for that next request to arrive). */ public boolean keepAlive; + +/** + * The full path to the file that contains the data to be written to the + * socket. + */ +public String fileName; + +/** + * The position of the next byte in the file to be written to the socket. + * This is initialised to the start point and then updated as the file is + * written. + */ +public long pos; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654319 - in /tomcat/trunk/java/org/apache: coyote/http11/Http11AprProcessor.java tomcat/util/net/AprEndpoint.java
Author: markt Date: Fri Jan 23 19:02:50 2015 New Revision: 1654319 URL: http://svn.apache.org/r1654319 Log: Refactor APR to use SendfileData.length rather than SendfileData.end to slign with NIO and NIO2. Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654319&r1=1654318&r2=1654319&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:02:50 2015 @@ -377,8 +377,8 @@ public class Http11AprProcessor extends sendfileData.fileName = fileName; sendfileData.pos = ((Long) request.getAttribute( org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); -sendfileData.end = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue(); +sendfileData.length = ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos; return true; } return false; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654319&r1=1654318&r2=1654319&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:02:50 2015 @@ -1922,7 +1922,7 @@ public class AprEndpoint extends Abstrac public long fd; public long fdpool; // Range information -public long end; +public long length; // Socket and socket pool public long socket; } @@ -2024,7 +2024,7 @@ public class AprEndpoint extends Abstrac Socket.timeoutSet(data.socket, 0); while (true) { long nw = Socket.sendfilen(data.socket, data.fd, - data.pos, data.end - data.pos, 0); + data.pos, data.length, 0); if (nw < 0) { if (!(-nw == Status.EAGAIN)) { Pool.destroy(data.fdpool); @@ -2035,8 +2035,9 @@ public class AprEndpoint extends Abstrac break; } } else { -data.pos = data.pos + nw; -if (data.pos >= data.end) { +data.pos += nw; +data.length -= nw; +if (data.length == 0) { // Entire file has been sent Pool.destroy(data.fdpool); // Set back socket to blocking mode @@ -2153,7 +2154,7 @@ public class AprEndpoint extends Abstrac // Write some data using sendfile long nw = Socket.sendfilen(state.socket, state.fd, state.pos, - state.end - state.pos, 0); + state.length, 0); if (nw < 0) { // Close socket and clear pool remove(state); @@ -2163,8 +2164,9 @@ public class AprEndpoint extends Abstrac continue; } -state.pos = state.pos + nw; -if (state.pos >= state.end) { +state.pos += nw; +state.length -= nw; +if (state.length == 0) { remove(state); if (state.keepAlive) { // Destroy file descriptor pool, which should close the file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654320 - in /tomcat/trunk/java/org/apache/tomcat/util/net: AprEndpoint.java Nio2Endpoint.java NioEndpoint.java SendfileDataBase.java
Author: markt Date: Fri Jan 23 19:02:55 2015 New Revision: 1654320 URL: http://svn.apache.org/r1654320 Log: Pull up length Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1654320&r1=1654319&r2=1654320&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Jan 23 19:02:55 2015 @@ -1921,8 +1921,6 @@ public class AprEndpoint extends Abstrac // File public long fd; public long fdpool; -// Range information -public long length; // Socket and socket pool public long socket; } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1654320&r1=1654319&r2=1654320&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Jan 23 19:02:55 2015 @@ -1617,7 +1617,6 @@ public class Nio2Endpoint extends Abstra */ public static class SendfileData extends SendfileDataBase { public FileChannel fchannel; -public long length; // Internal use only private Nio2SocketWrapper socket; private ByteBuffer buffer; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1654320&r1=1654319&r2=1654320&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Jan 23 19:02:55 2015 @@ -1757,6 +1757,5 @@ public class NioEndpoint extends Abstrac */ public static class SendfileData extends SendfileDataBase { public volatile FileChannel fchannel; -public volatile long length; } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java?rev=1654320&r1=1654319&r2=1654320&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java Fri Jan 23 19:02:55 2015 @@ -38,4 +38,11 @@ public abstract class SendfileDataBase { * written. */ public long pos; + +/** + * The number of bytes remaining to be written from the file (from the + * current {@link #pos}. This is initialised to the end point - the start + * point and then updated as the file is written. + */ +public long length; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654321 - in /tomcat/trunk/java/org/apache/tomcat/util/net: Nio2Endpoint.java SendfileState.java
Author: markt Date: Fri Jan 23 19:03:00 2015 New Revision: 1654321 URL: http://svn.apache.org/r1654321 Log: Extract SendfileState to a separate class Added: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileState.java (with props) Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1654321&r1=1654320&r2=1654321&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Fri Jan 23 19:03:00 2015 @@ -1353,10 +1353,6 @@ public class Nio2Endpoint extends Abstra ((Nio2SocketWrapper) socket).awaitBytes(); } -public enum SendfileState { -PENDING, DONE, ERROR -} - private CompletionHandler sendfile = new CompletionHandler() { @Override Added: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileState.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SendfileState.java?rev=1654321&view=auto == --- tomcat/trunk/java/org/apache/tomcat/util/net/SendfileState.java (added) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SendfileState.java Fri Jan 23 19:03:00 2015 @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.net; + +public enum SendfileState { + +/** + * The sending of the file has started but has not completed. Sendfile is + * still using the socket. + */ +PENDING, + +/** + * The file has been fully sent. Sendfile is no longer using the socket. + */ +DONE, + +/** + * Something went wrong. The file may or may not have been sent. The socket + * is in an unknown state. + */ +ERROR +} Propchange: tomcat/trunk/java/org/apache/tomcat/util/net/SendfileState.java -- svn:eol-style = native - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654322 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11AprProcessor.java Http11Nio2Processor.java Http11NioProcessor.java
Author: markt Date: Fri Jan 23 19:03:05 2015 New Revision: 1654322 URL: http://svn.apache.org/r1654322 Log: Re-order in preparation for further refactoring. Always set SendfileData.keepalive first. Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654322&r1=1654321&r2=1654322&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:05 2015 @@ -95,8 +95,8 @@ public class Http11AprProcessor extends openSocket = keepAlive; // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !getErrorState().isError()) { -sendfileData.socket = socketWrapper.getSocket().longValue(); sendfileData.keepAlive = keepAlive; +sendfileData.socket = socketWrapper.getSocket().longValue(); if (!((AprEndpoint)endpoint).getSendfile().add(sendfileData)) { // Didn't send all of the data to sendfile. if (sendfileData.socket == 0) { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654322&r1=1654321&r2=1654322&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:03:05 2015 @@ -125,8 +125,8 @@ public class Http11Nio2Processor extends openSocket = keepAlive; // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !getErrorState().isError()) { -((Nio2Endpoint.Nio2SocketWrapper) socketWrapper).setSendfileData(sendfileData); sendfileData.keepAlive = keepAlive; +((Nio2Endpoint.Nio2SocketWrapper) socketWrapper).setSendfileData(sendfileData); switch (((Nio2Endpoint) endpoint) .processSendfile((Nio2Endpoint.Nio2SocketWrapper) socketWrapper)) { case DONE: Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1654322&r1=1654321&r2=1654322&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Jan 23 19:03:05 2015 @@ -118,8 +118,8 @@ public class Http11NioProcessor extends openSocket = keepAlive; // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !getErrorState().isError()) { -((NioSocketWrapper) socketWrapper).setSendfileData(sendfileData); sendfileData.keepAlive = keepAlive; +((NioSocketWrapper) socketWrapper).setSendfileData(sendfileData); SelectionKey key = socketWrapper.getSocket().getIOChannel().keyFor( socketWrapper.getSocket().getPoller().getSelector()); //do the first write on this thread, might as well - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654323 - in /tomcat/trunk/java/org/apache: coyote/http11/ tomcat/util/net/
Author: markt Date: Fri Jan 23 19:03:11 2015 New Revision: 1654323 URL: http://svn.apache.org/r1654323 Log: Push socket type specific sendfile code down to SocketWrapper Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654323&r1=1654322&r2=1654323&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:11 2015 @@ -96,22 +96,19 @@ public class Http11AprProcessor extends // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !getErrorState().isError()) { sendfileData.keepAlive = keepAlive; -sendfileData.socket = socketWrapper.getSocket().longValue(); -if (!((AprEndpoint)endpoint).getSendfile().add(sendfileData)) { -// Didn't send all of the data to sendfile. -if (sendfileData.socket == 0) { -// The socket is no longer set. Something went wrong. -// Close the connection. Too late to set status code. -if (log.isDebugEnabled()) { -log.debug(sm.getString( -"http11processor.sendfile.error")); -} -setErrorState(ErrorState.CLOSE_NOW, null); -} else { -// The sendfile Poller will add the socket to the main -// Poller once sendfile processing is complete -sendfileInProgress = true; +switch (socketWrapper.processSendfile(sendfileData)) { +case DONE: +// If sendfile is complete, no need to break keep-alive loop +return false; +case PENDING: +sendfileInProgress = true; +return true; +case ERROR: +// Write failed +if (log.isDebugEnabled()) { +log.debug(sm.getString("http11processor.sendfile.error")); } +setErrorState(ErrorState.CLOSE_NOW, null); return true; } } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654323&r1=1654322&r2=1654323&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:03:11 2015 @@ -120,17 +120,18 @@ public class Http11Nio2Processor extends @Override -protected boolean breakKeepAliveLoop( -SocketWrapperBase socketWrapper) { +protected boolean breakKeepAliveLoop(SocketWrapperBase socketWrapper) { openSocket = keepAlive; // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !getErrorState().isError()) { sendfileData.keepAlive = keepAlive; -((Nio2Endpoint.Nio2SocketWrapper) socketWrapper).setSendfileData(sendfileData); -switch (((Nio2Endpoint) endpoint) -.processSendfile((Nio2Endpoint.Nio2SocketWrapper) socketWrapper)) { +switch (socketWrapper.processSendfile(sendfileData)) { case DONE: +// If sendfile is complete, no need to break keep-alive loop return false; +case PENDING: +sendfileInProgress = true; +return true; case ERROR: // Write failed if (log.isDebugEnabled()) { @@ -138,9 +139,6 @@ public class Http11Nio2Processor extends } setErrorState(ErrorState.CLOSE_NOW, null); return true; -case PENDING: -sendfileInProgress = true; -return true; } } return false; @@ -155,7 +153,6 @@ public class Http11Nio2Processor extends // - ActionHook Methods - /** * Send an action to the connecto
svn commit: r1654324 - in /tomcat/trunk/java/org/apache/coyote/http11: AbstractHttp11Processor.java Http11AprProcessor.java Http11Nio2Processor.java Http11NioProcessor.java
Author: markt Date: Fri Jan 23 19:03:16 2015 New Revision: 1654324 URL: http://svn.apache.org/r1654324 Log: Pull up sendfileData instance and breakKeepAliveLoop method This also enabled the removal of recycleInternal() Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1654324&r1=1654323&r2=1654324&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Fri Jan 23 19:03:16 2015 @@ -53,6 +53,7 @@ import org.apache.tomcat.util.log.UserDa import org.apache.tomcat.util.net.AbstractEndpoint; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.DispatchType; +import org.apache.tomcat.util.net.SendfileDataBase; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; @@ -227,6 +228,12 @@ public abstract class AbstractHttp11Proc protected HttpUpgradeHandler httpUpgradeHandler = null; +/** + * Sendfile data. + */ +protected SendfileDataBase sendfileData = null; + + public AbstractHttp11Processor(int maxHttpHeaderSize, AbstractEndpoint endpoint, int maxTrailerSize, int maxExtensionSize, int maxSwallowSize) { @@ -1769,10 +1776,32 @@ public abstract class AbstractHttp11Proc * Checks to see if the keep-alive loop should be broken, performing any * processing (e.g. sendfile handling) that may have an impact on whether * or not the keep-alive loop should be broken. + * * @return true if the keep-alive loop should be broken */ -protected abstract boolean breakKeepAliveLoop( -SocketWrapperBase socketWrapper); +protected boolean breakKeepAliveLoop(SocketWrapperBase socketWrapper) { +openSocket = keepAlive; +// Do sendfile as needed: add socket to sendfile and end +if (sendfileData != null && !getErrorState().isError()) { +sendfileData.keepAlive = keepAlive; +switch (socketWrapper.processSendfile(sendfileData)) { +case DONE: +// If sendfile is complete, no need to break keep-alive loop +return false; +case PENDING: +sendfileInProgress = true; +return true; +case ERROR: +// Write failed +if (getLog().isDebugEnabled()) { + getLog().debug(sm.getString("http11processor.sendfile.error")); +} +setErrorState(ErrorState.CLOSE_NOW, null); +return true; +} +} +return false; +} @Override @@ -1791,11 +1820,9 @@ public abstract class AbstractHttp11Proc httpUpgradeHandler = null; resetErrorState(); socketWrapper = null; -recycleInternal(); +sendfileData = null; } -protected abstract void recycleInternal(); - @Override public ByteBuffer getLeftoverInput() { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654324&r1=1654323&r2=1654324&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:16 2015 @@ -21,7 +21,6 @@ import java.security.cert.CertificateFac import java.security.cert.X509Certificate; import org.apache.coyote.ActionCode; -import org.apache.coyote.ErrorState; import org.apache.coyote.http11.filters.BufferedInputFilter; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -33,7 +32,6 @@ import org.apache.tomcat.jni.Socket; import org.apache.tomcat.util.net.AbstractEndpoint; import org.apache.tomcat.util.net.AprEndpoint; import org.apache.tomcat.util.net.SSLSupport; -import org.apache.tomcat.util.net.SocketWrapperBase; /** @@ -63,12 +61,6 @@ public class Http11AprProcessor extends // - Instance Variables /** - * Sendfile data. - */ -protected AprEndpoint.SendfileData sendfileData = null; - - -/** * When client certificate information is prese
svn commit: r1654326 - in /tomcat/trunk/java/org/apache/tomcat/util/net: NioEndpoint.java SocketWrapperBase.java
Author: markt Date: Fri Jan 23 19:03:26 2015 New Revision: 1654326 URL: http://svn.apache.org/r1654326 Log: Clarify expected behaviour if the sendfile doesn't complete in-line and fix and associated bug in the NIO refactoring. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1654326&r1=1654325&r2=1654326&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Jan 23 19:03:26 2015 @@ -1196,15 +1196,13 @@ public class NioEndpoint extends Abstrac } return SendfileState.DONE; } else { -if (!calledByProcessor) { -if (log.isDebugEnabled()) { -log.debug("OP_WRITE for sendfile: " + sd.fileName); -} -if (event) { - add(socketWrapper.getSocket(),SelectionKey.OP_WRITE); -} else { -reg(sk,socketWrapper,SelectionKey.OP_WRITE); -} +if (log.isDebugEnabled()) { +log.debug("OP_WRITE for sendfile: " + sd.fileName); +} +if (event) { +add(socketWrapper.getSocket(),SelectionKey.OP_WRITE); +} else { +reg(sk,socketWrapper,SelectionKey.OP_WRITE); } return SendfileState.PENDING; } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1654326&r1=1654325&r2=1654326&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Fri Jan 23 19:03:26 2015 @@ -511,6 +511,16 @@ public abstract class SocketWrapperBase< public abstract void regsiterForEvent(boolean read, boolean write); +/** + * Starts the sendfile process. It is expected that if the sendfile process + * does not complete during this call that the caller will not add + * the socket to the poller (or equivalent). That is the responsibility of + * this method. + * + * @param sendfileData Data representing the file to send + * + * @return The state of the sendfile process after the first write. + */ public abstract SendfileState processSendfile(SendfileDataBase sendfileData); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654325 - in /tomcat/trunk/java/org/apache/coyote/http11: AbstractHttp11Processor.java Http11AprProcessor.java Http11Nio2Processor.java Http11NioProcessor.java
Author: markt Date: Fri Jan 23 19:03:21 2015 New Revision: 1654325 URL: http://svn.apache.org/r1654325 Log: Another unnecessary method now sendfileData has moved to the AbstractHttp11Processor Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1654325&r1=1654324&r2=1654325&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Fri Jan 23 19:03:21 2015 @@ -1206,8 +1206,7 @@ public abstract class AbstractHttp11Proc http09 = false; contentDelimitation = false; expectation = false; - -prepareRequestInternal(); +sendfileData = null; if (endpoint.isSSLEnabled()) { request.scheme().setString("https"); @@ -1386,12 +1385,6 @@ public abstract class AbstractHttp11Proc /** - * Connector implementation specific request preparation. Ideally, this will - * go away in the future. - */ -protected abstract void prepareRequestInternal(); - -/** * When committing the response, we have to validate the set of headers, as * well as setup the response filters. */ Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654325&r1=1654324&r2=1654325&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:21 2015 @@ -316,12 +316,6 @@ public class Http11AprProcessor extends // -- Protected Methods - -@Override -protected void prepareRequestInternal() { -sendfileData = null; -} - @Override protected boolean prepareSendfile(OutputFilter[] outputFilters) { String fileName = (String) request.getAttribute( Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654325&r1=1654324&r2=1654325&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:03:21 2015 @@ -310,12 +310,6 @@ public class Http11Nio2Processor extends // -- Protected Methods - -@Override -protected void prepareRequestInternal() { -sendfileData = null; -} - @Override protected boolean prepareSendfile(OutputFilter[] outputFilters) { String fileName = (String) request.getAttribute( Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1654325&r1=1654324&r2=1654325&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Jan 23 19:03:21 2015 @@ -276,12 +276,6 @@ public class Http11NioProcessor extends // -- Protected Methods - -@Override -protected void prepareRequestInternal() { -sendfileData = null; -} - @Override protected boolean prepareSendfile(OutputFilter[] outputFilters) { String fileName = (String) request.getAttribute( @@ -308,5 +302,4 @@ public class Http11NioProcessor extends public void setSslSupport(SSLSupport sslSupport) { this.sslSupport = sslSupport; } - } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654327 - in /tomcat/trunk/java/org/apache: coyote/http11/ tomcat/util/net/
Author: markt Date: Fri Jan 23 19:03:32 2015 New Revision: 1654327 URL: http://svn.apache.org/r1654327 Log: Push creation of the SendfileData into the SocketWrapper Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SendfileDataBase.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654327&r1=1654326&r2=1654327&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:32 2015 @@ -324,12 +324,11 @@ public class Http11AprProcessor extends // No entity body sent here getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); contentDelimitation = true; -sendfileData = new AprEndpoint.SendfileData(); -sendfileData.fileName = fileName; -sendfileData.pos = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); -sendfileData.length = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos; +sendfileData = socketWrapper.createSendfileData(fileName, +((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), +((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); return true; } return false; Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654327&r1=1654326&r2=1654327&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:03:32 2015 @@ -318,12 +318,11 @@ public class Http11Nio2Processor extends // No entity body sent here getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); contentDelimitation = true; -sendfileData = new Nio2Endpoint.SendfileData(); -sendfileData.fileName = fileName; -sendfileData.pos = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); -sendfileData.length = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos; +sendfileData = socketWrapper.createSendfileData(fileName, +((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), +((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); return true; } return false; Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1654327&r1=1654326&r2=1654327&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Jan 23 19:03:32 2015 @@ -284,12 +284,11 @@ public class Http11NioProcessor extends // No entity body sent here getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); contentDelimitation = true; -sendfileData = new NioEndpoint.SendfileData(); -sendfileData.fileName = fileName; -sendfileData.pos = ((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); -sendfileData.length = ((Long) request.getAttribute( - org.apache.c
svn commit: r1654329 - /tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
Author: markt Date: Fri Jan 23 19:03:41 2015 New Revision: 1654329 URL: http://svn.apache.org/r1654329 Log: Fix refactoring bug. Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1654329&r1=1654328&r2=1654329&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Fri Jan 23 19:03:41 2015 @@ -1566,11 +1566,11 @@ public abstract class AbstractHttp11Proc // No entity body sent here getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); contentDelimitation = true; -sendfileData = socketWrapper.createSendfileData(fileName, -((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), -((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); +long pos = ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(); +long end = ((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue(); +sendfileData = socketWrapper.createSendfileData(fileName, pos, end - pos); return true; } return false; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654328 - in /tomcat/trunk/java/org/apache/coyote/http11: AbstractHttp11Processor.java Http11AprProcessor.java Http11Nio2Processor.java Http11NioProcessor.java
Author: markt Date: Fri Jan 23 19:03:37 2015 New Revision: 1654328 URL: http://svn.apache.org/r1654328 Log: Pull up prepareSendfile() Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1654328&r1=1654327&r2=1654328&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Fri Jan 23 19:03:37 2015 @@ -1559,7 +1559,22 @@ public abstract class AbstractHttp11Proc return connection.equals(Constants.CLOSE); } -abstract boolean prepareSendfile(OutputFilter[] outputFilters); +private boolean prepareSendfile(OutputFilter[] outputFilters) { +String fileName = (String) request.getAttribute( +org.apache.coyote.Constants.SENDFILE_FILENAME_ATTR); +if (fileName != null) { +// No entity body sent here + getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); +contentDelimitation = true; +sendfileData = socketWrapper.createSendfileData(fileName, +((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), +((Long) request.getAttribute( + org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); +return true; +} +return false; +} /** * Parse host. @@ -1772,7 +1787,7 @@ public abstract class AbstractHttp11Proc * * @return true if the keep-alive loop should be broken */ -protected boolean breakKeepAliveLoop(SocketWrapperBase socketWrapper) { +private boolean breakKeepAliveLoop(SocketWrapperBase socketWrapper) { openSocket = keepAlive; // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !getErrorState().isError()) { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654328&r1=1654327&r2=1654328&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:03:37 2015 @@ -312,25 +312,4 @@ public class Http11AprProcessor extends } } } - - -// -- Protected Methods - -@Override -protected boolean prepareSendfile(OutputFilter[] outputFilters) { -String fileName = (String) request.getAttribute( -org.apache.coyote.Constants.SENDFILE_FILENAME_ATTR); -if (fileName != null) { -// No entity body sent here - getOutputBuffer().addActiveFilter(outputFilters[Constants.VOID_FILTER]); -contentDelimitation = true; -sendfileData = socketWrapper.createSendfileData(fileName, -((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_START_ATTR)).longValue(), -((Long) request.getAttribute( - org.apache.coyote.Constants.SENDFILE_FILE_END_ATTR)).longValue() - sendfileData.pos); -return true; -} -return false; -} } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654328&r1=1654327&r2=1654328&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:03:37 2015 @@ -310,24 +310,6 @@ public class Http11Nio2Processor extends // -- Protected Methods -@Override -protected boolean prepareSendfile(OutputFilter[] outputFilters) { -String fileName = (String) request.getAttribute( -org.apache.coyote.Constants.SENDFILE_FILENAME_ATTR); -if (fileName != null) { -// No entity body sent here - getOutputBuffer().addActiveFilter(outputFilters[Con
svn commit: r1654333 - /tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
Author: markt Date: Fri Jan 23 19:16:54 2015 New Revision: 1654333 URL: http://svn.apache.org/r1654333 Log: Replace registerForEvent() with equivalent call that makes registerForEvent() unused. Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1654333&r1=1654332&r2=1654333&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Fri Jan 23 19:16:54 2015 @@ -877,7 +877,7 @@ public abstract class AbstractHttp11Proc break; } case NB_READ_INTEREST: { -registerForEvent(true, false); +socketWrapper.registerReadInterest(); break; } case REQUEST_BODY_FULLY_READ: { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654334 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
Author: markt Date: Fri Jan 23 19:19:49 2015 New Revision: 1654334 URL: http://svn.apache.org/r1654334 Log: Replace registerForEvent() with equivalent call that makes registerForEvent() unused (for AJP). Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1654334&r1=1654333&r2=1654334&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Jan 23 19:19:49 2015 @@ -582,7 +582,7 @@ public class AjpProcessor extends Abs } case NB_READ_INTEREST: { if (!endOfStream) { -registerForEvent(true, false); +socketWrapper.regsiterForEvent(true, false); } break; } @@ -644,7 +644,7 @@ public class AjpProcessor extends Abs request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, x); } } catch (IllegalStateException x) { -registerForEvent(false, true); +socketWrapper.regsiterForEvent(false, true); } } else if (status == SocketStatus.OPEN_READ && request.getReadListener() != null) { @@ -653,7 +653,7 @@ public class AjpProcessor extends Abs asyncStateMachine.asyncOperation(); } } catch (IllegalStateException x) { -registerForEvent(true, false); +socketWrapper.regsiterForEvent(true, false); } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654336 - in /tomcat/trunk/java/org/apache/coyote: AbstractProcessor.java ajp/AjpProcessor.java http11/Http11AprProcessor.java http11/Http11Nio2Processor.java http11/Http11NioProcessor.ja
Author: markt Date: Fri Jan 23 19:21:50 2015 New Revision: 1654336 URL: http://svn.apache.org/r1654336 Log: Remove unused code Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1654336&r1=1654335&r2=1654336&view=diff == --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Fri Jan 23 19:21:50 2015 @@ -205,14 +205,5 @@ public abstract class AbstractProcessor< @Override public abstract HttpUpgradeHandler getHttpUpgradeHandler(); - -/** - * Register the socket for the specified events. - * - * @param read Register the socket for read events - * @param write Register the socket for write events - */ -protected abstract void registerForEvent(boolean read, boolean write); - protected abstract Log getLog(); } Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1654336&r1=1654335&r2=1654336&view=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Jan 23 19:21:50 2015 @@ -1569,12 +1569,6 @@ public class AjpProcessor extends Abs @Override -protected void registerForEvent(boolean read, boolean write) { -socketWrapper.regsiterForEvent(read, write); -} - - -@Override protected Log getLog() { return log; } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1654336&r1=1654335&r2=1654336&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Jan 23 19:21:50 2015 @@ -83,13 +83,6 @@ public class Http11AprProcessor extends @Override -protected void registerForEvent(boolean read, boolean write) { -((AprEndpoint) endpoint).getPoller().add( -socketWrapper.getSocket().longValue(), -1, read, write); -} - - -@Override protected void resetTimeouts() { // NO-OP for APR } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java?rev=1654336&r1=1654335&r2=1654336&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Nio2Processor.java Fri Jan 23 19:21:50 2015 @@ -76,16 +76,6 @@ public class Http11Nio2Processor extends } } -@Override -protected void registerForEvent(boolean read, boolean write) { -if (read) { -socketWrapper.registerReadInterest(); -} -if (write) { -socketWrapper.registerWriteInterest(); -} -} - @Override protected void resetTimeouts() { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1654336&r1=1654335&r2=1654336&view=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Jan 23 19:21:50 2015 @@ -18,7 +18,6 @@ package org.apache.coyote.http11; import java.io.IOException; import java.net.InetAddress; -import java.nio.channels.SelectionKey; import javax.net.ssl.SSLEngine; @@ -62,22 +61,7 @@ public class Http11NioProcessor extends } -// - Public Methods - -@Override -protected void registerForEvent(boolean read, boolean write) { -final NioChannel socket = socketWrapper.getSocket(); - -int interestOps = 0; -if (read) { -interestOps = SelectionKey.OP_READ; -
svn commit: r1654359 - /tomcat/trunk/java/org/apache/juli/logging/Log.java
Author: markt Date: Fri Jan 23 20:11:00 2015 New Revision: 1654359 URL: http://svn.apache.org/r1654359 Log: Java 8 Javadoc fixes Modified: tomcat/trunk/java/org/apache/juli/logging/Log.java Modified: tomcat/trunk/java/org/apache/juli/logging/Log.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/logging/Log.java?rev=1654359&r1=1654358&r2=1654359&view=diff == --- tomcat/trunk/java/org/apache/juli/logging/Log.java (original) +++ tomcat/trunk/java/org/apache/juli/logging/Log.java Fri Jan 23 20:11:00 2015 @@ -71,6 +71,9 @@ public interface Log { * Call this method to prevent having to perform expensive operations * (for example, String concatenation) * when the log level is more than debug. + * + * @return true if debug level logging is enabled, otherwise + * false */ public boolean isDebugEnabled(); @@ -81,6 +84,9 @@ public interface Log { * Call this method to prevent having to perform expensive operations * (for example, String concatenation) * when the log level is more than error. + * + * @return true if error level logging is enabled, otherwise + * false */ public boolean isErrorEnabled(); @@ -91,6 +97,9 @@ public interface Log { * Call this method to prevent having to perform expensive operations * (for example, String concatenation) * when the log level is more than fatal. + * + * @return true if fatal level logging is enabled, otherwise + * false */ public boolean isFatalEnabled(); @@ -101,6 +110,9 @@ public interface Log { * Call this method to prevent having to perform expensive operations * (for example, String concatenation) * when the log level is more than info. + * + * @return true if info level logging is enabled, otherwise + * false */ public boolean isInfoEnabled(); @@ -111,6 +123,9 @@ public interface Log { * Call this method to prevent having to perform expensive operations * (for example, String concatenation) * when the log level is more than trace. + * + * @return true if trace level logging is enabled, otherwise + * false */ public boolean isTraceEnabled(); @@ -121,6 +136,9 @@ public interface Log { * Call this method to prevent having to perform expensive operations * (for example, String concatenation) * when the log level is more than warn. + * + * @return true if warn level logging is enabled, otherwise + * false */ public boolean isWarnEnabled(); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 wodenc...@gmail.com changed: What|Removed |Added OS|Linux |Windows 8 -- 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 57489] New: java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 Bug ID: 57489 Summary: java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled Product: Tomcat 8 Version: 8.0.15 Hardware: PC OS: Linux Status: NEW Severity: major Priority: P2 Component: WebSocket Assignee: dev@tomcat.apache.org Reporter: wodenc...@gmail.com Hello all, we have been trying to track down the cause of some strange exceptions produced by our application, that are related to the websocket connection somehow being dropped. This happens in multiple deployments of the application, but this one in particular is on a Windows 8 Machine. 2015-01-22 15:14:09,599 CST WARN [null] - Duplicate resource 7143de60-6212-4a06-8e2b-ce266c1d9769. Could be caused by a dead connection not detected by your server. Replacing the old one with the fresh one 2015-01-22 15:14:09,599 CST ERROR [null] - java.io.IOException: at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:276) at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:536) at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:464) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:441) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:435) at org.atmosphere.container.version.JSR356WebSocket.close(JSR356WebSocket.java:142) at org.atmosphere.websocket.WebSocket.close(WebSocket.java:273) at org.atmosphere.cpr.AtmosphereResponse.close(AtmosphereResponse.java:848) at org.atmosphere.cpr.AtmosphereResourceImpl.cancel(AtmosphereResourceImpl.java:779) at org.atmosphere.cpr.AtmosphereResourceImpl.close(AtmosphereResourceImpl.java:855) at com.vaadin.server.communication.AtmospherePushConnection.disconnect(AtmospherePushConnection.java:305) at com.vaadin.server.communication.PushHandler.disconnect(PushHandler.java:430) at com.vaadin.server.communication.PushHandler.onDisconnect(PushHandler.java:330) at org.atmosphere.cpr.AtmosphereResourceImpl.onDisconnect(AtmosphereResourceImpl.java:715) at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:618) at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:598) at org.atmosphere.cpr.AtmosphereResourceImpl.dirtyClose(AtmosphereResourceImpl.java:864) at org.atmosphere.cpr.DefaultBroadcaster.addAtmosphereResource(DefaultBroadcaster.java:1370) at org.atmosphere.cpr.AtmosphereResourceImpl.suspend(AtmosphereResourceImpl.java:408) at org.atmosphere.cpr.AtmosphereResourceImpl.suspend(AtmosphereResourceImpl.java:324) at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:131) at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253) at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56) at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:74) at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:205) at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:104) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075) at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:570) at org.atmosphere.websocket.DefaultWebSocketProcessor.open(DefaultWebSocketProcessor.java:215) at org.atmosphere.container.JSR356Endpoint.onOpen(JSR356Endpoint.java:198) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:138) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled at org.apache.tomcat.websocket.FutureToSendHandler.get(FutureToSendHandler.java:102) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:269) ... 39 more
[Bug 57490] New: Websocket client cannot connect from Tomcat servlet with a SecurityManager in place
https://issues.apache.org/bugzilla/show_bug.cgi?id=57490 Bug ID: 57490 Summary: Websocket client cannot connect from Tomcat servlet with a SecurityManager in place Product: Tomcat 8 Version: 8.0.17 Hardware: PC Status: NEW Severity: normal Priority: P2 Component: WebSocket Assignee: dev@tomcat.apache.org Reporter: mster...@gmail.com Created attachment 32393 --> https://issues.apache.org/bugzilla/attachment.cgi?id=32393&action=edit Repeat JSP file When using the Tomcat websocket client to connect to a websocket server from a servlet running with a SecurityManager, an AccessControlException is thrown even with a Java security policy that allows everything. This is an issue with the fix for bug 57091, which does not work when the websocket client is used where access to the "org.apache.tomcat." packages is restricted (as it is in the Catalina servlet container). Repeat using unmodified Tomcat 8.0.17 and JDK 8u31 in Win7 x64: 1) Add the following at the end of $CATALINA_BASE/conf/catalina.policy: grant { permission java.security.AllPermission; }; 2) Put the attached JSP file (repeat.jsp) into $CATALINA_BASE/webapps/examples/jsp (The repeat opens a websocket client to the echo websocket example server, sends a text message and then waits for and outputs the echoed response.) 3) Launch Tomcat from $CATALINA_BASE/bin with "catalina run -security" 4) Open http://127.0.0.1:8080/examples/jsp/repeat.jsp in a web browser Expected results: Output "Response from echo: Hello World!" in the browser. Actual results: An exception is printed to the console, and no output in the browser (until timeout). Exception in thread "anInnocuousThread" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.org.apache.tomcat.websocket") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457) at java.security.AccessController.checkPermission(AccessController.java:884) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1564) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:305) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.tomcat.websocket.AsyncChannelGroupUtil$AsyncIOThreadFactory.newThread(AsyncChannelGroupUtil.java:116) at java.util.concurrent.ThreadPoolExecutor$Worker.(ThreadPoolExecutor.java:612) at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:925) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1368) at org.apache.tomcat.util.threads.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:161) at org.apache.tomcat.util.threads.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:141) at sun.nio.ch.AsynchronousChannelGroupImpl.executeOnPooledThread(AsynchronousChannelGroupImpl.java:188) at sun.nio.ch.Invoker.invokeIndirectly(Invoker.java:212) at sun.nio.ch.Invoker.invoke(Invoker.java:188) at sun.nio.ch.Invoker.invoke(Invoker.java:297) at sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.completed(WindowsAsynchronousSocketChannelImpl.java:839) at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:397) at java.lang.Thread.run(Thread.java:745) at sun.misc.InnocuousThread.run(InnocuousThread.java:74) Exception in thread "anInnocuousThread" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.org.apache.tomcat.websocket") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457) at java.security.AccessController.checkPermission(AccessController.java:884) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1564) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:305) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.tomcat.websocket.AsyncChannelGroupUtil$AsyncIOThreadFactory.newThread(AsyncChannelGroupUtil.java:116) at java.util.concurrent.ThreadPoolExecutor$Worker.(ThreadPoolExecutor.java:612) at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:925) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1368) at org.apache.tomcat.util.threads.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:161) at org.apache.tomcat.util.threads.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:141)