Author: rjung Date: Tue Dec 16 14:56:34 2014 New Revision: 1645960 URL: http://svn.apache.org/r1645960 Log: Add more thorough tests for AJP.
Unfortunately request attributes as sent by mod_jk JkEnvVars can not be tested, because request.getAttributeNames() does not return the names of Coyote request attributes. Only getAttribute(String) checks Coyote request attributes. Backport of r1645488 from trunk resp. r1645908 from TC 8. Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/SimpleAjpClient.java tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TesterAjpMessage.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Dec 16 14:56:34 2014 @@ -1,2 +1,2 @@ -/tomcat/tc8.0.x/trunk:1636525,1637336,1637685,1637709,1638726,1640089,1640276,1640349,1640363,1640366,1640642,1640672,1640674,1640689,1640884,1641001,1641065,1641067,1641375,1641638,1641723,1641726,1641729-1641730,1641736,1641988,1642669-1642670,1642698,1642701,1643205,1643215,1643217,1643230,1643232,1643273,1643285,1643329-1643330,1643511,1643513,1643521,1643539,1643571,1643581-1643582,1643635,1643655,1643738,1643964,1644018,1644333,1644954,1644992,1645014,1645360,1645456,1645627,1645642,1645686,1645903-1645904,1645909 -/tomcat/trunk:1156115-1157160,1157162-1157859,1157862-1157942,1157945-1160347,1160349-1163716,1163718-1166689,1166691-1174340,1174342-1175596,1175598-1175611,1175613-1175932,1175934-1177783,1177785-1177980,1178006-1180720,1180722-1183094,1183096-1187753,1187755,1187775,1187801,1187806,1187809,1187826-1188312,1188314-1188401,1188646-1188840,1188842-1190176,1190178-1195223,1195225-1195953,1195955,1195957-1201238,1201240-1203345,1203347-1206623,1206625-1208046,1208073,1208096,1208114,1208145,1208772,1209194-1212125,1212127-1220291,1220293,1220295-1221321,1221323-1222329,1222332-1222401,1222405-1222795,1222850-1222950,1222969-1225326,1225328-1225463,1225465,1225627,1225629-1226534,1226536-1228908,1228911-1228923,1228927-1229532,1229534-1230766,1230768-1231625,1231627-1233414,1233419-1235207,1235209-1237425,1237427,1237429-1237977,1237981,1237985,1237995,1238070,1238073,1239024-1239048,1239050-1239062,1239135,1239256,1239258-1239485,1239785-1240046,1240101,1240106,1240109,1240112,1240114 ,1240116,1240118,1240121,1240329,1240474-1240850,1240857,1241087,1241160,1241408-1241822,1241908-1241909,1241912-1242110,1242371-1292130,1292134-1292458,1292464-1292670,1292672-1292776,1292780-1293392,1293397-1297017,1297019-1297963,1297965-1299820,1300108,1300111-1300460,1300520-1300948,1300997,1301006,1301280,1302332,1302348,1302608-1302610,1302649,1302837,1303138,1303163,1303338,1303521,1303587,1303698,1303803,1303852,1304011,1304035,1304037,1304135,1304249,1304253,1304260,1304271,1304275,1304468,1304895,1304930-1304932,1305194,1305943,1305965,1306556,1306579-1306580,1307084,1307310,1307511-1307512,1307579,1307591,1307597,1310636,1310639-1310640,1310642,1310701,1311212,1311995,1327617,1327670,1331766,1333161,1333173,1333827,1334787,1335026,1335257,1335547,1335692,1335711,1335731,1336515,1336813,1336864,1336868,1336884,1337419,1337426,1337546,1337572,1337591-1337595,1337643,1337707,1337719,1337734,1337741,1337745,1338151-1338154,1338178,1342027,1342029,1342315,1342320,1342476,1342 498,1342503,1342717,1342795,1342805,1343044-1343046,1343335,1343394,1343400,1343629,1343708,1343718,1343895,1344063,1344068,1344250,1344266,1344515,1344528,1344612,1344629,1344725,1344868,1344890,1344893,1344896,1344901,1345020,1345029,1345039,1345287-1345290,1345294,1345309,1345325,1345357,1345367,1345579-1345580,1345582,1345688,1345699,1345704,1345731-1345732,1345737,1345744,1345752,1345754,1345779,1345781,1345846,1346107,1346365,1346376,1346404,1346510,1346514,1346519,1346581,1346635,1346644,1346683,1346794,1346885,1346932,1347034,1347047,1347087,1347108-1347109,1347583,1347737,1348105,1348357,1348398,1348425,1348461-1348495,1348498,1348752,1348762,1348772,1348776,1348859,1348968,1348973,1348989,1349007,1349237,1349298,1349317,1349410,1349473,1349539,1349879,1349887,1349893,1349922,1349984,1350124,1350241,1350243,1350294-1350295,1350299,1350864,1350900,1351010,1351054,1351056,1351068,1351134-1351135,1351148,1351259,1351604,1351636-1351640,1351991,1351993,1352011,1352056,1352059,1 352661,1352663,1352788,1352799,1353087,1353125,1353240,1353261,1353414,1353468,1353501,1353581,1353708,1354137,1354170,1354197,1354255,1354362,1354375,1354469,1354664,1354685,1354817,1354847,1354856,1355726,1355810,1356006-1356007,1356014,1356045,1356125,1356422,1356505,1356898,1357042,1357401,1357407,1358586,1358590,1358612-1358613,1359102,1359340,1359981,1360059,1360455,1360460,1360838,1360847,1360892,1360942,1361263,1361430,1361754-1361755,1361762,1361769,1361772,1361962,1361982,1361985,1361991,1364141,1364149,1364411-1364412,1364448,1366708,1366720,1366729,1366734,1366910,1366945,1366953,1366959,1367214,1370346,1370364,1370373,1370386,1370473,1370537,1370549,1370553,1370879,1370916,1370958,1370960,1370973,1371017,1371283,1371336,1371620,1371812,1371823,1371896,1371976,1371978,1371995,1371999,1372131,1372152,1372156,1372390,1373003,1373080,1373142,1373488,1373578,1373618,1373622,1373666,1373985,1373987,1373990,1373993,1374000,1374019,1374086,1374823,1376994,1377078,1377292,137731 1,1377342,1377433,1377444,1377516,1377518-1377519,1377532,1377535,1377544,1377689,1377785,1377794,1377811,1377824,1377827,1377831,1377852-1377853,1377887,1377900,1378322,1378361,1378394,1378699,1378715,1378818,1378868,1378918,1379047,1379090,1379178,1379206,1379213,1379418,1379580,1379590,1379639,1379647,1379649,1379665,1379733,1379735,1380066,1380073,1380075,1380376,1380635,1380637,1380838,1381411,1381623,1382314,1382343,1382366,1382515,1382832,1382842,1384051,1384055,1384063,1384068-1384069,1385336,1387937,1388709,1388890,1390882,1392098,1392619,1393071,1393115,1396615,1396723,1397086,1397464,1397466,1397472,1397482,1397484,1397839,1397868,1397944,1397950,1397953,1397957,1397960,1397962,1397964,1397969,1397971-1397974,1397976-1397980,1397985,1397988-1397989,1398089,1398107,1398109-1398110,1398112,1399022,1401472,1401792,1401808,1401814,1402113,1402122,1402345,1402348,1402350,1402428,1402573,1402576,1402600-1402601,1402622,1402643,1402683,1402837,1402855,1403099,1403468,1404374,140 4658,1404704,1404773,1404917-1404918,1405133,1405168,1405321,1405353,1405357,1405364,1405397,1405399-1405400,1405415,1405435,1405676,1405681,1406456,1406481,1406526,1407595,1407619,1408043,1408148,1408154,1408156,1408159,1408163-1408165,1408248,1408438,1408504,1408513-1408517,1408562-1408565,1408714,1408721,1408739,1408750,1408774,1408792,1408872-1408876,1408906,1408934,1409007,1409030,1410466,1410545,1410609,1410611,1410632,1410714,1410742,1410763-1410764,1410766,1411585,1411993,1412575,1413552,1413556,1413562,1414053,1414113,1414215,1414889,1415177-1415179,1415186,1416458,1416481,1416501,1416529,1416534-1416535,1416658,1417201,1417224,1417282,1417347-1417348,1417353,1417363,1417365,1417370-1417372,1417463,1417465,1417467,1417469,1417476,1424894,1425502,1425564,1425628,1426662,1427013,1427757,1427784,1427804,1427846,1428010,1428079,1428283,1428355,1428403,1428643,1428869,1428959,1428993,1429123,1429153,1429167,1429173,1429179-1429180,1429182,1429356,1429687,1429745,1429784,1429836, 1429863,1429946,1429969,1430079,1430147,1430165,1430445,1430448,1430481,1430487,1430508,1430550,1430567,1430771,1430773,1430775,1430791,1430799,1430806,1430809,1430921,1431164,1431171,1431206,1431221,1431293,1431298,1431302,1431308,1431310,1431320,1431661,1431920,1431990,1432517,1432867,1433976,1434403,1434428,1434438,1434447,1434456,1434463,1434500,1434598,1434660,1434685,1434725,1434757,1434882,1435126,1435505,1435509,1435600,1435606,1435636,1435642,1435759-1435760,1435765,1435767,1437317,1437337,1437505,1437637,1437649,1437743,1437891,1437897,1437903,1438411,1438463,1439054,1439334,1439434,1439442,1439445,1439667,1440095,1440622,1440911,1441342,1441348,1441403,1441416,1441428,1441807,1441895,1441916,1441920,1443350,1443405,1443427,1445111,1445125,1445190,1445208,1445212,1445328,1445337,1445520,1446108,1446137,1446357,1446612,1446640,1446650,1447012,1447178,1447791,1447817-1447818,1448117,1448121,1448125,1448826,1449225,1449406,1450990,1451053,1451061,1451105,1451408,1451434,14517 69,1451938-1451939,1451947,1451955-1451956,1452295,1452501,1452707,1452719,1452721,1452752,1453105,1453112,1453435,1453439,1453490,1453544,1453549,1453621,1454828,1454832,1454953,1455344,1455854,1455973,1456083,1456440,1456453,1456491,1456494,1456657,1456666,1456678,1456706,1456713,1456716,1456721,1456740,1456762,1456766,1456822,1456844,1456863,1456872,1456882,1456885,1456895,1456899,1456904,1456916,1456920,1456926,1456932,1456959,1456963,1456970,1457299,1457301,1457362,1457382,1457402,1457452,1457748,1457968,1458187,1458192,1458200,1458221,1458562,1458564-1458565,1458694,1458726,1458738-1458739,1459010,1459028,1459031,1459061,1459074-1459075,1459085,1459218,1459223,1459289,1459389,1459523-1459524,1459673,1459681,1459761,1459769,1459933,1460107,1460115,1460234,1460313,1460330,1460342,1460533,1460633,1460679,1460873,1461026,1461110,1461341,1461349,1461849,1464781,1465795,1465807,1466051,1466072,1466106,1467091,1468415,1470400,1470435,1470765,1471371,1471632,1475750,1475791,1475900,14 75930,1475968,1476761,1476805,1476815,1476972,1477051,1479175,1479179,1479248,1479482,1479951,1481164,1481835,1482115,1482288,1482309,1482311,1482313,1482321,1482591,1482720,1482723,1482799,1482835,1482854,1483104,1483229,1483288,1483360-1483361,1483390,1483552,1483554,1483679,1483743-1483744,1483786-1483787,1483816-1483817,1483949,1484253,1484592,1484780,1484786,1484861-1484862,1484959,1485114,1485489,1485495,1485611,1485847,1485862,1486062,1486134,1486217,1486294,1486443,1486834,1486861,1486875,1486890,1486939,1487862,1487882,1488151,1488793,1489170,1489195-1489196,1489201,1489385,1489390,1489405,1489437,1489536,1489546,1489610,1489633,1489648,1489738,1489812,1489886,1491485,1491596,1491709,1491841,1491890,1491940,1491942,1492307,1492336,1492343,1492358,1492555,1492570,1493011,1493013-1493014,1493071,1493113,1493740,1493801,1493910,1494044,1494048,1494051,1494056,1494143,1495015,1495043,1495154,1495197,1495880,1495886,1496061,1496732,1496734,1497474,1497538,1497754,1498340,1498363 ,1498368,1498409,1498475,1498482,1498498,1498669,1498698,1498808,1499371,1499388,1499513,1499953,1500003,1500062,1500371,1500380,1500577,1500590,1500663,1501176,1501266,1501304,1501719,1501738,1501823,1501910,1501927,1501929,1502254,1502349,1503851,1505843,1505929,1506053,1507013,1507052,1507096,1507870,1507872,1508196,1508259,1508346,1509128,1509151,1509156,1509161,1509806,1510246,1510271,1510488,1511212,1511217,1511434,1512034,1513025,1513148-1513149,1513665,1514281,1514291,1514305,1514368,1514470,1514485-1514486,1515841,1515926,1516113,1516295,1516419,1516710,1516953,1517536,1517898,1517941,1517970,1517980,1518189,1518210,1518328,1518381,1518536,1518540,1518578,1518581,1518589,1519611,1519623,1519627,1520273,1520349,1520632,1520655,1521023,1521025,1521027,1521030,1521032,1521034,1521040,1521043,1521049-1521050,1521059-1521061,1521073,1521075,1521271,1521276,1521444,1521687,1521829,1521831,1521834-1521835,1521837,1521839-1521840,1522016,1523555,1523646-1523647,1523674,1523781,1523 788,1523830,1523955,1523958,1523964,1523982,1524078,1524558,1524652,1524657,1524668,1524683,1524687,1524707,1524719,1524727,1524761,1524978,1524984,1525593,1525696,1526043,1526052,1527480,1527493,1527727-1527728,1527730-1527733,1528060,1528166,1528169,1528171-1528172,1528248,1528369,1528383,1528407,1528424,1528855,1529149,1529181,1529317,1529546,1529549,1529787,1530057,1530081,1530103,1530213,1530296,1530298,1530325,1530342,1530348,1530353,1530397,1530418,1530421,1530423,1530426,1530445,1530574,1530599,1530632,1530791,1530822,1530866,1530875,1530909,1530989,1531087,1531099,1531130,1531138,1531156,1531161,1531271,1531312,1531600,1532036,1532269,1532286,1532373,1532437,1532445,1532498-1532501,1532506,1532544,1532622,1532627,1532718-1532722,1532765-1532766,1533048-1533049,1533117,1533312,1533347,1533962,1533980,1534165,1534418,1534540,1534543-1534544,1534612,1534616,1534619,1534727,1534744,1534846,1536298,1536337,1536520,1536624,1536632,1536735,1536834,1536848,1536850,1536852,1537041,1 537057,1537073,1537404,1537835,1538533,1538781,1538798,1538921,1538923-1538924,1539133,1539157,1539173,1539445,1539452,1539702,1539716,1539887,1539953,1540374,1540383-1540386,1540396-1540398,1540400-1540413,1540539,1540641,1540647,1540670,1540687,1540765,1540807,1542267,1542339,1542769,1542841,1542845,1542856,1543383,1543753,1543772,1543815-1543817,1543897,1543943,1543948,1544072,1544075,1544082,1544165,1544208,1544210,1544453,1544455,1544460,1544472,1544589,1544593,1544606,1544679,1545075,1545078,1545082,1545213,1545215,1545261,1545284,1545288,1545377,1545416,1545471,1545480,1545558,1545619,1545665,1545750,1545799,1545814,1545832,1545847,1545863,1546172,1546372,1546382,1546631,1546656,1547032,1547760,1548169,1548182-1548183,1548185,1548498,1548695,1548961,1548966,1549522,1549525,1549528,1549909,1550387,1550541,1550743,1550920,1551298,1551300,1551323,1551481-1551482,1551953,1552042,1552071,1552080,1552287,1552804,1553126,1553608,1553650,1555163,1556725,1556783,1556788,1556807,155682 3,1556836,1556957,1557082,1557747,1557752,1558129,1558355,1558811,1559081,1559113,1559134,1559397,1559419,1559549-1559550,1559561-1559562,1559573,1559662,1559697,1559707,1559798,1560017,1560158,1560177,1560212-1560213,1560784,1560810,1560817,1560838,1560850,1560856,1560922,1560948,1561025,1561054-1561065,1561067-1561070,1561072-1561075,1561083,1561085,1561093-1561094,1561098,1561101,1561104,1561106,1561114-1561116,1561121-1561123,1561126-1561128,1561131-1561133,1561135-1561136,1561138,1561140,1561143-1561146,1561148-1561157,1561160-1561162,1561164-1561176,1561178-1561182,1561185-1561188,1561190-1561192,1561195,1561623,1561635,1561640,1561732,1562411,1562458,1562581,1562597,1562742,1562746,1563206,1563989,1564299,1564309,1564312,1564398,1564414,1564461,1564742-1564746,1565300-1565416,1565451,1565788,1566693,1566699,1567144,1567382,1567404,1567429,1567580,1567634,1567993,1568768,1568779-1568780,1568803,1568828,1568921,1568926,1568936,1569398,1569459,1569735,1569755,1570114,1570120,157 0176,1570547,1570601,1570629,1570713,1571196,1571725,1572574,1574004,1574479,1574923,1574936,1574943,1575012,1575262,1575545,1575885,1575910,1576104,1576271,1576288,1576628,1576722,1576768,1576810,1576908,1576923,1577182,1577195,1577315,1577324,1577463,1577544,1577557,1577565,1577581,1577714,1577873,1577944,1578309,1578329,1578337,1578610-1578611,1578636,1578810,1578812-1578813,1578817,1579174,1579214-1579215,1579626,1580030,1580080,1580194,1580514,1580598,1580658,1580821,1580849,1580869,1581061,1581529,1582009,1582453,1584915,1584922,1586644,1586658,1586890,1586894,1586951,1586959,1586961,1587272,1587378-1587379,1587723,1587859,1587865,1587870,1587886,1588102,1588193,1588197,1588269,1588462,1589035,1589039,1589043,1589100,1589102,1589165-1589166,1589170,1589523,1589630,1589633,1589668,1589698,1589726,1589737-1589738,1589763,1589837,1589842,1589967,1589980,1590018,1590060,1590076,1590120,1590128,1590283,1590300,1590302,1590322,1590329,1590339,1590345,1590377,1590402,1590422,1590438, 1590451,1590461,1590471,1590474,1590479,1590604,1590635,1590638,1590646,1590648,1590801,1590835,1590842,1590911,1593132,1593189,1593200,1593259,1593261,1593284,1593335,1593356,1593387,1593421,1593506,1593621,1593697,1593773,1593800,1593834,1593877,1593940,1593994,1594229,1594393,1594436,1594730,1594924,1595171,1595230,1595285,1595289,1595331,1595365,1595690,1595887,1595898,1596081,1596141,1596189,1596275,1596390,1597532,1597541,1597572-1597573,1597652,1597753-1597755,1597759,1597855,1598153,1598242,1598248,1598266-1598267,1598304,1598307,1598310-1598311,1598313,1599393,1599395,1599460,1599479,1599500,1599558,1599738-1599739,1600109,1600162,1600408,1600449,1600495,1600501,1600579-1600580,1600743,1600833,1600839,1600862,1600899,1600955,1600963,1600965,1600978,1600984,1601329-1601330,1601332,1601785,1601796,1601850,1601855,1601886,1601977,1602046,1602189,1602198,1602452,1602521,1602583,1602694,1602831,1602842,1602844,1602851,1602858,1602865,1602956,1603591,1603621,1603770,1603775,16037 79,1603783,1603947,1604024,1604165,1604484-1604496,1604605,1604661,1604768,1604776,1604781,1604788,1604810,1604818,1604822,1605054,1605061,1605066,1605402,1605417,1605454,1605528,1605821,1605823,1605890-1605891,1606072,1606103,1606114,1606653,1607592,1607675,1607740,1607930-1607931,1607934,1608301,1608428,1608443,1608481,1608645,1608963,1609061,1609175,1609334,1609593,1609920,1611506,1614163,1614169,1614179,1614197,1615710,1615724,1615876,1615911,1615947,1616441,1616452,1616458,1617362,1617365,1617383,1617445,1617456,1617461,1617469-1617470,1618112,1618169,1618565,1618688,1618704,1618830,1618832-1618835,1619056,1619106,1619114,1619361-1619362,1619583,1619585,1619738,1619742,1620743,1620915,1620917,1621698,1621725-1621727,1621729,1621731,1621929,1621975,1622163,1622187,1622228,1622233,1622251,1622259,1622263,1622297,1622312,1622342,1622470,1622713,1623236,1623384,1623392,1623685,1623693,1623695,1623779,1624110,1624112,1624115-1624116,1624119,1624122,1624124,1624126,1624129-1624130,16 24132-1624133,1624135,1624139,1624142-1624143,1624147,1624150,1624152,1624155-1624157,1624162-1624165,1624220,1624233,1624235,1624246-1624247,1624252,1624254,1624396,1624408,1624422,1624476,1624486-1624487,1624497-1624498,1624542,1624563-1624565,1624568-1624569,1624571,1624573,1624580,1624583,1624586,1624588,1624592,1624598,1624605,1624614,1624636,1624642,1624645,1624647-1624648,1624655,1624657,1624679,1624959,1624984,1625501,1625504,1625563,1625599,1625842,1625854,1626579,1626741,1626747-1626748,1626764-1626765,1626779,1626893,1626905,1626991,1627033,1627296,1627323,1627370,1627525,1627531,1627569,1627629,1628517,1628524,1628541,1628984,1629293,1630088,1630094,1630110,1630216,1630407,1631347,1631381,1631568,1631628,1631717,1631730,1631817-1631818,1631839,1631852,1631987,1631992-1631993,1632251,1632290,1632307,1632411,1632423-1632425,1632512,1632523,1632584,1632600-1632601,1632604,1632965,1632975,1632988,1633128,1633342,1633346,1633369,1633447-1633448,1633500,1633688,1633785,1633824 -1633825,1633936,1633974,1634229,1634250,1634257-1634258,1634260,1634312,1634326-1634327,1634329,1634690,1635215,1635301,1635308,1635310,1636524,1637331,1637684,1637695,1638720-1638725,1639653,1640083,1640088,1640275,1640322,1640347,1640361,1640365,1640652,1640655-1640658,1640688,1640700-1640883,1641000,1641058,1641064,1641374,1641634,1641656-1641692,1641707-1641718,1641721-1641722,1641735,1641981,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643121,1643206,1643209-1643210,1643216,1643270,1643283,1643309-1643310,1643536,1643570,1643634,1643654,1643675,1643733,1643761,1643963,1644017,1644321,1644529,1644535,1644989,1645011,1645357-1645358,1645455,1645486,1645626,1645641,1645685 +/tomcat/tc8.0.x/trunk:1636525,1637336,1637685,1637709,1638726,1640089,1640276,1640349,1640363,1640366,1640642,1640672,1640674,1640689,1640884,1641001,1641065,1641067,1641375,1641638,1641723,1641726,1641729-1641730,1641736,1641988,1642669-1642670,1642698,1642701,1643205,1643215,1643217,1643230,1643232,1643273,1643285,1643329-1643330,1643511,1643513,1643521,1643539,1643571,1643581-1643582,1643635,1643655,1643738,1643964,1644018,1644333,1644954,1644992,1645014,1645360,1645456,1645627,1645642,1645686,1645903-1645904,1645908-1645909 +/tomcat/trunk:1156115-1157160,1157162-1157859,1157862-1157942,1157945-1160347,1160349-1163716,1163718-1166689,1166691-1174340,1174342-1175596,1175598-1175611,1175613-1175932,1175934-1177783,1177785-1177980,1178006-1180720,1180722-1183094,1183096-1187753,1187755,1187775,1187801,1187806,1187809,1187826-1188312,1188314-1188401,1188646-1188840,1188842-1190176,1190178-1195223,1195225-1195953,1195955,1195957-1201238,1201240-1203345,1203347-1206623,1206625-1208046,1208073,1208096,1208114,1208145,1208772,1209194-1212125,1212127-1220291,1220293,1220295-1221321,1221323-1222329,1222332-1222401,1222405-1222795,1222850-1222950,1222969-1225326,1225328-1225463,1225465,1225627,1225629-1226534,1226536-1228908,1228911-1228923,1228927-1229532,1229534-1230766,1230768-1231625,1231627-1233414,1233419-1235207,1235209-1237425,1237427,1237429-1237977,1237981,1237985,1237995,1238070,1238073,1239024-1239048,1239050-1239062,1239135,1239256,1239258-1239485,1239785-1240046,1240101,1240106,1240109,1240112,1240114 ,1240116,1240118,1240121,1240329,1240474-1240850,1240857,1241087,1241160,1241408-1241822,1241908-1241909,1241912-1242110,1242371-1292130,1292134-1292458,1292464-1292670,1292672-1292776,1292780-1293392,1293397-1297017,1297019-1297963,1297965-1299820,1300108,1300111-1300460,1300520-1300948,1300997,1301006,1301280,1302332,1302348,1302608-1302610,1302649,1302837,1303138,1303163,1303338,1303521,1303587,1303698,1303803,1303852,1304011,1304035,1304037,1304135,1304249,1304253,1304260,1304271,1304275,1304468,1304895,1304930-1304932,1305194,1305943,1305965,1306556,1306579-1306580,1307084,1307310,1307511-1307512,1307579,1307591,1307597,1310636,1310639-1310640,1310642,1310701,1311212,1311995,1327617,1327670,1331766,1333161,1333173,1333827,1334787,1335026,1335257,1335547,1335692,1335711,1335731,1336515,1336813,1336864,1336868,1336884,1337419,1337426,1337546,1337572,1337591-1337595,1337643,1337707,1337719,1337734,1337741,1337745,1338151-1338154,1338178,1342027,1342029,1342315,1342320,1342476,1342 498,1342503,1342717,1342795,1342805,1343044-1343046,1343335,1343394,1343400,1343629,1343708,1343718,1343895,1344063,1344068,1344250,1344266,1344515,1344528,1344612,1344629,1344725,1344868,1344890,1344893,1344896,1344901,1345020,1345029,1345039,1345287-1345290,1345294,1345309,1345325,1345357,1345367,1345579-1345580,1345582,1345688,1345699,1345704,1345731-1345732,1345737,1345744,1345752,1345754,1345779,1345781,1345846,1346107,1346365,1346376,1346404,1346510,1346514,1346519,1346581,1346635,1346644,1346683,1346794,1346885,1346932,1347034,1347047,1347087,1347108-1347109,1347583,1347737,1348105,1348357,1348398,1348425,1348461-1348495,1348498,1348752,1348762,1348772,1348776,1348859,1348968,1348973,1348989,1349007,1349237,1349298,1349317,1349410,1349473,1349539,1349879,1349887,1349893,1349922,1349984,1350124,1350241,1350243,1350294-1350295,1350299,1350864,1350900,1351010,1351054,1351056,1351068,1351134-1351135,1351148,1351259,1351604,1351636-1351640,1351991,1351993,1352011,1352056,1352059,1 352661,1352663,1352788,1352799,1353087,1353125,1353240,1353261,1353414,1353468,1353501,1353581,1353708,1354137,1354170,1354197,1354255,1354362,1354375,1354469,1354664,1354685,1354817,1354847,1354856,1355726,1355810,1356006-1356007,1356014,1356045,1356125,1356422,1356505,1356898,1357042,1357401,1357407,1358586,1358590,1358612-1358613,1359102,1359340,1359981,1360059,1360455,1360460,1360838,1360847,1360892,1360942,1361263,1361430,1361754-1361755,1361762,1361769,1361772,1361962,1361982,1361985,1361991,1364141,1364149,1364411-1364412,1364448,1366708,1366720,1366729,1366734,1366910,1366945,1366953,1366959,1367214,1370346,1370364,1370373,1370386,1370473,1370537,1370549,1370553,1370879,1370916,1370958,1370960,1370973,1371017,1371283,1371336,1371620,1371812,1371823,1371896,1371976,1371978,1371995,1371999,1372131,1372152,1372156,1372390,1373003,1373080,1373142,1373488,1373578,1373618,1373622,1373666,1373985,1373987,1373990,1373993,1374000,1374019,1374086,1374823,1376994,1377078,1377292,137731 1,1377342,1377433,1377444,1377516,1377518-1377519,1377532,1377535,1377544,1377689,1377785,1377794,1377811,1377824,1377827,1377831,1377852-1377853,1377887,1377900,1378322,1378361,1378394,1378699,1378715,1378818,1378868,1378918,1379047,1379090,1379178,1379206,1379213,1379418,1379580,1379590,1379639,1379647,1379649,1379665,1379733,1379735,1380066,1380073,1380075,1380376,1380635,1380637,1380838,1381411,1381623,1382314,1382343,1382366,1382515,1382832,1382842,1384051,1384055,1384063,1384068-1384069,1385336,1387937,1388709,1388890,1390882,1392098,1392619,1393071,1393115,1396615,1396723,1397086,1397464,1397466,1397472,1397482,1397484,1397839,1397868,1397944,1397950,1397953,1397957,1397960,1397962,1397964,1397969,1397971-1397974,1397976-1397980,1397985,1397988-1397989,1398089,1398107,1398109-1398110,1398112,1399022,1401472,1401792,1401808,1401814,1402113,1402122,1402345,1402348,1402350,1402428,1402573,1402576,1402600-1402601,1402622,1402643,1402683,1402837,1402855,1403099,1403468,1404374,140 4658,1404704,1404773,1404917-1404918,1405133,1405168,1405321,1405353,1405357,1405364,1405397,1405399-1405400,1405415,1405435,1405676,1405681,1406456,1406481,1406526,1407595,1407619,1408043,1408148,1408154,1408156,1408159,1408163-1408165,1408248,1408438,1408504,1408513-1408517,1408562-1408565,1408714,1408721,1408739,1408750,1408774,1408792,1408872-1408876,1408906,1408934,1409007,1409030,1410466,1410545,1410609,1410611,1410632,1410714,1410742,1410763-1410764,1410766,1411585,1411993,1412575,1413552,1413556,1413562,1414053,1414113,1414215,1414889,1415177-1415179,1415186,1416458,1416481,1416501,1416529,1416534-1416535,1416658,1417201,1417224,1417282,1417347-1417348,1417353,1417363,1417365,1417370-1417372,1417463,1417465,1417467,1417469,1417476,1424894,1425502,1425564,1425628,1426662,1427013,1427757,1427784,1427804,1427846,1428010,1428079,1428283,1428355,1428403,1428643,1428869,1428959,1428993,1429123,1429153,1429167,1429173,1429179-1429180,1429182,1429356,1429687,1429745,1429784,1429836, 1429863,1429946,1429969,1430079,1430147,1430165,1430445,1430448,1430481,1430487,1430508,1430550,1430567,1430771,1430773,1430775,1430791,1430799,1430806,1430809,1430921,1431164,1431171,1431206,1431221,1431293,1431298,1431302,1431308,1431310,1431320,1431661,1431920,1431990,1432517,1432867,1433976,1434403,1434428,1434438,1434447,1434456,1434463,1434500,1434598,1434660,1434685,1434725,1434757,1434882,1435126,1435505,1435509,1435600,1435606,1435636,1435642,1435759-1435760,1435765,1435767,1437317,1437337,1437505,1437637,1437649,1437743,1437891,1437897,1437903,1438411,1438463,1439054,1439334,1439434,1439442,1439445,1439667,1440095,1440622,1440911,1441342,1441348,1441403,1441416,1441428,1441807,1441895,1441916,1441920,1443350,1443405,1443427,1445111,1445125,1445190,1445208,1445212,1445328,1445337,1445520,1446108,1446137,1446357,1446612,1446640,1446650,1447012,1447178,1447791,1447817-1447818,1448117,1448121,1448125,1448826,1449225,1449406,1450990,1451053,1451061,1451105,1451408,1451434,14517 69,1451938-1451939,1451947,1451955-1451956,1452295,1452501,1452707,1452719,1452721,1452752,1453105,1453112,1453435,1453439,1453490,1453544,1453549,1453621,1454828,1454832,1454953,1455344,1455854,1455973,1456083,1456440,1456453,1456491,1456494,1456657,1456666,1456678,1456706,1456713,1456716,1456721,1456740,1456762,1456766,1456822,1456844,1456863,1456872,1456882,1456885,1456895,1456899,1456904,1456916,1456920,1456926,1456932,1456959,1456963,1456970,1457299,1457301,1457362,1457382,1457402,1457452,1457748,1457968,1458187,1458192,1458200,1458221,1458562,1458564-1458565,1458694,1458726,1458738-1458739,1459010,1459028,1459031,1459061,1459074-1459075,1459085,1459218,1459223,1459289,1459389,1459523-1459524,1459673,1459681,1459761,1459769,1459933,1460107,1460115,1460234,1460313,1460330,1460342,1460533,1460633,1460679,1460873,1461026,1461110,1461341,1461349,1461849,1464781,1465795,1465807,1466051,1466072,1466106,1467091,1468415,1470400,1470435,1470765,1471371,1471632,1475750,1475791,1475900,14 75930,1475968,1476761,1476805,1476815,1476972,1477051,1479175,1479179,1479248,1479482,1479951,1481164,1481835,1482115,1482288,1482309,1482311,1482313,1482321,1482591,1482720,1482723,1482799,1482835,1482854,1483104,1483229,1483288,1483360-1483361,1483390,1483552,1483554,1483679,1483743-1483744,1483786-1483787,1483816-1483817,1483949,1484253,1484592,1484780,1484786,1484861-1484862,1484959,1485114,1485489,1485495,1485611,1485847,1485862,1486062,1486134,1486217,1486294,1486443,1486834,1486861,1486875,1486890,1486939,1487862,1487882,1488151,1488793,1489170,1489195-1489196,1489201,1489385,1489390,1489405,1489437,1489536,1489546,1489610,1489633,1489648,1489738,1489812,1489886,1491485,1491596,1491709,1491841,1491890,1491940,1491942,1492307,1492336,1492343,1492358,1492555,1492570,1493011,1493013-1493014,1493071,1493113,1493740,1493801,1493910,1494044,1494048,1494051,1494056,1494143,1495015,1495043,1495154,1495197,1495880,1495886,1496061,1496732,1496734,1497474,1497538,1497754,1498340,1498363 ,1498368,1498409,1498475,1498482,1498498,1498669,1498698,1498808,1499371,1499388,1499513,1499953,1500003,1500062,1500371,1500380,1500577,1500590,1500663,1501176,1501266,1501304,1501719,1501738,1501823,1501910,1501927,1501929,1502254,1502349,1503851,1505843,1505929,1506053,1507013,1507052,1507096,1507870,1507872,1508196,1508259,1508346,1509128,1509151,1509156,1509161,1509806,1510246,1510271,1510488,1511212,1511217,1511434,1512034,1513025,1513148-1513149,1513665,1514281,1514291,1514305,1514368,1514470,1514485-1514486,1515841,1515926,1516113,1516295,1516419,1516710,1516953,1517536,1517898,1517941,1517970,1517980,1518189,1518210,1518328,1518381,1518536,1518540,1518578,1518581,1518589,1519611,1519623,1519627,1520273,1520349,1520632,1520655,1521023,1521025,1521027,1521030,1521032,1521034,1521040,1521043,1521049-1521050,1521059-1521061,1521073,1521075,1521271,1521276,1521444,1521687,1521829,1521831,1521834-1521835,1521837,1521839-1521840,1522016,1523555,1523646-1523647,1523674,1523781,1523 788,1523830,1523955,1523958,1523964,1523982,1524078,1524558,1524652,1524657,1524668,1524683,1524687,1524707,1524719,1524727,1524761,1524978,1524984,1525593,1525696,1526043,1526052,1527480,1527493,1527727-1527728,1527730-1527733,1528060,1528166,1528169,1528171-1528172,1528248,1528369,1528383,1528407,1528424,1528855,1529149,1529181,1529317,1529546,1529549,1529787,1530057,1530081,1530103,1530213,1530296,1530298,1530325,1530342,1530348,1530353,1530397,1530418,1530421,1530423,1530426,1530445,1530574,1530599,1530632,1530791,1530822,1530866,1530875,1530909,1530989,1531087,1531099,1531130,1531138,1531156,1531161,1531271,1531312,1531600,1532036,1532269,1532286,1532373,1532437,1532445,1532498-1532501,1532506,1532544,1532622,1532627,1532718-1532722,1532765-1532766,1533048-1533049,1533117,1533312,1533347,1533962,1533980,1534165,1534418,1534540,1534543-1534544,1534612,1534616,1534619,1534727,1534744,1534846,1536298,1536337,1536520,1536624,1536632,1536735,1536834,1536848,1536850,1536852,1537041,1 537057,1537073,1537404,1537835,1538533,1538781,1538798,1538921,1538923-1538924,1539133,1539157,1539173,1539445,1539452,1539702,1539716,1539887,1539953,1540374,1540383-1540386,1540396-1540398,1540400-1540413,1540539,1540641,1540647,1540670,1540687,1540765,1540807,1542267,1542339,1542769,1542841,1542845,1542856,1543383,1543753,1543772,1543815-1543817,1543897,1543943,1543948,1544072,1544075,1544082,1544165,1544208,1544210,1544453,1544455,1544460,1544472,1544589,1544593,1544606,1544679,1545075,1545078,1545082,1545213,1545215,1545261,1545284,1545288,1545377,1545416,1545471,1545480,1545558,1545619,1545665,1545750,1545799,1545814,1545832,1545847,1545863,1546172,1546372,1546382,1546631,1546656,1547032,1547760,1548169,1548182-1548183,1548185,1548498,1548695,1548961,1548966,1549522,1549525,1549528,1549909,1550387,1550541,1550743,1550920,1551298,1551300,1551323,1551481-1551482,1551953,1552042,1552071,1552080,1552287,1552804,1553126,1553608,1553650,1555163,1556725,1556783,1556788,1556807,155682 3,1556836,1556957,1557082,1557747,1557752,1558129,1558355,1558811,1559081,1559113,1559134,1559397,1559419,1559549-1559550,1559561-1559562,1559573,1559662,1559697,1559707,1559798,1560017,1560158,1560177,1560212-1560213,1560784,1560810,1560817,1560838,1560850,1560856,1560922,1560948,1561025,1561054-1561065,1561067-1561070,1561072-1561075,1561083,1561085,1561093-1561094,1561098,1561101,1561104,1561106,1561114-1561116,1561121-1561123,1561126-1561128,1561131-1561133,1561135-1561136,1561138,1561140,1561143-1561146,1561148-1561157,1561160-1561162,1561164-1561176,1561178-1561182,1561185-1561188,1561190-1561192,1561195,1561623,1561635,1561640,1561732,1562411,1562458,1562581,1562597,1562742,1562746,1563206,1563989,1564299,1564309,1564312,1564398,1564414,1564461,1564742-1564746,1565300-1565416,1565451,1565788,1566693,1566699,1567144,1567382,1567404,1567429,1567580,1567634,1567993,1568768,1568779-1568780,1568803,1568828,1568921,1568926,1568936,1569398,1569459,1569735,1569755,1570114,1570120,157 0176,1570547,1570601,1570629,1570713,1571196,1571725,1572574,1574004,1574479,1574923,1574936,1574943,1575012,1575262,1575545,1575885,1575910,1576104,1576271,1576288,1576628,1576722,1576768,1576810,1576908,1576923,1577182,1577195,1577315,1577324,1577463,1577544,1577557,1577565,1577581,1577714,1577873,1577944,1578309,1578329,1578337,1578610-1578611,1578636,1578810,1578812-1578813,1578817,1579174,1579214-1579215,1579626,1580030,1580080,1580194,1580514,1580598,1580658,1580821,1580849,1580869,1581061,1581529,1582009,1582453,1584915,1584922,1586644,1586658,1586890,1586894,1586951,1586959,1586961,1587272,1587378-1587379,1587723,1587859,1587865,1587870,1587886,1588102,1588193,1588197,1588269,1588462,1589035,1589039,1589043,1589100,1589102,1589165-1589166,1589170,1589523,1589630,1589633,1589668,1589698,1589726,1589737-1589738,1589763,1589837,1589842,1589967,1589980,1590018,1590060,1590076,1590120,1590128,1590283,1590300,1590302,1590322,1590329,1590339,1590345,1590377,1590402,1590422,1590438, 1590451,1590461,1590471,1590474,1590479,1590604,1590635,1590638,1590646,1590648,1590801,1590835,1590842,1590911,1593132,1593189,1593200,1593259,1593261,1593284,1593335,1593356,1593387,1593421,1593506,1593621,1593697,1593773,1593800,1593834,1593877,1593940,1593994,1594229,1594393,1594436,1594730,1594924,1595171,1595230,1595285,1595289,1595331,1595365,1595690,1595887,1595898,1596081,1596141,1596189,1596275,1596390,1597532,1597541,1597572-1597573,1597652,1597753-1597755,1597759,1597855,1598153,1598242,1598248,1598266-1598267,1598304,1598307,1598310-1598311,1598313,1599393,1599395,1599460,1599479,1599500,1599558,1599738-1599739,1600109,1600162,1600408,1600449,1600495,1600501,1600579-1600580,1600743,1600833,1600839,1600862,1600899,1600955,1600963,1600965,1600978,1600984,1601329-1601330,1601332,1601785,1601796,1601850,1601855,1601886,1601977,1602046,1602189,1602198,1602452,1602521,1602583,1602694,1602831,1602842,1602844,1602851,1602858,1602865,1602956,1603591,1603621,1603770,1603775,16037 79,1603783,1603947,1604024,1604165,1604484-1604496,1604605,1604661,1604768,1604776,1604781,1604788,1604810,1604818,1604822,1605054,1605061,1605066,1605402,1605417,1605454,1605528,1605821,1605823,1605890-1605891,1606072,1606103,1606114,1606653,1607592,1607675,1607740,1607930-1607931,1607934,1608301,1608428,1608443,1608481,1608645,1608963,1609061,1609175,1609334,1609593,1609920,1611506,1614163,1614169,1614179,1614197,1615710,1615724,1615876,1615911,1615947,1616441,1616452,1616458,1617362,1617365,1617383,1617445,1617456,1617461,1617469-1617470,1618112,1618169,1618565,1618688,1618704,1618830,1618832-1618835,1619056,1619106,1619114,1619361-1619362,1619583,1619585,1619738,1619742,1620743,1620915,1620917,1621698,1621725-1621727,1621729,1621731,1621929,1621975,1622163,1622187,1622228,1622233,1622251,1622259,1622263,1622297,1622312,1622342,1622470,1622713,1623236,1623384,1623392,1623685,1623693,1623695,1623779,1624110,1624112,1624115-1624116,1624119,1624122,1624124,1624126,1624129-1624130,16 24132-1624133,1624135,1624139,1624142-1624143,1624147,1624150,1624152,1624155-1624157,1624162-1624165,1624220,1624233,1624235,1624246-1624247,1624252,1624254,1624396,1624408,1624422,1624476,1624486-1624487,1624497-1624498,1624542,1624563-1624565,1624568-1624569,1624571,1624573,1624580,1624583,1624586,1624588,1624592,1624598,1624605,1624614,1624636,1624642,1624645,1624647-1624648,1624655,1624657,1624679,1624959,1624984,1625501,1625504,1625563,1625599,1625842,1625854,1626579,1626741,1626747-1626748,1626764-1626765,1626779,1626893,1626905,1626991,1627033,1627296,1627323,1627370,1627525,1627531,1627569,1627629,1628517,1628524,1628541,1628984,1629293,1630088,1630094,1630110,1630216,1630407,1631347,1631381,1631568,1631628,1631717,1631730,1631817-1631818,1631839,1631852,1631987,1631992-1631993,1632251,1632290,1632307,1632411,1632423-1632425,1632512,1632523,1632584,1632600-1632601,1632604,1632965,1632975,1632988,1633128,1633342,1633346,1633369,1633447-1633448,1633500,1633688,1633785,1633824 -1633825,1633936,1633974,1634229,1634250,1634257-1634258,1634260,1634312,1634326-1634327,1634329,1634690,1635215,1635301,1635308,1635310,1636524,1637331,1637684,1637695,1638720-1638725,1639653,1640083,1640088,1640275,1640322,1640347,1640361,1640365,1640652,1640655-1640658,1640688,1640700-1640883,1641000,1641058,1641064,1641374,1641634,1641656-1641692,1641707-1641718,1641721-1641722,1641735,1641981,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643121,1643206,1643209-1643210,1643216,1643270,1643283,1643309-1643310,1643536,1643570,1643634,1643654,1643675,1643733,1643761,1643963,1644017,1644321,1644529,1644535,1644989,1645011,1645357-1645358,1645455,1645486,1645488,1645626,1645641,1645685 Modified: tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/SimpleAjpClient.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/SimpleAjpClient.java?rev=1645960&r1=1645959&r2=1645960&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/SimpleAjpClient.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/SimpleAjpClient.java Tue Dec 16 14:56:34 2014 @@ -44,6 +44,15 @@ public class SimpleAjpClient { private String host = "localhost"; private int port = -1; + /* GET == 2 */ + private int method = 2; + private String protocol = "http"; + private String uri = "/"; + private String remoteAddr = "192.168.0.1"; + private String remoteHost = "client.example.com"; + private String serverName = "www.example.com"; + private int serverPort = 80; + private boolean ssl = false; private Socket socket = null; public void setPort(int port) { @@ -54,6 +63,184 @@ public class SimpleAjpClient { return port; } + public void setMethod(String method) { + method = method.toUpperCase(); + if (method.equals("OPTIONS")) { + this.method = 1; + } else if (method.equals("GET")) { + this.method = 2; + } else if (method.equals("HEAD")) { + this.method = 3; + } else if (method.equals("POST")) { + this.method = 4; + } else if (method.equals("PUT")) { + this.method = 5; + } else if (method.equals("DELETE")) { + this.method = 6; + } else if (method.equals("TRACE")) { + this.method = 7; + } else if (method.equals("PROPFIND")) { + this.method = 8; + } else if (method.equals("PROPPATCH")) { + this.method = 9; + } else if (method.equals("MKCOL")) { + this.method = 10; + } else if (method.equals("COPY")) { + this.method = 11; + } else if (method.equals("MOVE")) { + this.method = 12; + } else if (method.equals("LOCK")) { + this.method = 13; + } else if (method.equals("UNLOCK")) { + this.method = 14; + } else if (method.equals("ACL")) { + this.method = 15; + } else if (method.equals("REPORT")) { + this.method = 16; + } else if (method.equals("VERSION-CONTROL")) { + this.method = 17; + } else if (method.equals("CHECKIN")) { + this.method = 18; + } else if (method.equals("CHECKOUT")) { + this.method = 19; + } else if (method.equals("UNCHECKOUT")) { + this.method = 20; + } else if (method.equals("SEARCH")) { + this.method = 21; + } else if (method.equals("MKWORKSPACE")) { + this.method = 22; + } else if (method.equals("UPDATE")) { + this.method = 23; + } else if (method.equals("LABEL")) { + this.method = 24; + } else if (method.equals("MERGE")) { + this.method = 25; + } else if (method.equals("BASELINE-CONTROL")) { + this.method = 26; + } else if (method.equals("MKACTIVITY")) { + this.method = 27; + } else { + this.method = 99; + } + } + + public String getMethod() { + switch (method) { + case 1: + return "OPTIONS"; + case 2: + return "GET"; + case 3: + return "HEAD"; + case 4: + return "POST"; + case 5: + return "PUT"; + case 6: + return "DELETE"; + case 7: + return "TRACE"; + case 8: + return "PROPFIND"; + case 9: + return "PROPPATCH"; + case 10: + return "MKCOL"; + case 11: + return "COPY"; + case 12: + return "MOVE"; + case 13: + return "LOCK"; + case 14: + return "UNLOCK"; + case 15: + return "ACL"; + case 16: + return "REPORT"; + case 17: + return "VERSION-CONTROL"; + case 18: + return "CHECKIN"; + case 19: + return "CHECKOUT"; + case 20: + return "UNCHECKOUT"; + case 21: + return "SEARCH"; + case 22: + return "MKWORKSPACE"; + case 23: + return "UPDATE"; + case 24: + return "LABEL"; + case 25: + return "MERGE"; + case 26: + return "BASELINE-CONTROL"; + case 27: + return "MKACTIVITY"; + default: + return "UNKNOWN"; + } + } + + public void setProtocol(String protocol) { + this.protocol = protocol; + } + + public String getProtocol() { + return protocol; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public String getUri() { + return uri; + } + + public void setRemoteAddr(String remoteAddr) { + this.remoteAddr = remoteAddr; + } + + public String getRemoteAddr() { + return remoteAddr; + } + + public void setRemoteHost(String remoteHost) { + this.remoteHost = remoteHost; + } + + public String getRemoteHost() { + return remoteHost; + } + + public void setServerName(String serverName) { + this.serverName = serverName; + } + + public String getServerName() { + return serverName; + } + + public void setServerPort(int serverPort) { + this.serverPort = serverPort; + } + + public int getServerPort() { + return serverPort; + } + + public void setSsl(boolean ssl) { + this.ssl = ssl; + } + + public boolean isSsl() { + return ssl; + } + public void connect() throws IOException { socket = SocketFactory.getDefault().createSocket(host, port); } @@ -66,11 +253,7 @@ public class SimpleAjpClient { /** * Create a message to request the given URL. */ - public TesterAjpMessage createForwardMessage(String url) { - return createForwardMessage(url, 2); - } - - public TesterAjpMessage createForwardMessage(String url, int method) { + public TesterAjpMessage createForwardMessage() { TesterAjpMessage message = new TesterAjpMessage(AJP_PACKET_SIZE); message.reset(); @@ -86,30 +269,29 @@ public class SimpleAjpClient { message.appendByte(method); // Protocol - message.appendString("http"); + message.appendString(protocol); // Request URI - message.appendString(url); + message.appendString(uri); - // Remote address - message.appendString("10.0.0.1"); + // Client address + message.appendString(remoteAddr); - // Remote host - message.appendString("client.dev.local"); + // Client host + message.appendString(remoteHost); // Server name - message.appendString(host); + message.appendString(serverName); - // Port - message.appendInt(port); + // Server port + message.appendInt(serverPort); // Is ssl - message.appendByte(0x00); + message.appendByte(ssl ? 0x01 : 0x00); return message; } - public TesterAjpMessage createBodyMessage(byte[] data) { TesterAjpMessage message = new TesterAjpMessage(AJP_PACKET_SIZE); Modified: tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java?rev=1645960&r1=1645959&r2=1645960&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java Tue Dec 16 14:56:34 2014 @@ -18,7 +18,9 @@ package org.apache.coyote.ajp; import java.io.File; import java.io.IOException; +import java.util.HashMap; +import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -56,6 +58,350 @@ public class TestAbstractAjpProcessor ex return protocol; } + private void doSnoopTest(RequestDescriptor desc) throws Exception { + + HashMap<String, String> requestInfo = desc.getRequestInfo(); + HashMap<String, String> contextInitParameters = desc.getContextInitParameters(); + HashMap<String, String> contextAttributes = desc.getContextAttributes(); + HashMap<String, String> headers = desc.getHeaders(); + HashMap<String, String> attributes = desc.getAttributes(); + HashMap<String, String> params = desc.getParams(); + + Tomcat tomcat = getTomcatInstance(); + + // Must have a real docBase - just use temp + Context ctx = tomcat.addContext("", System.getProperty("java.io.tmpdir")); + + Tomcat.addServlet(ctx, "snoop", new SnoopServlet()); + ctx.addServletMapping("/", "snoop"); + + SimpleAjpClient ajpClient = new SimpleAjpClient(); + + if (requestInfo.get("REQUEST-QUERY-STRING") != null && + params.size() > 0) { + throw(new IllegalArgumentException("Request setting " + + "'REQUEST-QUERY-STRING' and explicit params not allowed " + + "together")); + } + + String value; + HashMap<String, String> savedRequestInfo = new HashMap<String, String>(); + for (String name: requestInfo.keySet()) { + value = requestInfo.get(name); + if (name.equals("REQUEST-METHOD")) { + ajpClient.setMethod(value); + } else if (name.equals("REQUEST-PROTOCOL")) { + ajpClient.setProtocol(value); + } else if (name.equals("REQUEST-URI")) { + ajpClient.setUri(value); + } else if (name.equals("REQUEST-REMOTE-HOST")) { + /* request.getRemoteHost() will default to + * request.getRemoteAddr() unless enableLookups is set. */ + tomcat.getConnector().setEnableLookups(true); + ajpClient.setRemoteHost(value); + } else if (name.equals("REQUEST-REMOTE-ADDR")) { + ajpClient.setRemoteAddr(value); + } else if (name.equals("REQUEST-SERVER-NAME")) { + ajpClient.setServerName(value); + } else if (name.equals("REQUEST-SERVER-PORT")) { + ajpClient.setServerPort(Integer.valueOf(value)); + } else if (name.equals("REQUEST-IS-SECURE")) { + ajpClient.setSsl(Boolean.parseBoolean(value)); + } else if (name.equals("REQUEST-LOCAL-ADDR")) { + savedRequestInfo.put(name, value); + } else if (name.equals("REQUEST-REMOTE-PORT")) { + savedRequestInfo.put(name, value); + } else if (name.equals("REQUEST-REMOTE-USER") || + name.equals("REQUEST-ROUTE") || + name.equals("REQUEST-SECRET") || + name.equals("REQUEST-AUTH-TYPE") || + name.equals("REQUEST-QUERY-STRING")) { + savedRequestInfo.put(name, value); + } else if (name.equals("REQUEST-CONTENT-LENGTH")) { + headers.put("CONTENT-LENGTH", value); + } else if (name.equals("REQUEST-CONTENT-TYPE")) { + headers.put("CONTENT-TYPE", value); + /* Not yet implemented or not (easily) possible to implement + * "REQUEST-LOCAL-NAME" + * "REQUEST-LOCAL-PORT" + * "REQUEST-SCHEME" + * "REQUEST-URL" + * "REQUEST-CONTEXT-PATH" + * "REQUEST-SERVLET-PATH" + * "REQUEST-PATH-INFO" + * "REQUEST-PATH-TRANSLATED" + * "REQUEST-USER-PRINCIPAL" + * "REQUEST-CHARACTER-ENCODING" + * "REQUEST-LOCALE" + * "SESSION-REQUESTED-ID" + * "SESSION-REQUESTED-ID-COOKIE" + * "SESSION-REQUESTED-ID-URL" + * "SESSION-REQUESTED-ID-VALID" + */ + } else { + throw(new IllegalArgumentException("Request setting '" + name + "' not supported")); + } + } + + ServletContext sc = ctx.getServletContext(); + for (String name: contextInitParameters.keySet()) { + sc.setInitParameter(name, contextInitParameters.get(name)); + } + for (String name: contextAttributes.keySet()) { + sc.setAttribute(name, contextAttributes.get(name)); + } + + /* Basic request properties must be set before this call */ + TesterAjpMessage forwardMessage = ajpClient.createForwardMessage(); + + for (String name: savedRequestInfo.keySet()) { + value = savedRequestInfo.get(name); + if (name.equals("REQUEST-LOCAL-ADDR")) { + forwardMessage.addAttribute("AJP_LOCAL_ADDR", value); + } else if (name.equals("REQUEST-REMOTE-PORT")) { + forwardMessage.addAttribute("AJP_REMOTE_PORT", value); + } else if (name.equals("REQUEST-REMOTE-USER")) { + /* request.getRemoteUser() will not trust the AJP + * info if tomcatAuthentication is set. */ + tomcat.getConnector().setProperty("tomcatAuthentication", "false"); + forwardMessage.addAttribute(0x03, value); + } else if (name.equals("REQUEST-AUTH-TYPE")) { + /* request.getAuthType() will not trust the AJP + * info if tomcatAuthentication is set. */ + tomcat.getConnector().setProperty("tomcatAuthentication", "false"); + forwardMessage.addAttribute(0x04, value); + } else if (name.equals("REQUEST-QUERY-STRING")) { + forwardMessage.addAttribute(0x05, value); + } else if (name.equals("REQUEST-ROUTE")) { + forwardMessage.addAttribute(0x06, value); + } else if (name.equals("REQUEST-SECRET")) { + forwardMessage.addAttribute(0x0C, value); + } else { + throw(new IllegalArgumentException("Request setting '" + name + "' not supported")); + } + } + + if (params.size() > 0) { + StringBuilder query = new StringBuilder(); + boolean sep = false; + for (String name: params.keySet()) { + if (sep) { + query.append("&"); + } else { + sep = true; + } + query.append(name); + query.append("="); + query.append(params.get(name)); + } + forwardMessage.addAttribute(0x05, query.toString()); + } + + for (String name: headers.keySet()) { + value = headers.get(name); + name = name.toUpperCase(); + if (name.equals("ACCEPT")) { + forwardMessage.addHeader(0xA001, value); + } else if (name.equals("ACCEPT-CHARSET")) { + forwardMessage.addHeader(0xA002, value); + } else if (name.equals("ACCEPT-ENCODING")) { + forwardMessage.addHeader(0xA003, value); + } else if (name.equals("ACCEPT-LANGUAGE")) { + forwardMessage.addHeader(0xA004, value); + } else if (name.equals("AUTHORIZATION")) { + forwardMessage.addHeader(0xA005, value); + } else if (name.equals("CONNECTION")) { + forwardMessage.addHeader(0xA006, value); + } else if (name.equals("CONTENT-TYPE")) { + forwardMessage.addHeader(0xA007, value); + } else if (name.equals("CONTENT-LENGTH")) { + forwardMessage.addHeader(0xA008, value); + } else if (name.equals("COOKIE")) { + forwardMessage.addHeader(0xA009, value); + } else if (name.equals("COOKIE2")) { + forwardMessage.addHeader(0xA00A, value); + } else if (name.equals("HOST")) { + forwardMessage.addHeader(0xA00B, value); + } else if (name.equals("PRAGMA")) { + forwardMessage.addHeader(0xA00C, value); + } else if (name.equals("REFERER")) { + forwardMessage.addHeader(0xA00D, value); + } else if (name.equals("USER-AGENT")) { + forwardMessage.addHeader(0xA00E, value); + } else { + forwardMessage.addHeader(name, value); + } + } + for (String name: attributes.keySet()) { + value = attributes.get(name); + forwardMessage.addAttribute(name, value); + } + // Complete the message + forwardMessage.end(); + + tomcat.start(); + ajpClient.setPort(getPort()); + ajpClient.connect(); + + // Expect 3 packets: headers, body, end + TesterAjpMessage responseHeaders = ajpClient.sendMessage(forwardMessage); + validateResponseHeaders(responseHeaders, 200, "OK"); + + String body = extractResponseBody(ajpClient.readMessage()); + RequestDescriptor result = SnoopResult.parse(body); + + /* AJP attributes result in Coyote Request attributes, which are + * not listed by request.getAttributeNames(), so SnoopServlet + * does not see them. Delete attributes before result comparison. */ + desc.getAttributes().clear(); + + result.compare(desc); + + validateResponseEnd(ajpClient.readMessage(), true); + } + + @Test + public void testServerName() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-SERVER-NAME", "MYSERVER"); + desc.putRequestInfo("REQUEST-URI", "/testServerName"); + doSnoopTest(desc); + } + + @Test + public void testServerPort() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-SERVER-PORT", "8888"); + desc.putRequestInfo("REQUEST-URI", "/testServerPort"); + doSnoopTest(desc); + } + + @Test + public void testLocalAddr() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-LOCAL-ADDR", "10.3.2.1"); + desc.putRequestInfo("REQUEST-URI", "/testLocalAddr"); + doSnoopTest(desc); + } + + @Test + public void testRemoteHost() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-REMOTE-HOST", "MYCLIENT"); + desc.putRequestInfo("REQUEST-URI", "/testRemoteHost"); + doSnoopTest(desc); + } + + @Test + public void testRemoteAddr() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-REMOTE-ADDR", "10.1.2.3"); + desc.putRequestInfo("REQUEST-URI", "/testRemoteAddr"); + doSnoopTest(desc); + } + + @Test + public void testRemotePort() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-REMOTE-PORT", "34567"); + desc.putRequestInfo("REQUEST-URI", "/testRemotePort"); + doSnoopTest(desc); + } + + @Test + public void testMethod() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-METHOD", "LOCK"); + desc.putRequestInfo("REQUEST-URI", "/testMethod"); + doSnoopTest(desc); + } + + @Test + public void testUri() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-URI", "/a/b/c"); + doSnoopTest(desc); + } + + @Test + public void testProtocol() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-PROTOCOL", "HTTP/1.x"); + desc.putRequestInfo("REQUEST-URI", "/testProtocol"); + doSnoopTest(desc); + } + + @Test + public void testSecure() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-IS-SECURE", "true"); + desc.putRequestInfo("REQUEST-URI", "/testSecure"); + doSnoopTest(desc); + } + + @Test + public void testQueryString() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-QUERY-STRING", "p1=1&p2=12&p3=123"); + desc.putRequestInfo("REQUEST-URI", "/testQueryString"); + doSnoopTest(desc); + } + + @Test + public void testRemoteUser() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-REMOTE-USER", "MYUSER"); + desc.putRequestInfo("REQUEST-URI", "/testRemoteUser"); + doSnoopTest(desc); + } + + @Test + public void testAuthType() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-AUTH-TYPE", "MyAuth"); + desc.putRequestInfo("REQUEST-URI", "/testAuthType"); + doSnoopTest(desc); + } + + @Test + public void testOneHeader() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putHeader("MYHEADER", "MYHEADER-VALUE"); + desc.putRequestInfo("REQUEST-URI", "/testOneHeader"); + doSnoopTest(desc); + } + + @Test + public void testOneAttribute() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putAttribute("MYATTRIBUTE", "MYATTRIBUTE-VALUE"); + desc.putRequestInfo("REQUEST-URI", "/testOneAttribute"); + doSnoopTest(desc); + } + + @Test + public void testMulti() throws Exception { + RequestDescriptor desc = new RequestDescriptor(); + desc.putRequestInfo("REQUEST-SERVER-NAME", "MYSERVER"); + desc.putRequestInfo("REQUEST-SERVER-PORT", "8888"); + desc.putRequestInfo("REQUEST-LOCAL-ADDR", "10.3.2.1"); + desc.putRequestInfo("REQUEST-REMOTE-HOST", "MYCLIENT"); + desc.putRequestInfo("REQUEST-REMOTE-ADDR", "10.1.2.3"); + desc.putRequestInfo("REQUEST-REMOTE-PORT", "34567"); + desc.putRequestInfo("REQUEST-METHOD", "LOCK"); + desc.putRequestInfo("REQUEST-URI", "/a/b/c"); + desc.putRequestInfo("REQUEST-PROTOCOL", "HTTP/1.x"); + desc.putRequestInfo("REQUEST-IS-SECURE", "true"); + desc.putRequestInfo("REQUEST-QUERY-STRING", "p1=1&p2=12&p3=123"); + desc.putRequestInfo("REQUEST-REMOTE-USER", "MYUSER"); + desc.putRequestInfo("REQUEST-AUTH-TYPE", "MyAuth"); + desc.putHeader("MYHEADER1", "MYHEADER1-VALUE"); + desc.putHeader("MYHEADER2", "MYHEADER2-VALUE"); + desc.putAttribute("MYATTRIBUTE1", "MYATTRIBUTE-VALUE1"); + desc.putAttribute("MYATTRIBUTE2", "MYATTRIBUTE-VALUE2"); + doSnoopTest(desc); + } + @Test public void testKeepAlive() throws Exception { Tomcat tomcat = getTomcatInstance(); @@ -75,7 +421,8 @@ public class TestAbstractAjpProcessor ex validateCpong(ajpClient.cping()); - TesterAjpMessage forwardMessage = ajpClient.createForwardMessage("/"); + TesterAjpMessage forwardMessage = ajpClient.createForwardMessage(); + forwardMessage.addHeader("X-DUMMY-HEADER", "IGNORE"); // Complete the message - no extra headers required. forwardMessage.end(); @@ -83,7 +430,7 @@ public class TestAbstractAjpProcessor ex for (int i = 0; i < 2; i++) { TesterAjpMessage responseHeaders = ajpClient.sendMessage(forwardMessage); // Expect 3 packets: headers, body, end - validateResponseHeaders(responseHeaders, 200); + validateResponseHeaders(responseHeaders, 200, "OK"); TesterAjpMessage responseBody = ajpClient.readMessage(); validateResponseBody(responseBody, HelloWorldServlet.RESPONSE_TEXT); validateResponseEnd(ajpClient.readMessage(), true); @@ -100,18 +447,19 @@ public class TestAbstractAjpProcessor ex @Test public void testPost() throws Exception { - doTestPost(false, HttpServletResponse.SC_OK); + doTestPost(false, HttpServletResponse.SC_OK, "OK"); } @Test public void testPostMultipleContentLength() throws Exception { // Multiple content lengths - doTestPost(true, HttpServletResponse.SC_BAD_REQUEST); + doTestPost(true, HttpServletResponse.SC_BAD_REQUEST, "Bad Request"); } - public void doTestPost(boolean multipleCL, int expectedStatus) throws Exception { + public void doTestPost(boolean multipleCL, int expectedStatus, + String expectedMessage) throws Exception { Tomcat tomcat = getTomcatInstance(); @@ -127,8 +475,9 @@ public class TestAbstractAjpProcessor ex validateCpong(ajpClient.cping()); - TesterAjpMessage forwardMessage = - ajpClient.createForwardMessage("/echo-params.jsp", 4); + ajpClient.setUri("/echo-params.jsp"); + ajpClient.setMethod("POST"); + TesterAjpMessage forwardMessage = ajpClient.createForwardMessage(); forwardMessage.addHeader(0xA008, "9"); if (multipleCL) { forwardMessage.addHeader(0xA008, "99"); @@ -142,7 +491,7 @@ public class TestAbstractAjpProcessor ex TesterAjpMessage responseHeaders = ajpClient.sendMessage(forwardMessage, bodyMessage); - validateResponseHeaders(responseHeaders, expectedStatus); + validateResponseHeaders(responseHeaders, expectedStatus, expectedMessage); if (expectedStatus == HttpServletResponse.SC_OK) { // Expect 3 messages: headers, body, end for a valid request TesterAjpMessage responseBody = ajpClient.readMessage(); @@ -182,14 +531,14 @@ public class TestAbstractAjpProcessor ex validateCpong(ajpClient.cping()); - TesterAjpMessage forwardMessage = ajpClient.createForwardMessage("/"); + TesterAjpMessage forwardMessage = ajpClient.createForwardMessage(); forwardMessage.end(); TesterAjpMessage responseHeaders = ajpClient.sendMessage(forwardMessage, null); // Expect 2 messages: headers, end - validateResponseHeaders(responseHeaders, 304); + validateResponseHeaders(responseHeaders, 304, "Not Modified"); validateResponseEnd(ajpClient.readMessage(), true); // Double check the connection is still open @@ -204,7 +553,7 @@ public class TestAbstractAjpProcessor ex * ignored. */ private void validateResponseHeaders(TesterAjpMessage message, - int expectedStatus) throws Exception { + int expectedStatus, String expectedMessage) throws Exception { // First two bytes should always be AB Assert.assertEquals((byte) 'A', message.buf[0]); Assert.assertEquals((byte) 'B', message.buf[1]); @@ -221,8 +570,8 @@ public class TestAbstractAjpProcessor ex // Check status Assert.assertEquals(expectedStatus, message.readInt()); - // Read the status message - message.readString(); + // Check the reason phrase + Assert.assertEquals(expectedMessage, message.readString()); // Get the number of headers int headerCount = message.readInt(); @@ -236,11 +585,10 @@ public class TestAbstractAjpProcessor ex } /** - * Validates that the response message is valid and contains the expected - * content. + * Extract the content from a response message. */ - private void validateResponseBody(TesterAjpMessage message, - String expectedBody) throws Exception { + private String extractResponseBody(TesterAjpMessage message) + throws Exception { Assert.assertEquals((byte) 'A', message.buf[0]); Assert.assertEquals((byte) 'B', message.buf[1]); @@ -253,8 +601,17 @@ public class TestAbstractAjpProcessor ex int len = message.readInt(); Assert.assertTrue(len > 0); - String body = message.readString(len); + return message.readString(len); + } + + /** + * Validates that the response message is valid and contains the expected + * content. + */ + private void validateResponseBody(TesterAjpMessage message, + String expectedBody) throws Exception { + String body = extractResponseBody(message); Assert.assertTrue(body.contains(expectedBody)); } Modified: tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TesterAjpMessage.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TesterAjpMessage.java?rev=1645960&r1=1645959&r2=1645960&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TesterAjpMessage.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/coyote/ajp/TesterAjpMessage.java Tue Dec 16 14:56:34 2014 @@ -28,6 +28,7 @@ import java.util.List; public class TesterAjpMessage extends AjpMessage { private final List<Header> headers = new ArrayList<Header>(); + private final List<Attribute> attributes = new ArrayList<Attribute>(); public TesterAjpMessage(int packetSize) { @@ -85,6 +86,16 @@ public class TesterAjpMessage extends Aj } + public void addAttribute(int code, String value) { + attributes.add(new Attribute(code, value)); + } + + + public void addAttribute(String name, String value) { + attributes.add(new Attribute(name, value)); + } + + @Override public void end() { // Add the header count @@ -94,6 +105,10 @@ public class TesterAjpMessage extends Aj header.append(this); } + for (Attribute attribute : attributes) { + attribute.append(this); + } + // Terminator appendByte(0xFF); @@ -141,5 +156,34 @@ public class TesterAjpMessage extends Aj } message.appendString(value); } + } + + + private static class Attribute { + private final int code; + private final String name; + private final String value; + + public Attribute(int code, String value) { + this.code = code; + this.name = null; + this.value = value; + } + + public Attribute(String name, String value) { + this.code = 0; + this.name = name; + this.value = value; + } + + public void append(TesterAjpMessage message) { + if (code == 0) { + message.appendByte(0x0A); + message.appendString(name); + } else { + message.appendByte(code); + } + message.appendString(value); + } } } Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1645960&r1=1645959&r2=1645960&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Tue Dec 16 14:56:34 2014 @@ -170,6 +170,9 @@ Add RequestDescriptor class to unit tests. Adjust TestRewriteValve to use RequestDescriptor. (rjung) </add> + <update> + Add more AJP unit tests. (rjung) + </update> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org