Author: markt
Date: Wed Jul 8 17:10:54 2015
New Revision: 1689921
URL: http://svn.apache.org/r1689921
Log:
Don't disable error page support unless debug is set to 10 or more.
Modified:
tomcat/tc8.0.x/trunk/ (props changed)
tomcat/tc8.0.x/trunk/conf/web.xml
tomcat/tc8.0.x/trunk/java/org/apache/catalina/servlets/CGIServlet.java
tomcat/tc8.0.x/trunk/webapps/docs/cgi-howto.xml
tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
Propchange: tomcat/tc8.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jul 8 17:10:54 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,1654159,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655438,1655441,1655454,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657592,1657607,1657609,1657682,1657
907,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,1666637,1666649,1
666757,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,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,1685739,1685744,1685772,1685816,1685826,1685891,1687268,168734
0,1688563,1688841,1688878,1688885,1688896,1688901,1689345-1689346,1689357,1689656,1689675-1689677,1689679,1689687,1689825
+/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,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655438,1655441,1655454,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657592,1657607,1657609,1657682,1657
907,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,1666637,1666649,1
666757,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,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,1685739,1685744,1685772,1685816,1685826,1685891,1687268,168734
0,1688563,1688841,1688878,1688885,1688896,1688901,1689345-1689346,1689357,1689656,1689675-1689677,1689679,1689687,1689825,1689918
Modified: tomcat/tc8.0.x/trunk/conf/web.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/conf/web.xml?rev=1689921&r1=1689920&r2=1689921&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/conf/web.xml (original)
+++ tomcat/tc8.0.x/trunk/conf/web.xml Wed Jul 8 17:10:54 2015
@@ -46,8 +46,12 @@
<!-- to 5 where 0 means no logging and 5 means -->
<!-- maximum logging. Values of 10 or more mean -->
<!-- maximum logging plus debug info added to the -->
- <!-- HTTP response. Note that any value of 10 or -->
- <!-- more has the same effect. [0] -->
+ <!-- HTTP response. If an error occurs and debug is -->
+ <!-- 10 or more the standard error page mechanism -->
+ <!-- will be disabled and a response body with -->
+ <!-- debug information will be produced. Note that -->
+ <!-- any value of 10 or more has the same effect as -->
+ <!-- a value of 10. [0] -->
<!-- -->
<!-- fileEncoding Encoding to be used to read static resources -->
<!-- [platform default] -->
Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/servlets/CGIServlet.java
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/servlets/CGIServlet.java?rev=1689921&r1=1689920&r2=1689921&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/catalina/servlets/CGIServlet.java
(original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/servlets/CGIServlet.java Wed
Jul 8 17:10:54 2015
@@ -242,8 +242,11 @@ public final class CGIServlet extends Ht
/**
* The debugging detail level for this servlet. Useful values range from 0
* to 5 where 0 means no logging and 5 means maximum logging. Values of 10
- * or more mean maximum logging plus debug info added to the HTTP response.
- * Note that any value of 10 or more has the same effect.
+ * or more mean maximum logging and debug info added to the HTTP response.
+ * If an error occurs and debug is 10 or more the standard error page
+ * mechanism will be disabled and a response body with debug information
+ * will be produced. Note that any value of 10 or more has the same effect
+ * as a value of 10.
*/
private int debug = 0;
@@ -587,7 +590,9 @@ public final class CGIServlet extends Ht
cgi.setResponse(res);
cgi.run();
} else {
- res.setStatus(404);
+ if (setStatus(res, 404)) {
+ return;
+ }
}
if (debug >= 10) {
@@ -627,6 +632,29 @@ public final class CGIServlet extends Ht
}
+ /*
+ * Behaviour depends on the status code and the value of debug.
+ *
+ * Status < 400 - Always calls setStatus. Returns false. CGI servlet will
+ * provide the response body.
+ * Status >= 400 - Depends on debug
+ * debug < 10 - Calls sendError(status), returns true. Standard error
+ * page mechanism will provide the response body.
+ * debug >= 10 - Calls setStatus(status), return false. CGI servlet
will
+ * provide the response body.
+ */
+ private boolean setStatus(HttpServletResponse response, int status) throws
IOException {
+
+ if (status >= HttpServletResponse.SC_BAD_REQUEST && debug < 10) {
+ response.sendError(status);
+ return true;
+ } else {
+ response.setStatus(status);
+ return false;
+ }
+ }
+
+
/**
* Encapsulates the CGI environment and rules to derive
* that environment from the servlet container and request information.
@@ -1640,6 +1668,12 @@ public final class CGIServlet extends Ht
cgiHeaderReader =
new BufferedReader(new InputStreamReader(cgiHeaderStream));
+ // Need to be careful here. If sendError() is called the
+ // response body should be provided by the standard error page
+ // process. But, if the output of the CGI process isn't read
+ // then that process can hang.
+ boolean skipBody = false;
+
while (isRunning) {
try {
//set headers
@@ -1650,14 +1684,14 @@ public final class CGIServlet extends Ht
log("runCGI: addHeader(\"" + line + "\")");
}
if (line.startsWith("HTTP")) {
-
response.setStatus(getSCFromHttpStatusLine(line));
+ skipBody = setStatus(response,
getSCFromHttpStatusLine(line));
} else if (line.indexOf(":") >= 0) {
String header =
line.substring(0,
line.indexOf(":")).trim();
String value =
line.substring(line.indexOf(":") +
1).trim();
if (header.equalsIgnoreCase("status")) {
-
response.setStatus(getSCFromCGIStatusHeader(value));
+ skipBody = setStatus(response,
getSCFromCGIStatusHeader(value));
} else {
response.addHeader(header , value);
}
@@ -1673,7 +1707,7 @@ public final class CGIServlet extends Ht
cgiOutput = proc.getInputStream();
try {
- while ((bufRead = cgiOutput.read(bBuf)) != -1) {
+ while (!skipBody && (bufRead =
cgiOutput.read(bBuf)) != -1) {
if (debug >= 4) {
log("runCGI: output " + bufRead +
" bytes of data");
Modified: tomcat/tc8.0.x/trunk/webapps/docs/cgi-howto.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/cgi-howto.xml?rev=1689921&r1=1689920&r2=1689921&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/webapps/docs/cgi-howto.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/cgi-howto.xml Wed Jul 8 17:10:54 2015
@@ -99,8 +99,10 @@ directory being used as the search path.
<li><strong>debug</strong> - Debugging detail level for messages logged
by this servlet. Useful values range from 0 to 5 where 0 means no logging and 5
means maximum logging. Values of 10 or more mean maximum logging plus debug
info
-added to the HTTP response. Note that any value of 10 or more has the same
-effect. Default is <code>0</code>.</li>
+added to the HTTP response. If an error occurs and debug is 10 or more the
+standard error page mechanism will be disabled and a response body with debug
+information will be produced. Note that any value of 10 or more has the same
+effect as a value of 10. Default is <code>0</code>.</li>
<li><strong>executable</strong> - The of the executable to be used to
run the script. You may explicitly set this parameter to be an empty string
if your script is itself executable (e.g. an exe file). Default is
Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1689921&r1=1689920&r2=1689921&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Wed Jul 8 17:10:54 2015
@@ -58,6 +58,13 @@
(Resources loaded from these locations are cached by the web
application
class loader.) (markt)
</fix>
+ <add>
+ <bug>57741</bug>: Enable the CGI servlet to use the standard error page
+ mechanism. Note that if the CGI servlet's debug init parameter is
+ set to 10 or higher then the standard error page mechanism will be
+ bypassed and a debug response generated by the CGI servlet will be
+ returned instead. (markt)
+ </add>
<fix>
<bug>58086</bug>: Correct a regression in the fix for 58086 that
incorrectly handled WAR URLs. (violetagg)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]