Author: markt
Date: Fri Jun 3 15:31:07 2016
New Revision: 1746732
URL: http://svn.apache.org/viewvc?rev=1746732&view=rev
Log:
If an async dispatch results in the completion of request processing, ensure
that any remaining request body is swallowed before starting the processing of
the next request else the remaining body may be read as the start of the next
request leading to a 400 response.
Modified:
tomcat/tc8.0.x/trunk/ (props changed)
tomcat/tc8.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java
tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
tomcat/tc8.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
Propchange: tomcat/tc8.0.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jun 3 15:31:07 2016
@@ -1,2 +1,2 @@
/tomcat/tc8.5.x/trunk:1735042,1737966,1743139-1743140,1744151
-/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1637890,1637892,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,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657
592,1657607,1657609,1657682,1657907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659174,1659184,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,1661770,1661867,1661972,1661990,1662200,1662308-1662309,1662548,1662614,1662696,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-1
666387,1666494,1666496,1666552,1666569,1666579,1666637,1666649,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,1681699,1681701,1681729,1681770,1681779,1681793,1681807,1681837-1681838,1681854,1681862,1681958,1682028,1682033,1682311,1682315,1682317,1682320,1682324,1682330,1682842,1684172,1684366,1684383,1684526-168452
7,1684549-1684550,1685556,1685591,1685739,1685744,1685772,1685816,1685826,1685891,1687242,1687261,1687268,1687340,1687544,1687551,1688563,1688841,1688878,1688885,1688896,1688901,1689345-1689346,1689357,1689656,1689675-1689677,1689679,1689687,1689825,1689856,1689918,1690011,1690021,1690054,1690080,1690209,1691134,1691487,1691813,1692744-1692747,1692849,1692894,1692896,1693088,1693105,1693429,1693461,1694058,1694111,1694290,1694501,1694548,1694658,1694660,1694788,1694872,1694878,1695006,1695354,1695371,1695379,1695459,1695582,1695706,1695778,1696199,1696272,1696280,1696366-1696368,1696378,1696390,1696392,1696467,1698212,1698220,1700607,1700870,1700896,1700977,1701093,1701123,1701213,1701607,1701666,1701673,1701760-1701761,1701765,1701940,1702092,1702183,1702244,1702246,1702250,1702268,1702313,1702531,1702630-1702635,1702637-1702638,1702640,1702647,1702660,1702662,1702665-1702666,1702668,1702671-1702673,1702675-1702676,1702680,1702722,1702778,1702795,1702862,1702881,1702886,1702910,170
2923,1702971,1702984,1703024,1703040,1703044,1703049-1703050,1703143,1703146,1703151,1703160,1703164,1703167,1703174,1703192,1703287,1703290,1703358,1703408,1703486,1703509,1703523,1703542,1703545,1703554,1703584,1703673,1703676,1703678,1703680,1703763,1703784,1703821,1703842,1703849,1703851,1703853,1703856,1703860,1703865,1703890,1703948,1704149,1704151,1704251,1704278,1704289,1704302,1704305,1704307,1704318,1704331,1704647,1704658,1704689,1704702,1704706,1704711,1704730-1704733,1704735,1704739,1704741-1704742,1704744,1704786,1704867,1705231,1705630,1705635,1705639,1705647,1705650-1705652,1705842,1705848,1705865-1705866,1705942,1706017,1706744-1706745,1706853,1706915,1707052,1707088,1708500-1708501,1708504-1708505,1708570,1708649,1708687,1708745,1708957,1709120,1709266,1709295,1709375,1709663,1709895,1709960,1710070,1710134,1710341,1710346,1710441,1710445,1710489,1710517,1710523,1710571,1710577,1710632,1710676,1710689,1710753-1710754,1710779,1710924,1710930,1710933,1710945,1711006,
1711016,1711022,1711026,1712163,1712225,1712228,1712233,1712250,1712254,1712489,1712547-1712548,1712588,1712617,1712645,1712654,1712695,1712765-1712766,1712771,1712775,1712859,1712876,1712898,1712902,1712905,1712912,1712974,1713129,1713168,1713184,1713285,1713362,1713397,1713446,1713612,1713618,1713871,1713931,1713975,1713987,1713992,1713997,1714002,1714012,1714019,1714054,1714521,1714535,1714537,1715168,1715188,1715206,1715413,1715415,1715434,1715510-1715512,1715514-1715515,1715517-1715519,1715521,1715633,1715661,1715682,1715965,1716213-1716214,1716258,1716269,1716347,1716354,1716364,1716413,1716420,1716511,1716543,1716640,1716644,1716856,1716858,1716881-1716882,1716886,1716894,1717085,1717225,1717233,1717252,1717264,1717282,1717286,1717290,1717385,1717416,1717418,1717445,1717515,1717520,1717528,1717965,1717967-1717968,1717979,1718022,1718308,1718523,1718794,1718796,1718834,1718836-1718838,1719278,1719291,1719315,1719332,1719334,1719340,1719346,1719441,1719446,1719488,1719909-17199
10,1720200,1720234,1720394,1720439,1720445,1720448,1720462,1720506,1720652,1720654-1720655,1720711,1720752,1720769,1720776,1720804,1720815,1721303,1721307,1721311,1721314,1721447,1721528,1721539,1721812,1721817,1721830,1721860,1721866,1721881,1721887,1722205,1722292,1722399,1722453,1722455,1722522,1722526,1722532,1722548,1722574,1722583,1722585,1722799,1722807,1722824,1722828-1722829,1722831,1722859,1722902,1722905,1722923,1722939,1722945,1722996,1723068,1723127,1723155,1723250,1723316-1723318,1723368,1723371,1723375,1723377,1723380,1723410,1723414,1723437,1723484,1723486,1723493-1723494,1723500,1723552,1723554,1723683,1723707,1723736,1724012,1724232,1724252,1724325,1724427-1724428,1724433,1724673,1724788,1724863,1724900,1724997,1725113,1725126-1725127,1725150,1725165,1725183,1725199,1725202,1725204,1725207,1725263-1725264,1725266,1725278,1725282,1725405,1725599,1725601,1725635,1725646,1725649-1725652,1725694,1725696-1725697,1725816,1725851,1725906-1725907,1725910,1725914,1725920,17
25926,1726177,1726202,1726628,1726632,1726637,1726639,1726648,1726651,1726654,1726669,1726676,1726803,1726925-1726926,1726972-1726973,1726991,1727162,1727670,1727675,1727899,1727914,1727917,1728091,1728138,1728433,1728448,1728664,1728677,1729185,1729361,1729625,1729730,1730101-1730102,1730137,1730612,1730946-1730975,1731008,1731055,1731079,1731283,1731856,1731882,1731946-1731958,1731976-1731983,1732359,1732488,1732900-1733448,1733602,1733617-1733963,1733978,1734113,1734128,1734192,1734258,1734301,1734418-1734454,1734466-1734512,1734522,1734592,1734594,1734597,1735041,1735577,1736162,1736209,1736280,1736646,1736836,1737119,1737280,1737339,1737632,1737664,1737715,1737834,1737959,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738643,1738850,1738982,1738996,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740509,1740520,1740535,1740707,1740803
,1740810,1740980,1740991,1741015,1741147,1741173,1741181,1741190,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741677,1741892,1741896,1742071,1742090,1742093,1742101,1742105,1742111,1742146,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742448,1742919,1742975,1742984,1742986,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743697,1743700-1743701,1744058,1744064-1744065,1744125,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744760,1745227,1745337,1746306,1746427,1746473
+/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1637890,1637892,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,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657
592,1657607,1657609,1657682,1657907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659174,1659184,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,1661770,1661867,1661972,1661990,1662200,1662308-1662309,1662548,1662614,1662696,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-1
666387,1666494,1666496,1666552,1666569,1666579,1666637,1666649,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,1681699,1681701,1681729,1681770,1681779,1681793,1681807,1681837-1681838,1681854,1681862,1681958,1682028,1682033,1682311,1682315,1682317,1682320,1682324,1682330,1682842,1684172,1684366,1684383,1684526-168452
7,1684549-1684550,1685556,1685591,1685739,1685744,1685772,1685816,1685826,1685891,1687242,1687261,1687268,1687340,1687544,1687551,1688563,1688841,1688878,1688885,1688896,1688901,1689345-1689346,1689357,1689656,1689675-1689677,1689679,1689687,1689825,1689856,1689918,1690011,1690021,1690054,1690080,1690209,1691134,1691487,1691813,1692744-1692747,1692849,1692894,1692896,1693088,1693105,1693429,1693461,1694058,1694111,1694290,1694501,1694548,1694658,1694660,1694788,1694872,1694878,1695006,1695354,1695371,1695379,1695459,1695582,1695706,1695778,1696199,1696272,1696280,1696366-1696368,1696378,1696390,1696392,1696467,1698212,1698220,1700607,1700870,1700896,1700977,1701093,1701123,1701213,1701607,1701666,1701673,1701760-1701761,1701765,1701940,1702092,1702183,1702244,1702246,1702250,1702268,1702313,1702531,1702630-1702635,1702637-1702638,1702640,1702647,1702660,1702662,1702665-1702666,1702668,1702671-1702673,1702675-1702676,1702680,1702722,1702778,1702795,1702862,1702881,1702886,1702910,170
2923,1702971,1702984,1703024,1703040,1703044,1703049-1703050,1703143,1703146,1703151,1703160,1703164,1703167,1703174,1703192,1703287,1703290,1703358,1703408,1703486,1703509,1703523,1703542,1703545,1703554,1703584,1703673,1703676,1703678,1703680,1703763,1703784,1703821,1703842,1703849,1703851,1703853,1703856,1703860,1703865,1703890,1703948,1704149,1704151,1704251,1704278,1704289,1704302,1704305,1704307,1704318,1704331,1704647,1704658,1704689,1704702,1704706,1704711,1704730-1704733,1704735,1704739,1704741-1704742,1704744,1704786,1704867,1705231,1705630,1705635,1705639,1705647,1705650-1705652,1705842,1705848,1705865-1705866,1705942,1706017,1706744-1706745,1706853,1706915,1707052,1707088,1708500-1708501,1708504-1708505,1708570,1708649,1708687,1708745,1708957,1709120,1709266,1709295,1709375,1709663,1709895,1709960,1710070,1710134,1710341,1710346,1710441,1710445,1710489,1710517,1710523,1710571,1710577,1710632,1710676,1710689,1710753-1710754,1710779,1710924,1710930,1710933,1710945,1711006,
1711016,1711022,1711026,1712163,1712225,1712228,1712233,1712250,1712254,1712489,1712547-1712548,1712588,1712617,1712645,1712654,1712695,1712765-1712766,1712771,1712775,1712859,1712876,1712898,1712902,1712905,1712912,1712974,1713129,1713168,1713184,1713285,1713362,1713397,1713446,1713612,1713618,1713871,1713931,1713975,1713987,1713992,1713997,1714002,1714012,1714019,1714054,1714521,1714535,1714537,1715168,1715188,1715206,1715413,1715415,1715434,1715510-1715512,1715514-1715515,1715517-1715519,1715521,1715633,1715661,1715682,1715965,1716213-1716214,1716258,1716269,1716347,1716354,1716364,1716413,1716420,1716511,1716543,1716640,1716644,1716856,1716858,1716881-1716882,1716886,1716894,1717085,1717225,1717233,1717252,1717264,1717282,1717286,1717290,1717385,1717416,1717418,1717445,1717515,1717520,1717528,1717965,1717967-1717968,1717979,1718022,1718308,1718523,1718794,1718796,1718834,1718836-1718838,1719278,1719291,1719315,1719332,1719334,1719340,1719346,1719441,1719446,1719488,1719909-17199
10,1720200,1720234,1720394,1720439,1720445,1720448,1720462,1720506,1720652,1720654-1720655,1720711,1720752,1720769,1720776,1720804,1720815,1721303,1721307,1721311,1721314,1721447,1721528,1721539,1721812,1721817,1721830,1721860,1721866,1721881,1721887,1722205,1722292,1722399,1722453,1722455,1722522,1722526,1722532,1722548,1722574,1722583,1722585,1722799,1722807,1722824,1722828-1722829,1722831,1722859,1722902,1722905,1722923,1722939,1722945,1722996,1723068,1723127,1723155,1723250,1723316-1723318,1723368,1723371,1723375,1723377,1723380,1723410,1723414,1723437,1723484,1723486,1723493-1723494,1723500,1723552,1723554,1723683,1723707,1723736,1724012,1724232,1724252,1724325,1724427-1724428,1724433,1724673,1724788,1724863,1724900,1724997,1725113,1725126-1725127,1725150,1725165,1725183,1725199,1725202,1725204,1725207,1725263-1725264,1725266,1725278,1725282,1725405,1725599,1725601,1725635,1725646,1725649-1725652,1725694,1725696-1725697,1725816,1725851,1725906-1725907,1725910,1725914,1725920,17
25926,1726177,1726202,1726628,1726632,1726637,1726639,1726648,1726651,1726654,1726669,1726676,1726803,1726925-1726926,1726972-1726973,1726991,1727162,1727670,1727675,1727899,1727914,1727917,1728091,1728138,1728433,1728448,1728664,1728677,1729185,1729361,1729625,1729730,1730101-1730102,1730137,1730612,1730946-1730975,1731008,1731055,1731079,1731283,1731856,1731882,1731946-1731958,1731976-1731983,1732359,1732488,1732900-1733448,1733602,1733617-1733963,1733978,1734113,1734128,1734192,1734258,1734301,1734418-1734454,1734466-1734512,1734522,1734592,1734594,1734597,1735041,1735577,1736162,1736209,1736280,1736646,1736836,1737119,1737280,1737339,1737632,1737664,1737715,1737834,1737959,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738643,1738850,1738982,1738996,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740509,1740520,1740535,1740707,1740803
,1740810,1740980,1740991,1741015,1741147,1741173,1741181,1741190,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741677,1741892,1741896,1742071,1742090,1742093,1742101,1742105,1742111,1742146,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742448,1742919,1742975,1742984,1742986,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743697,1743700-1743701,1744058,1744064-1744065,1744125,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744760,1745227,1745337,1746306,1746427,1746473,1746620,1746649,1746724
Modified: tomcat/tc8.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1746732&r1=1746731&r2=1746732&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/coyote/AbstractProtocol.java Fri Jun
3 15:31:07 2016
@@ -648,16 +648,14 @@ public abstract class AbstractProtocol<S
} else if (status == SocketStatus.DISCONNECT) {
// Comet and upgrade need to see DISCONNECT but the
// others don't. NO-OP and let socket close.
- } else if (processor.isAsync()) {
+ } else if (processor.isAsync() || state ==
SocketState.ASYNC_END) {
state = processor.asyncDispatch(status);
- } else if (state == SocketState.ASYNC_END) {
- state = processor.asyncDispatch(status);
- // release() won't get called so in case this request
- // takes a long time to process remove the socket from
- // the waiting requests now else the async timeout will
- // fire
- getProtocol().endpoint.removeWaitingRequest(wrapper);
if (state == SocketState.OPEN) {
+ // release() won't get called so in case this
request
+ // takes a long time to process, remove the socket
from
+ // the waiting requests now else the async timeout
will
+ // fire
+
getProtocol().endpoint.removeWaitingRequest(wrapper);
// There may be pipe-lined data to read. If the
data
// isn't processed now, execution will exit this
// loop and call release() which will recycle the
Modified:
tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1746732&r1=1746731&r2=1746732&view=diff
==============================================================================
---
tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
(original)
+++
tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
Fri Jun 3 15:31:07 2016
@@ -1738,6 +1738,7 @@ public abstract class AbstractHttp11Proc
if (!keepAlive) {
return SocketState.CLOSED;
} else {
+ endRequest();
getInputBuffer().nextRequest();
getOutputBuffer().nextRequest();
return SocketState.OPEN;
Modified:
tomcat/tc8.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
URL:
http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java?rev=1746732&r1=1746731&r2=1746732&view=diff
==============================================================================
---
tomcat/tc8.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
(original)
+++
tomcat/tc8.0.x/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
Fri Jun 3 15:31:07 2016
@@ -16,11 +16,18 @@
*/
package org.apache.coyote.http11;
+import java.io.BufferedReader;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.io.Reader;
import java.io.Writer;
+import java.net.InetSocketAddress;
import java.net.Socket;
+import java.net.SocketAddress;
import java.nio.CharBuffer;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
@@ -31,6 +38,7 @@ import java.util.Map;
import java.util.concurrent.CountDownLatch;
import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
@@ -842,4 +850,101 @@ public class TestAbstractHttp11Processor
throws ServletException, IOException {
}
}
+
+
+ /*
+ * Tests what happens if a request is completed during a dispatch but the
+ * request body has not been fully read.
+ */
+ @Test
+ public void testRequestBodySwallowing() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+
+ // No file system docBase required
+ Context ctx = tomcat.addContext("", null);
+
+ SempahoreServlet servlet = new SempahoreServlet();
+ Wrapper w = Tomcat.addServlet(ctx, "Test", servlet);
+ w.setAsyncSupported(true);
+ ctx.addServletMapping("/test", "Test");
+
+ tomcat.start();
+
+ // Hand-craft the client so we have complete control over the timing
+ SocketAddress addr = new InetSocketAddress("localhost", getPort());
+ Socket socket = new Socket();
+ socket.setSoTimeout(300000);
+ socket.connect(addr,300000);
+ OutputStream os = socket.getOutputStream();
+ Writer writer = new OutputStreamWriter(os, "ISO-8859-1");
+ InputStream is = socket.getInputStream();
+ Reader r = new InputStreamReader(is, "ISO-8859-1");
+ BufferedReader reader = new BufferedReader(r);
+
+ // Write the headers
+ writer.write("POST /test HTTP/1.1\r\n");
+ writer.write("Host: localhost:8080\r\n");
+ writer.write("Transfer-Encoding: chunked\r\n");
+ writer.write("\r\n");
+ writer.flush();
+
+ validateResponse(reader);
+
+ // Write the request body
+ writer.write("2\r\n");
+ writer.write("AB\r\n");
+ writer.write("0\r\n");
+ writer.write("\r\n");
+ writer.flush();
+
+ // Write the 2nd request
+ writer.write("POST /test HTTP/1.1\r\n");
+ writer.write("Host: localhost:8080\r\n");
+ writer.write("Transfer-Encoding: chunked\r\n");
+ writer.write("\r\n");
+ writer.flush();
+
+ // Read the 2nd response
+ validateResponse(reader);
+
+ // Write the 2nd request body
+ writer.write("2\r\n");
+ writer.write("AB\r\n");
+ writer.write("0\r\n");
+ writer.write("\r\n");
+ writer.flush();
+
+ // Done
+ socket.close();
+ }
+
+
+ private void validateResponse(BufferedReader reader) throws IOException {
+ // First line has the response code and should always be 200
+ String line = reader.readLine();
+ System.out.println(line);
+ Assert.assertEquals("HTTP/1.1 200 OK", line);
+ while (!"OK".equals(line)) {
+ line = reader.readLine();
+ System.out.println(line);
+ }
+ }
+
+
+ private static class SempahoreServlet extends HttpServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ if (DispatcherType.ASYNC.equals(req.getDispatcherType())) {
+ resp.setContentType("text/plain");
+ resp.setCharacterEncoding("UTF-8");
+ resp.getWriter().write("OK\n");
+ } else {
+ req.startAsync().dispatch();
+ }
+ }
+ }
}
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=1746732&r1=1746731&r2=1746732&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Fri Jun 3 15:31:07 2016
@@ -82,6 +82,12 @@
that request processing has fully completed before starting the next
request. (markt)
</fix>
+ <fix>
+ If an async dispatch results in the completion of request processing,
+ ensure that any remaining request body is swallowed before starting the
+ processing of the next request else the remaining body may be read as
the
+ start of the next request leading to a 400 response. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]