Re: [VOTE] Release Apache Tomcat 8.0.27
Am 28.09.2015 um 13:26 schrieb Mark Thomas: The proposed Apache Tomcat 8.0.27 release is now available for voting. The main changes since 8.0.26 are: - Correctly handle \${ vs \$ escaping in JSP and EL - Fix for issues with NIO + SSL + sendfile - Various TLD parsing fixes - Fix multiple (mostly rare and/or zero impact) concurrency issues Note: Due to an issues with the Symantec code signing service (the certificates used to access the web-based admin GUI have all expired and infra is having to jump through some hoops to get new ones issues) the Windows Installer package has NOT been signed for this release. There is 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.27/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-1051/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_27/ The proposed 8.0.27 release is: [ ] Broken - do not release [x] Stable - go ahead and release as 8.0.27 (non-binding) Regards, Felix - 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 58469] web.xml were deleted after a Out of Memory problem by tomcat
https://bz.apache.org/bugzilla/show_bug.cgi?id=58469 Mark Thomaschanged: What|Removed |Added Resolution|--- |INVALID OS||All Status|NEW |RESOLVED --- Comment #1 from Mark Thomas --- Under no circumstances will Tomcat delete the web.xml for a current application. Tomcat will delete an upacked WAR in some circumstances. These are documented here: http://tomcat.apache.org/tomcat-7.0-doc/config/automatic-deployment.html Note that changes to a web.xml file would nornallt trigger a reload. Tomcat has no "Dynmaic web project" feature. -- 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 58457] After async request timeout, response is not closed + works on subsequent requests
https://bz.apache.org/bugzilla/show_bug.cgi?id=58457 --- Comment #3 from Mark Thomas--- If an application retains a reference and continues to use a response object after the original request/rsponse has been completed the behaviour is undefined. I'm not at all surprised by the behaviour you describe. Again, if you want to protect against these sorts of application bugs (at the expense of some performance) then use org.apache.catalina.connector.RECYCLE_FACADES. -- 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: r1706018 - in /tomcat/tc8.0.x/trunk: ./ java/org/apache/jasper/compiler/Parser.java java/org/apache/jasper/resources/LocalStrings.properties webapps/docs/changelog.xml
Author: markt Date: Wed Sep 30 12:52:01 2015 New Revision: 1706018 URL: http://svn.apache.org/viewvc?rev=1706018=rev Log: Fix issue reported by violetagg during 8.0.27 vote. Improve error message to include name of attribute. Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/jasper/compiler/Parser.java tomcat/tc8.0.x/trunk/java/org/apache/jasper/resources/LocalStrings.properties tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Sep 30 12:52:01 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,1649973,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,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655351,1655438,1655441,1655454,168,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657592,1657607,1657 609,1657682,1657907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659188-1659189,1659216,1659263,1659293,1659304,1659306-1659307,1659382,1659384,1659428,1659471,1659486,1659505,1659516,1659521,1659524,1659559,1659562,1659803,1659806,1659814,1659833,1659862,1659905,1659919,1659948,1659967,1659983-1659984,1660060,1660074,1660077,1660133,1660168,1660331-1660332,1660353,1660358,1660924,1661386,1661867,1661972,1661990,1662200,1662308-1662309,1662548,1662614,1662736,1662985,1662988-1662989,1663264,1663277,1663298,1663534,1663562,1663676,1663715,1663754,1663768,1663772,1663781,1663893,1663995,1664143,1664163,1664174,1664301,1664317,1664347,1664657,1664659,1664710,1664863-1664864,1664866,1665085,1665292,1665559,1665653,1665661,1665672,1665694,1665697,1665736,1665779,1665976-1665977,1665980-1665981,1665985-1665986,1665989,1665998,1666004,1666008,1666013,1666017,1666024,1666116,1666386-1666387,1666494,1666496,1666552,1666569,1666579,1 37,149,1666757,1666966,1666972,1666985,1666995,1666997,1667292,1667402,1667406,1667546,1667615,1667630,1667636,1667688,1667764,1667871,1668026,1668135,1668193,1668593,1668596,1668630,1668639,1668843,1669353,1669370,1669451,1669800,1669838,1669876,1669882,1670394,1670433,1670591,1670598-1670600,1670610,1670631,1670719,1670724,1670726,1670730,1670940,1671112,1672272,1672284,1673754,1674294,1675461,1675486,1675594,1675830,1676231,1676250-1676251,1676364,1676381,1676393,1676479,1676525,1676552,1676615,1676630,1676634,1676721,1676926,1676943,1677140,1677802,1678011,1678162,1678174,1678339,1678426-1678427,1678694,1678701,1679534,1679708,1679710,1679716,1680034,1680246,1681056,1681123,1681138,1681280,1681283,1681286,1681450,1681697,1681701,1681729,1681770,1681779,1681793,1681807,1681837-1681838,1681854,1681862,1681958,1682028,1682033,1682311,1682315,1682317,1682320,1682324,1682330,1682842,1684172,1684366,1684383,1684526-1684527,1684549-1684550,1685556,1685591,1685739,1685744,168577
svn commit: r1706023 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
Author: markt Date: Wed Sep 30 13:26:44 2015 New Revision: 1706023 URL: http://svn.apache.org/viewvc?rev=1706023=rev Log: Simplify. No point sending flush message if an I/O error has already happened. 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=1706023=1706022=1706023=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:26:44 2015 @@ -335,18 +335,15 @@ public class AjpProcessor extends Abstra if (response.isCommitted()) return; -// Validate and write response headers try { +// Validate and write response headers prepareResponse(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); -} - -try { +// Tell the proxy to flush this data to the client flush(false); } catch (IOException e) { setErrorState(ErrorState.CLOSE_NOW, e); } + break; } case CLOSE: { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706036 - in /tomcat/trunk/java/org/apache/coyote/http2: Stream.java StreamProcessor.java
Author: markt Date: Wed Sep 30 13:50:36 2015 New Revision: 1706036 URL: http://svn.apache.org/viewvc?rev=1706036=rev Log: Align CLOSE with other implementations - call COMMIT first - handle the flush in the close/finish/end/whatever method Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1706036=1706035=1706036=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Wed Sep 30 13:50:36 2015 @@ -430,8 +430,9 @@ public class Stream extends AbstractStre return written; } -public void close() { +public void close() throws IOException { closed = true; +flushData(); } public boolean isClosed() { Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1706036=1706035=1706036=diff == --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Wed Sep 30 13:50:36 2015 @@ -131,10 +131,12 @@ public class StreamProcessor extends Abs break; } case CLOSE: { -// Tell the output buffer there will be no more data -stream.getOutputBuffer().close(); -// Then flush it -action(ActionCode.CLIENT_FLUSH, null); +action(ActionCode.COMMIT, null); +try { +stream.getOutputBuffer().close(); +} catch (IOException ioe) { +// TODO +} break; } case CLIENT_FLUSH: { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 58464] servletRequest.getHeaderNames() returns all header names in lower case
https://bz.apache.org/bugzilla/show_bug.cgi?id=58464 --- Comment #3 from Mark Thomas--- Tomcat stores the headers with lower case names to simplfy the lookup of headers (case sensitive rather than case insenstive lookups). Unless there is something in one of the specifications that Tomcat implements that mandates header case is preserved (unlikely given that the HTTP spec states header names are case insensitive) this is going to get resolved as WONTFIX. -- 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 58464] servletRequest.getHeaderNames() returns all header names in lower case
https://bz.apache.org/bugzilla/show_bug.cgi?id=58464 Christoph Tornauchanged: What|Removed |Added CC||tor...@gmail.com -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706022 - in /tomcat/trunk/java/org/apache/coyote: ajp/AjpProcessor.java http11/Http11Processor.java
Author: markt Date: Wed Sep 30 13:22:37 2015 New Revision: 1706022 URL: http://svn.apache.org/viewvc?rev=1706022=rev Log: Re-order action implementations to allow easier comparison between Processor implementations Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.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=1706022=1706021=1706022=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:22:37 2015 @@ -331,17 +331,6 @@ public class AjpProcessor extends Abstra public final void action(ActionCode actionCode, Object param) { switch (actionCode) { -case CLOSE: { -// End the processing of the current request, and stop any further -// transactions with the client - -try { -finish(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); -} -break; -} case COMMIT: { if (response.isCommitted()) return; @@ -358,6 +347,17 @@ public class AjpProcessor extends Abstra } catch (IOException e) { setErrorState(ErrorState.CLOSE_NOW, e); } +break; +} +case CLOSE: { +// End the processing of the current request, and stop any further +// transactions with the client + +try { +finish(); +} catch (IOException e) { +setErrorState(ErrorState.CLOSE_NOW, e); +} break; } case ACK: { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1706022=1706021=1706022=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Sep 30 13:22:37 2015 @@ -653,15 +653,6 @@ public class Http11Processor extends Abs public final void action(ActionCode actionCode, Object param) { switch (actionCode) { -case CLOSE: { -// End the processing of the current request -try { -outputBuffer.endRequest(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); -} -break; -} case COMMIT: { // Commit current response if (response.isCommitted()) { @@ -675,6 +666,15 @@ public class Http11Processor extends Abs } catch (IOException e) { setErrorState(ErrorState.CLOSE_NOW, e); } +break; +} +case CLOSE: { +// End the processing of the current request +try { +outputBuffer.endRequest(); +} catch (IOException e) { +setErrorState(ErrorState.CLOSE_NOW, e); +} break; } case ACK: { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706024 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
Author: markt Date: Wed Sep 30 13:29:11 2015 New Revision: 1706024 URL: http://svn.apache.org/viewvc?rev=1706024=rev Log: Remove call that is always a NO-OP. 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=1706024=1706023=1706024=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:29:11 2015 @@ -338,8 +338,6 @@ public class AjpProcessor extends Abstra try { // Validate and write response headers prepareResponse(); -// Tell the proxy to flush this data to the client -flush(false); } catch (IOException e) { setErrorState(ErrorState.CLOSE_NOW, e); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706030 - in /tomcat/trunk/java/org/apache/coyote: ajp/AjpProcessor.java http11/Http11Processor.java
Author: markt Date: Wed Sep 30 13:32:19 2015 New Revision: 1706030 URL: http://svn.apache.org/viewvc?rev=1706030=rev Log: Small steps towards aligning action() implementations. Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.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=1706030=1706029=1706030=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:32:19 2015 @@ -332,16 +332,14 @@ public class AjpProcessor extends Abstra switch (actionCode) { case COMMIT: { -if (response.isCommitted()) -return; - -try { -// Validate and write response headers -prepareResponse(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); +if (!response.isCommitted()) { +try { +// Validate and write response headers +prepareResponse(); +} catch (IOException e) { +setErrorState(ErrorState.CLOSE_NOW, e); +} } - break; } case CLOSE: { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1706030=1706029=1706030=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Sep 30 13:32:19 2015 @@ -655,16 +655,14 @@ public class Http11Processor extends Abs switch (actionCode) { case COMMIT: { // Commit current response -if (response.isCommitted()) { -return; -} - -// Validate and write response headers -try { -prepareResponse(); -outputBuffer.commit(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); +if (!response.isCommitted()) { +// Validate and write response headers +try { +prepareResponse(); +outputBuffer.commit(); +} catch (IOException e) { +setErrorState(ErrorState.CLOSE_NOW, e); +} } break; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706035 - in /tomcat/trunk/java/org/apache/coyote: ajp/AjpProcessor.java http11/Http11OutputBuffer.java http11/Http11Processor.java
Author: markt Date: Wed Sep 30 13:49:32 2015 New Revision: 1706035 URL: http://svn.apache.org/viewvc?rev=1706035=rev Log: More removal of duplicate code to commit a response. Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.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=1706035=1706034=1706035=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:49:32 2015 @@ -343,9 +343,7 @@ public class AjpProcessor extends Abstra break; } case CLOSE: { -// End the processing of the current request, and stop any further -// transactions with the client - +action(ActionCode.COMMIT, null); try { finish(); } catch (IOException e) { @@ -1388,17 +1386,6 @@ public class AjpProcessor extends Abstra * Finish AJP response. */ private void finish() throws IOException { - -if (!response.isCommitted()) { -// Validate and write response headers -try { -prepareResponse(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); -return; -} -} - if (finished) return; Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java?rev=1706035=1706034=1706035=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java Wed Sep 30 13:49:32 2015 @@ -307,14 +307,6 @@ public class Http11OutputBuffer implemen * @throws IOException an underlying I/O error occurred */ public void endRequest() throws IOException { - -if (!committed) { -// Send the connector a request for commit. The connector should -// then validate the headers, send them (using sendHeader) and -// set the filters accordingly. -response.action(ActionCode.COMMIT, null); -} - if (finished) { return; } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1706035=1706034=1706035=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Sep 30 13:49:32 2015 @@ -666,7 +666,7 @@ public class Http11Processor extends Abs break; } case CLOSE: { -// End the processing of the current request +action(ActionCode.COMMIT, null); try { outputBuffer.endRequest(); } catch (IOException e) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706017 - in /tomcat/trunk/java/org/apache/jasper: compiler/Parser.java resources/LocalStrings.properties
Author: markt Date: Wed Sep 30 12:49:35 2015 New Revision: 1706017 URL: http://svn.apache.org/viewvc?rev=1706017=rev Log: Fix issue reported by violetagg during 8.0.27 vote. Improve error message to include name of attribute. Modified: tomcat/trunk/java/org/apache/jasper/compiler/Parser.java tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties Modified: tomcat/trunk/java/org/apache/jasper/compiler/Parser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/Parser.java?rev=1706017=1706016=1706017=diff == --- tomcat/trunk/java/org/apache/jasper/compiler/Parser.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/Parser.java Wed Sep 30 12:49:35 2015 @@ -232,7 +232,7 @@ class Parser implements TagConstants { } watchString = watchString + quote; -String attrValue = parseAttributeValue(watchString, ignoreEL); +String attrValue = parseAttributeValue(qName, watchString, ignoreEL); attrs.addAttribute(uri, localName, qName, "CDATA", attrValue); return true; } @@ -263,11 +263,11 @@ class Parser implements TagConstants { * RTAttributeValueDouble ::= ((QuotedChar - '"')* - ((QuotedChar-'"')'%>"') * ('%>"' | TRANSLATION_ERROR) */ -private String parseAttributeValue(String watch, boolean ignoreEL) throws JasperException { +private String parseAttributeValue(String qName, String watch, boolean ignoreEL) throws JasperException { Mark start = reader.mark(); Mark stop = reader.skipUntilIgnoreEsc(watch, ignoreEL); if (stop == null) { -err.jspError(start, "jsp.error.attribute.unterminated", watch); +err.jspError(start, "jsp.error.attribute.unterminated", qName); } String ret = null; Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties?rev=1706017=1706016=1706017=diff == --- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties Wed Sep 30 12:49:35 2015 @@ -250,7 +250,7 @@ jsp.error.tld.mandatory.element.missing= jsp.error.dynamic.attributes.not.implemented=The {0} tag declares that it accepts dynamic attributes but does not implement the required interface jsp.error.attribute.noequal=equal symbol expected jsp.error.attribute.noquote=quote symbol expected -jsp.error.attribute.unterminated=attribute for {0} is not properly terminated +jsp.error.attribute.unterminated=attribute value for [{0}] is not properly terminated jsp.error.attribute.noescape=Attribute value {0} is quoted with {1} which must be escaped when used within the value jsp.error.attribute.nowhitespace=The JSP specification requires that an attribute name is preceded by whitespace jsp.error.attribute.duplicate=Attribute qualified names must be unique within an element - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706032 - in /tomcat/trunk/java/org/apache/coyote/http11: Http11OutputBuffer.java Http11Processor.java
Author: markt Date: Wed Sep 30 13:37:07 2015 New Revision: 1706032 URL: http://svn.apache.org/viewvc?rev=1706032=rev Log: Refactor to align Processor implementations. The other processors call commit from the CLIENT_FLUSH action Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java?rev=1706032=1706031=1706032=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11OutputBuffer.java Wed Sep 30 13:37:07 2015 @@ -233,14 +233,6 @@ public class Http11OutputBuffer implemen * @throws IOException an underlying I/O error occurred */ public void flush() throws IOException { - -if (!committed) { -// Send the connector a request for commit. The connector should -// then validate the headers, send them (using sendHeader) and -// set the filters accordingly. -response.action(ActionCode.COMMIT, null); -} - // go through the filters and if there is gzip filter // invoke it to flush for (int i = 0; i <= lastActiveFilter; i++) { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1706032=1706031=1706032=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Sep 30 13:37:07 2015 @@ -692,6 +692,7 @@ public class Http11Processor extends Abs break; } case CLIENT_FLUSH: { +action(ActionCode.COMMIT, null); try { outputBuffer.flush(); } catch (IOException e) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706033 - in /tomcat/trunk/java/org/apache/coyote: ajp/AjpProcessor.java http11/Http11Processor.java
Author: markt Date: Wed Sep 30 13:41:57 2015 New Revision: 1706033 URL: http://svn.apache.org/viewvc?rev=1706033=rev Log: Cosmetic changes to align implementations Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.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=1706033=1706032=1706033=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:41:57 2015 @@ -329,8 +329,8 @@ public class AjpProcessor extends Abstra */ @Override public final void action(ActionCode actionCode, Object param) { - switch (actionCode) { +// 'Normal' servlet support case COMMIT: { if (!response.isCommitted()) { try { Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1706033=1706032=1706033=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Sep 30 13:41:57 2015 @@ -651,13 +651,12 @@ public class Http11Processor extends Abs */ @Override public final void action(ActionCode actionCode, Object param) { - switch (actionCode) { +// 'Normal' servlet support case COMMIT: { -// Commit current response if (!response.isCommitted()) { -// Validate and write response headers try { +// Validate and write response headers prepareResponse(); outputBuffer.commit(); } catch (IOException e) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706034 - in /tomcat/trunk/java/org/apache/coyote/http2: Stream.java StreamProcessor.java
Author: markt Date: Wed Sep 30 13:42:29 2015 New Revision: 1706034 URL: http://svn.apache.org/viewvc?rev=1706034=rev Log: The other processors handle this I/O error in the action Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1706034=1706033=1706034=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Wed Sep 30 13:42:29 2015 @@ -232,13 +232,8 @@ public class Stream extends AbstractStre } -void writeHeaders() { -try { -handler.writeHeaders(this, coyoteResponse); -} catch (IOException e) { -// TODO Handle this -e.printStackTrace(); -} +void writeHeaders() throws IOException { +handler.writeHeaders(this, coyoteResponse); } Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1706034=1706033=1706034=diff == --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Wed Sep 30 13:42:29 2015 @@ -121,8 +121,12 @@ public class StreamProcessor extends Abs // 'Normal' servlet support case COMMIT: { if (!response.isCommitted()) { -response.setCommitted(true); -stream.writeHeaders(); +try { +response.setCommitted(true); +stream.writeHeaders(); +} catch (IOException ioe) { +// TODO: Handle this +} } break; } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706027 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
Author: markt Date: Wed Sep 30 13:30:35 2015 New Revision: 1706027 URL: http://svn.apache.org/viewvc?rev=1706027=rev Log: Simply. flush(boolean) was only ever called with true 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=1706027=1706026=1706027=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:30:35 2015 @@ -371,7 +371,7 @@ public class AjpProcessor extends Abstra } try { -flush(true); +flush(); } catch (IOException e) { setErrorState(ErrorState.CLOSE_NOW, e); } @@ -1383,11 +1383,11 @@ public class AjpProcessor extends Abstra /** * Callback to write data from the buffer. */ -private void flush(boolean explicit) throws IOException { +private void flush() throws IOException { // Calling code should ensure that there is no data in the buffers for // non-blocking writes. // TODO Validate the assertion above -if (explicit && !finished) { +if (!finished) { // Send the flush message socketWrapper.write(true, flushMessageArray, 0, flushMessageArray.length); socketWrapper.flush(true); - 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.27
On 29/09/2015 20:58, Violeta Georgieva wrote: > 2015-09-29 22:48 GMT+03:00 Mark Thomas: >> >> On 29/09/2015 20:37, Violeta Georgieva wrote: >>> org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() > for >>> servlet [jsp] in context with path [/test] threw exception [/el-misc.jsp >>> (line: 44, column: 21) attribute for " is not properly terminated] with >>> root cause >>> org.apache.jasper.JasperException: /el-misc.jsp (line: 44, column: 21) >>> attribute for " is not properly terminated >> >> Ah. When you say the exception is bad do you mean it should report >> [echo] rather than ["] in the error message above? That does seem like a >> reasonable requirement. > > Yep the exception should give more information > >> So far, I haven't seen anything that I think is serious enough to stop >> the 8.0.27 release. > > Agree. As I wrote I didn't find anything in the spec, but I was not sure > whether I miss something or not. > Now as you also pointed that this is wrong I think that the exception > message can be changed in the next release and we can continue with voting. Fixed for 8.0.28. Mark - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706031 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
Author: markt Date: Wed Sep 30 13:33:45 2015 New Revision: 1706031 URL: http://svn.apache.org/viewvc?rev=1706031=rev Log: Refactor to remove duplicate code 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=1706031=1706030=1706031=diff == --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Sep 30 13:33:45 2015 @@ -358,16 +358,7 @@ public class AjpProcessor extends Abstra break; } case CLIENT_FLUSH: { -if (!response.isCommitted()) { -// Validate and write response headers -try { -prepareResponse(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); -return; -} -} - +action(ActionCode.COMMIT, null); try { flush(); } catch (IOException e) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GUMP@vmgump]: Project tomcat-trunk-test-nio (in module tomcat-trunk) failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact the folk at gene...@gump.apache.org. Project tomcat-trunk-test-nio has an issue affecting its community integration. This issue affects 1 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - tomcat-trunk-test-nio : Tomcat 9.x, a web server implementing the Java Servlet 4.0, ... Full details are available at: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on commons-daemon exists, no need to add for property commons-daemon.native.src.tgz. -DEBUG- Dependency on commons-daemon exists, no need to add for property tomcat-native.tar.gz. -INFO- Failed with reason build failed -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/logs-NIO -INFO- Project Reports in: /srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO/logs -WARNING- No directory [/srv/gump/public/workspace/tomcat-trunk/output/test-tmp-NIO/logs] The following work was performed: http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test-nio/gump_work/build_tomcat-trunk_tomcat-trunk-test-nio.html Work Name: build_tomcat-trunk_tomcat-trunk-test-nio (Type: Build) Work ended in a state of : Failed Elapsed: 46 mins 16 secs Command Line: /usr/lib/jvm/java-8-oracle/bin/java -Djava.awt.headless=true -Dbuild.sysclasspath=only org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Djunit.jar=/srv/gump/public/workspace/junit/target/junit-4.13-SNAPSHOT.jar -Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.3-SNAPSHOT.jar -Dtest.reports=output/logs-NIO -Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150930-native-src.tar.gz -Dexamples.sources.skip=true -Djdt.jar=/srv/gump/packages/eclipse/plugins/R-4.5-201506032000/ecj-4.5.jar -Dtest.relaxTiming=true -Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20150930.jar -Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20150930-native-src.tar.gz -Dtest.temp=output/test-tmp-NIO -Dtest.accesslog=true -Dexecute.test.nio=true -Dtest.openssl.path=/srv/gump/public/workspace/openssl-ma ster/dest-20150930/bin/openssl -Dexecute.test.apr=false -Dtest.excludePerformance=true -Dexecute.test.nio2=false -Deasymock.jar=/srv/gump/public/workspace/easymock/core/target/easymock-3.5-SNAPSHOT.jar -Dhamcrest.jar=/srv/gump/packages/hamcrest/hamcrest-core-1.3.jar -Dcglib.jar=/srv/gump/packages/cglib/cglib-nodep-2.2.jar test [Working Directory: /srv/gump/public/workspace/tomcat-trunk] CLASSPATH: /usr/lib/jvm/java-8-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-trunk/output/testclasses:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/servlet-api.ja r:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/websocket-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jaspic-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-storeconfig.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-tribes.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-api.jar:/srv
buildbot failure in ASF Buildbot on tomcat-trunk
The Buildbot has detected a new failure on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/379 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' triggered this build Build Source Stamp: [branch tomcat/trunk] 1706173 Blamelist: markt BUILD FAILED: failed compile_1 Sincerely, -The Buildbot - 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.27
Am 28.09.2015 um 13:26 schrieb Mark Thomas: The proposed Apache Tomcat 8.0.27 release is now available for voting. The main changes since 8.0.26 are: - Correctly handle \${ vs \$ escaping in JSP and EL - Fix for issues with NIO + SSL + sendfile - Various TLD parsing fixes - Fix multiple (mostly rare and/or zero impact) concurrency issues Note: Due to an issues with the Symantec code signing service (the certificates used to access the web-based admin GUI have all expired and infra is having to jump through some hoops to get new ones issues) the Windows Installer package has NOT been signed for this release. There is 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.27/ The Maven staging repo is: https://repository.apache.org/content/repositories/orgapachetomcat-1051/ The svn tag is: http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_27/ The proposed 8.0.27 release is: [ ] Broken - do not release [X] Stable - go ahead and release as 8.0.27 +1 to release. Thanks for RM. Regards, Rainer - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706173 - in /tomcat/trunk: java/org/apache/coyote/http2/ test/org/apache/coyote/http2/
Author: markt Date: Wed Sep 30 23:33:55 2015 New Revision: 1706173 URL: http://svn.apache.org/viewvc?rev=1706173=rev Log: Add 100-continue support to HTTP/2 Added: tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_8_1.java (with props) Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java tomcat/trunk/java/org/apache/coyote/http2/Stream.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java tomcat/trunk/test/org/apache/coyote/http2/TestHttp2Section_6_9.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1706173=1706172=1706173=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Wed Sep 30 23:33:55 2015 @@ -458,7 +458,8 @@ public class Http2UpgradeHandler extends } -void writeHeaders(Stream stream, Response coyoteResponse) throws IOException { +void writeHeaders(Stream stream, Response coyoteResponse, int payloadSize) +throws IOException { if (log.isDebugEnabled()) { log.debug(sm.getString("upgradeHandler.writeHeaders", connectionId, stream.getIdentifier())); @@ -468,10 +469,8 @@ public class Http2UpgradeHandler extends headers.addValue(":status").setString(Integer.toString(coyoteResponse.getStatus())); // This ensures the Stream processing thread has control of the socket. synchronized (socketWrapper) { -// Frame sizes are allowed to be bigger than 4k but for headers that -// should be plenty byte[] header = new byte[9]; -ByteBuffer target = ByteBuffer.allocate(4 * 1024); +ByteBuffer target = ByteBuffer.allocate(payloadSize); boolean first = true; State state = null; while (state != State.COMPLETE) { Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1706173=1706172=1706173=diff == --- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Wed Sep 30 23:33:55 2015 @@ -37,6 +37,12 @@ public class Stream extends AbstractStre private static final Log log = LogFactory.getLog(Stream.class); private static final StringManager sm = StringManager.getManager(Stream.class); +private static final Response ACK_RESPONSE = new Response(); + +static { +ACK_RESPONSE.setStatus(101); +} + private volatile int weight = Constants.DEFAULT_WEIGHT; private final Http2UpgradeHandler handler; @@ -225,6 +231,9 @@ public class Stream extends AbstractStre break; } default: { +if ("expect".equals(name) && "100-continue".equals(value)) { +coyoteRequest.setExpectation(true); +} // Assume other HTTP header coyoteRequest.getMimeHeaders().addValue(name).setString(value); } @@ -233,9 +242,16 @@ public class Stream extends AbstractStre void writeHeaders() throws IOException { -handler.writeHeaders(this, coyoteResponse); +// TODO: Is 1k the optimal value? +handler.writeHeaders(this, coyoteResponse, 1024); } +void writeAck() throws IOException { +// TODO: Is 64 too big? Just the status header with compression +handler.writeHeaders(this, ACK_RESPONSE, 64); +} + + void flushData() throws IOException { if (log.isDebugEnabled()) { Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1706173=1706172=1706173=diff == --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Wed Sep 30 23:33:55 2015 @@ -139,6 +139,16 @@ public class StreamProcessor extends Abs } break; } +case ACK: { +if (!response.isCommitted() && request.hasExpectation()) { +try { +stream.writeAck(); +} catch (IOException ioe) { +// TODO +} +} +break; +} case CLIENT_FLUSH: { action(ActionCode.COMMIT, null); try { @@ -330,7 +340,6 @@ public class StreamProcessor extends Abs
svn commit: r1706172 - in /tomcat/trunk/java/org/apache/coyote: Request.java http11/Http11Processor.java
Author: markt Date: Wed Sep 30 23:33:27 2015 New Revision: 1706172 URL: http://svn.apache.org/viewvc?rev=1706172=rev Log: Refactor the expectation flag to move it to the request (since it is a property of the request) Modified: tomcat/trunk/java/org/apache/coyote/Request.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Modified: tomcat/trunk/java/org/apache/coyote/Request.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Request.java?rev=1706172=1706171=1706172=diff == --- tomcat/trunk/java/org/apache/coyote/Request.java (original) +++ tomcat/trunk/java/org/apache/coyote/Request.java Wed Sep 30 23:33:27 2015 @@ -121,6 +121,10 @@ public final class Request { private long contentLength = -1; private MessageBytes contentTypeMB = null; private String charEncoding = null; +/** + * Is there an expectation ? + */ +private boolean expectation = false; private final ServerCookies serverCookies = new ServerCookies(INITIAL_COOKIE_SIZE); private final Parameters parameters = new Parameters(); @@ -344,6 +348,17 @@ public final class Request { return headers.getHeader(name); } + +public void setExpectation(boolean expectation) { +this.expectation = expectation; +} + + +public boolean hasExpectation() { +return expectation; +} + + // Associated response public Response getResponse() { @@ -524,6 +539,7 @@ public final class Request { contentLength = -1; contentTypeMB = null; charEncoding = null; +expectation = false; headers.recycle(); serverNameMB.recycle(); serverPort=-1; Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1706172=1706171=1706172=diff == --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Sep 30 23:33:27 2015 @@ -152,12 +152,6 @@ public class Http11Processor extends Abs /** - * Is there an expectation ? - */ -protected boolean expectation = false; - - -/** * Regular expression that defines the restricted user agents. */ protected Pattern restrictedUserAgents = null; @@ -678,15 +672,13 @@ public class Http11Processor extends Abs // Acknowledge request // Send a 100 status back if it makes sense (response not committed // yet, and client specified an expectation for 100-continue) -if ((response.isCommitted()) || !expectation) { -return; -} - -inputBuffer.setSwallowInput(true); -try { -outputBuffer.sendAck(); -} catch (IOException e) { -setErrorState(ErrorState.CLOSE_NOW, e); +if (!response.isCommitted() && request.hasExpectation()) { +inputBuffer.setSwallowInput(true); +try { +outputBuffer.sendAck(); +} catch (IOException e) { +setErrorState(ErrorState.CLOSE_NOW, e); +} } break; } @@ -1227,7 +1219,8 @@ public class Http11Processor extends Abs private void checkExpectationAndResponseStatus() { -if (expectation && (response.getStatus() < 200 || response.getStatus() > 299)) { +if (request.hasExpectation() && +(response.getStatus() < 200 || response.getStatus() > 299)) { // Client sent Expect: 100-continue but received a // non-2xx final response. Disable keep-alive (if enabled) // to ensure that the connection is closed. Some clients may @@ -1248,7 +1241,6 @@ public class Http11Processor extends Abs http11 = true; http09 = false; contentDelimitation = false; -expectation = false; sendfileData = null; if (endpoint.isSSLEnabled()) { @@ -1307,7 +1299,7 @@ public class Http11Processor extends Abs if (expectMB != null) { if (expectMB.indexOfIgnoreCase("100-continue", 0) != -1) { inputBuffer.setSwallowInput(false); -expectation = true; +request.setExpectation(true); } else { response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED); setErrorState(ErrorState.CLOSE_CLEAN, null); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1706179 - in /tomcat/native/trunk/native/src: sslinfo.c sslutils.c
Author: billbarker Date: Thu Oct 1 01:20:57 2015 New Revision: 1706179 URL: http://svn.apache.org/viewvc?rev=1706179=rev Log: catch up with OpenSSL master. ported from 1.1 branch Modified: tomcat/native/trunk/native/src/sslinfo.c tomcat/native/trunk/native/src/sslutils.c Modified: tomcat/native/trunk/native/src/sslinfo.c URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/sslinfo.c?rev=1706179=1706178=1706179=diff == --- tomcat/native/trunk/native/src/sslinfo.c (original) +++ tomcat/native/trunk/native/src/sslinfo.c Thu Oct 1 01:20:57 2015 @@ -393,14 +393,22 @@ TCN_IMPLEMENT_CALL(jstring, SSLSocket, g } break; case SSL_INFO_CLIENT_A_SIG: +#if OPENSSL_VERSION_NUMBER < 0x1010L nid = OBJ_obj2nid((ASN1_OBJECT *)xs->cert_info->signature->algorithm); +#else +nid = X509_get_signature_nid(xs); +#endif if (nid == NID_undef) value = tcn_new_string(e, "UNKNOWN"); else value = tcn_new_string(e, OBJ_nid2ln(nid)); break; case SSL_INFO_CLIENT_A_KEY: +#if OPENSSL_VERSION_NUMBER < 0x1010L nid = OBJ_obj2nid((ASN1_OBJECT *)xs->cert_info->key->algor->algorithm); +#else +nid = OBJ_obj2nid((ASN1_OBJECT *)(X509_get_X509_PUBKEY(xs)->algor->algorithm)); +#endif if (nid == NID_undef) value = tcn_new_string(e, "UNKNOWN"); else @@ -442,14 +450,22 @@ TCN_IMPLEMENT_CALL(jstring, SSLSocket, g } break; case SSL_INFO_SERVER_A_SIG: +#if OPENSSL_VERSION_NUMBER < 0x1010L nid = OBJ_obj2nid((ASN1_OBJECT *)xs->cert_info->signature->algorithm); +#else +nid = X509_get_signature_nid(xs); +#endif if (nid == NID_undef) value = tcn_new_string(e, "UNKNOWN"); else value = tcn_new_string(e, OBJ_nid2ln(nid)); break; case SSL_INFO_SERVER_A_KEY: +#if OPENSSL_VERSION_NUMBER < 0x1010L nid = OBJ_obj2nid((ASN1_OBJECT *)xs->cert_info->key->algor->algorithm); +#else +nid = OBJ_obj2nid((ASN1_OBJECT *)(X509_get_X509_PUBKEY(xs)->algor->algorithm)); +#endif if (nid == NID_undef) value = tcn_new_string(e, "UNKNOWN"); else Modified: tomcat/native/trunk/native/src/sslutils.c URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/sslutils.c?rev=1706179=1706178=1706179=diff == --- tomcat/native/trunk/native/src/sslutils.c (original) +++ tomcat/native/trunk/native/src/sslutils.c Thu Oct 1 01:20:57 2015 @@ -419,7 +419,11 @@ static int ssl_verify_CRL(int ok, X509_S X509_REVOKED *revoked = sk_X509_REVOKED_value(X509_CRL_get_REVOKED(crl), i); +#if OPENSSL_VERSION_NUMBER < 0x1010L ASN1_INTEGER *sn = revoked->serialNumber; +#else +ASN1_INTEGER *sn = X509_REVOKED_get0_serialNumber(revoked); +#endif if (!ASN1_INTEGER_cmp(sn, X509_get_serialNumber(cert))) { X509_STORE_CTX_set_error(ctx, X509_V_ERR_CERT_REVOKED); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot success in ASF Buildbot on tomcat-8-trunk
The Buildbot has detected a restored build on builder tomcat-8-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-8-trunk/builds/172 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-8-commit' triggered this build Build Source Stamp: [branch tomcat/tc8.0.x/trunk] 1706018 Blamelist: markt Build succeeded! Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot exception in ASF Buildbot on tomcat-trunk
The Buildbot has detected a build exception on builder tomcat-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/tomcat-trunk/builds/378 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: silvanus_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-commit' triggered this build Build Source Stamp: [branch tomcat/trunk] 1706036 Blamelist: markt BUILD FAILED: exception upload_2 Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org