svn commit: r1828458 - in /tomcat/taglibs/standard/trunk: CHANGES.txt jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java jstlel/src/main/java/org/apache/taglibs/standard/lang/
Author: jboynes Date: Thu Apr 5 17:48:41 2018 New Revision: 1828458 URL: http://svn.apache.org/viewvc?rev=1828458=rev Log: 57434 - Fix race condition in ELEvaluator for 1.0 expressions Modified: tomcat/taglibs/standard/trunk/CHANGES.txt tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/Evaluator.java Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1828458=1828457=1828458=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Thu Apr 5 17:48:41 2018 @@ -1,5 +1,6 @@ Changes in 1.2.6 release 60950 JSTL TransformSupport XSL import not finding relative path +57434 Race condition in EL1.0 validation Changes in 1.2.5 release - Set version identifiers correctly, no other changes. Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java?rev=1828458=1828457=1828458=diff == --- tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java (original) +++ tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/ELEvaluator.java Thu Apr 5 17:48:41 2018 @@ -102,13 +102,13 @@ public class ELEvaluator { * growth. * NOTE: use LinkedHashmap if a dependency on J2SE 1.4+ is ok */ -static Map sCachedExpressionStrings = null; +private static Map sCachedExpressionStrings = null; /** * The mapping from ExpectedType to Maps mapping literal String to * parsed value * */ -static Map sCachedExpectedTypes = new HashMap(); +private static final Map sCachedExpectedTypes = new HashMap(); /** * The static Logger * @@ -123,11 +123,12 @@ public class ELEvaluator { /** * Flag if the cache should be bypassed * */ -boolean mBypassCache; +private volatile boolean mBypassCache; /** * The PageContext * */ +// TODO: Find a better way to override the expression cache size that does not need this field. PageContext pageContext; @@ -256,40 +257,46 @@ public class ELEvaluator { return ""; } -if (!(mBypassCache) && (sCachedExpressionStrings == null)) { -createExpressionStringMap(); +if (mBypassCache) { +return parseExpressionUncached(pExpressionString); } +Map cache = getOrCreateExpressionStringMap(pageContext); + // See if it's in the cache -Object ret = -mBypassCache ? -null : -sCachedExpressionStrings.get(pExpressionString); +Object ret = cache.get(pExpressionString); +if (ret != null) { +return ret; +} -if (ret == null) { -// Parse the expression +ret = parseExpressionUncached(pExpressionString); +cache.put(pExpressionString, ret); +return ret; +} + +/** + * Parse an expression string bypassing the cache. + * + * This allows expressions to be validated at translation time without polluting the cache. + * + * @param pExpressionString the text to parse + * @return the parse result + * @throws ELException if there was a problem parsing the expression text + */ +public Object parseExpressionUncached(String pExpressionString) throws ELException { +try { Reader r = new StringReader(pExpressionString); ELParser parser = new ELParser(r); -try { -ret = parser.ExpressionString(); -if (!mBypassCache) { -sCachedExpressionStrings.put(pExpressionString, ret); -} -} -catch (ParseException exc) { -throw new ELException -(formatParseException(pExpressionString, -exc)); -} -catch (TokenMgrError exc) { -// Note - this should never be reached, since the parser is -// constructed to tokenize any input (illegal inputs get -// parsed to or -// -throw new ELException(exc.getMessage()); -} +return parser.ExpressionString(); +} catch (ParseException exc) { +throw new ELException(formatParseException(pExpressionString, exc)); +} catch
svn commit: r1671635 - in /tomcat/sandbox/niofs: src/niofs/ArchiveFileSystemProvider.java tst/niofs/ClassLoaderTest.java
Author: jboynes Date: Mon Apr 6 18:53:07 2015 New Revision: 1671635 URL: http://svn.apache.org/r1671635 Log: Separate mounting FileSystem from creating ClassLoader Modified: tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java Modified: tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java?rev=1671635r1=1671634r2=1671635view=diff == --- tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java (original) +++ tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java Mon Apr 6 18:53:07 2015 @@ -52,6 +52,7 @@ import java.nio.file.attribute.FileTime; import java.nio.file.attribute.UserPrincipalLookupService; import java.nio.file.spi.FileSystemProvider; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashSet; @@ -261,6 +262,7 @@ public class ArchiveFileSystemProvider e */ class ArchiveFileSystem extends FileSystem { private final URI baseURI; +private final Path root; private final MapPath, DirectoryNode directory; private volatile boolean open = true; @@ -271,6 +273,7 @@ public class ArchiveFileSystemProvider e throw new IllegalArgumentException(e); } directory = createIndex(path); +root = getPath(/); } /** @@ -348,7 +351,7 @@ public class ArchiveFileSystemProvider e @Override public IterablePath getRootDirectories() { -return null; +return Collections.singleton(root); } @Override Modified: tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java?rev=1671635r1=1671634r2=1671635view=diff == --- tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java (original) +++ tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java Mon Apr 6 18:53:07 2015 @@ -20,7 +20,6 @@ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; -import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; @@ -34,6 +33,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -41,7 +41,6 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import static java.net.URLEncoder.encode; import static org.junit.Assert.assertEquals; /** @@ -89,30 +88,32 @@ public class ClassLoaderTest { private ClassLoader classLoader; @Before -public void initClassLoader() throws IOException { +public void initClassLoader() throws Exception { ArchiveFileSystemProvider provider = new ArchiveFileSystemProvider(); +String scheme = provider.getScheme(); Path war = FileSystems.getDefault().getPath(greenhouse-1.0.0.BUILD-SNAPSHOT.war); -URI warURI = URI.create(provider.getScheme() + :// + encode(war.toUri().toString(), UTF8)); -FileSystem fileSystem = FileSystems.newFileSystem(warURI, Collections.emptyMap()); -URL[] urls = Files.list(fileSystem.getPath(fileSystem.getSeparator() + WEB-INF, lib)) +URI warURI = new URI(scheme, war.toUri().toString(), null, null, null); +FileSystem warFS = FileSystems.newFileSystem(warURI, Collections.emptyMap()); +ListFileSystem fileSystems = Files.list(warFS.getPath(/WEB-INF/lib)) .filter(path - path.getFileName().toString().matches(.*\\.(zip|jar)$)) .map(path - { try { -return URI.create(provider.getScheme() + :// + encode(path.toUri().toString(), UTF8)); -} catch (UnsupportedEncodingException e) { +URI archiveURI = new URI(scheme, path.toUri().toString(), null, null, null); +return FileSystems.newFileSystem(archiveURI, Collections.emptyMap()); +} catch (URISyntaxException | IOException e) { throw new IllegalStateException(e); } }) -.peek(uri - { +.collect(Collectors.toList()); +Path classes = warFS.getPath(/WEB-INF/classes); +if (Files.isDirectory(classes)) { +fileSystems.add(FileSystems.newFileSystem(classes.toUri(), Collections.emptyMap())); +} +URL[] urls = fileSystems.stream() +.map(archiveFS - { try
svn commit: r1671574 - /tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java
Author: jboynes Date: Mon Apr 6 16:20:43 2015 New Revision: 1671574 URL: http://svn.apache.org/r1671574 Log: Simplify URL connection Modified: tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java Modified: tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java?rev=1671574r1=1671573r2=1671574view=diff == --- tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java (original) +++ tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java Mon Apr 6 16:20:43 2015 @@ -22,6 +22,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; import java.net.URLConnection; @@ -31,6 +32,7 @@ import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Collections; import java.util.Set; import java.util.stream.Collectors; @@ -46,6 +48,8 @@ import static org.junit.Assert.assertEqu * */ public class ClassLoaderTest { +static int count; + @BeforeClass public static void initURLHandler() { // Need this to even construct URLs. @@ -55,9 +59,13 @@ public class ClassLoaderTest { return new URLStreamHandler() { @Override protected URLConnection openConnection(URL u) throws IOException { -URI archive = URI.create(archive:// + u.getHost()); -FileSystem fileSystem = FileSystems.getFileSystem(archive); -Path path = fileSystem.getPath(u.getPath()); +URI uri; +try { +uri = u.toURI(); +} catch (URISyntaxException e) { +throw new IOException(e); +} +Path path = Paths.get(uri); return new URLConnection(u) { @Override public void connect() throws IOException { @@ -65,6 +73,7 @@ public class ClassLoaderTest { @Override public InputStream getInputStream() throws IOException { +count++; return Files.newInputStream(path); } }; @@ -127,12 +136,15 @@ public class ClassLoaderTest { .map(line - line.split( )[1]) .collect(Collectors.toSet()); } +int opens = -count; long time = -System.nanoTime(); Set? urls = paths.stream() .map(classLoader::getResource) .collect(Collectors.toSet()); time += System.nanoTime(); +opens += count; System.out.printf(Found %d resources in %dms\n, urls.size(), time / 100); +System.out.printf(%d opens\n, opens); assertEquals(paths.size(), urls.size()); } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1668200 - in /tomcat/tc7.0.x/trunk: ./ test/org/apache/catalina/core/ webapps/docs/ webapps/examples/WEB-INF/lib/
Author: jboynes Date: Sat Mar 21 07:03:24 2015 New Revision: 1668200 URL: http://svn.apache.org/r1668200 Log: Merge http://svn.apache.org/r1668193 Update examples to use Apache Standard Taglib 1.2.5. Added: tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar - copied unchanged from r1668193, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar - copied unchanged from r1668193, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar Removed: tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Mar 21 07:03:24 2015 @@ -1,2 +1,2 @@ /tomcat/tc8.0.x/trunk:1636525,1637336,1637685,1637709,1638726,1640089,1640276,1640349,1640363,1640366,1640642,1640672,1640674,1640689,1640884,1641001,1641065,1641067,1641375,1641638,1641723,1641726,1641729-1641730,1641736,1641988,1642669-1642670,1642698,1642701,1643205,1643215,1643217,1643230,1643232,1643273,1643285,1643329-1643330,1643511,1643513,1643521,1643539,1643571,1643581-1643582,1643635,1643655,1643738,1643964,1644018,1644333,1644954,1644992,1645014,1645360,1645456,1645627,1645642,1645686,1645903-1645904,1645908-1645909,1645913,1645920,1646458,1646460-1646462,1647043,1648816,1651420-1651422,1651844,1652939-1652940,1652973,1653798,1653817,1653841,1654042,1654161,1654736,1654767,1654787,1656592,1662986,1663265,1663278,1663325,1663535,1663567,1663679,1663997,1664175,1664321,1664872,1665061,1665086,1666027,1666395,1666503,1666506,1666560,1666570,1666581,1666759,1666967,1666988,1667553-1667555,1667558,1667617,1667633,1667637,1667747,1667767,1667873,1668028,1668137 -/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
svn commit: r1668193 - in /tomcat/trunk: test/org/apache/catalina/core/ test/org/apache/jasper/servlet/ webapps/examples/WEB-INF/lib/
Author: jboynes Date: Sat Mar 21 04:26:11 2015 New Revision: 1668193 URL: http://svn.apache.org/r1668193 Log: Update trunk to standard taglib 1.2.5 Added: tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar - copied, changed from r1668188, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar - copied, changed from r1668188, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Removed: tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Modified: tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Modified: tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java?rev=1668193r1=1668192r2=1668193view=diff == --- tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java (original) +++ tomcat/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java Sat Mar 21 04:26:11 2015 @@ -89,12 +89,12 @@ public class TestStandardContextAliases ServletContext context = getServletContext(); // Check resources individually -URL url = context.getResource(/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar); +URL url = context.getResource(/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar); if (url != null) { resp.getWriter().write(00-PASS\n); } -url = context.getResource(/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar); +url = context.getResource(/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar); if (url != null) { resp.getWriter().write(01-PASS\n); } @@ -105,10 +105,10 @@ public class TestStandardContextAliases return; } -if (!libs.contains(/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar)) { +if (!libs.contains(/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar)) { return; } -if (!libs.contains(/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar)) { +if (!libs.contains(/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar)) { return; } Modified: tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java?rev=1668193r1=1668192r2=1668193view=diff == --- tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java (original) +++ tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Sat Mar 21 04:26:11 2015 @@ -100,9 +100,9 @@ public class TestTldScanner extends Tomc File webappDir = new File(webapps/examples); Assert.assertFalse(callback.scanFoundNoTLDs()); -scan(callback, webappDir, WEB-INF/lib/taglibs-standard-spec-1.2.3.jar); +scan(callback, webappDir, WEB-INF/lib/taglibs-standard-spec-1.2.5.jar); Assert.assertTrue(callback.scanFoundNoTLDs()); -scan(callback, webappDir, WEB-INF/lib/taglibs-standard-impl-1.2.3.jar); +scan(callback, webappDir, WEB-INF/lib/taglibs-standard-impl-1.2.5.jar); Assert.assertTrue(callback.scanFoundNoTLDs()); } Copied: tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar (from r1668188, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar) URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar?p2=tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jarp1=tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jarr1=1668188r2=1668193rev=1668193view=diff == Binary files tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar (original) and tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar Sat Mar 21 04:26:11 2015 differ Copied: tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar (from r1668188, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar) URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar?p2=tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jarp1=tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jarr1=1668188r2=1668193rev=1668193view=diff
svn commit: r1668196 - in /tomcat/tc8.0.x/trunk: ./ test/org/apache/catalina/core/ test/org/apache/jasper/servlet/ webapps/docs/ webapps/examples/WEB-INF/lib/
Author: jboynes Date: Sat Mar 21 05:19:18 2015 New Revision: 1668196 URL: http://svn.apache.org/r1668196 Log: Merge http://svn.apache.org/r1668193 Update examples to use Apache Standard Taglib 1.2.5. Added: tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar - copied unchanged from r1668193, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar - copied unchanged from r1668193, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.5.jar Removed: tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/test/org/apache/catalina/core/TestStandardContextAliases.java tomcat/tc8.0.x/trunk/test/org/apache/jasper/servlet/TestTldScanner.java tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Mar 21 05:19:18 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,168,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,1663324,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,137,1 49,1666757,1666966,1666972,1666985,1666995,1666997,1667292,1667402,1667406,1667546,1667615,1667630,1667636,1667688,1667764,1667871,1668026,1668135 +/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
svn commit: r1668188 - in /tomcat/trunk: java/org/apache/coyote/http2/HpackDecoder.java java/org/apache/coyote/http2/HpackEncoder.java test/org/apache/coyote/http2/TestHpack.java
Author: jboynes Date: Sat Mar 21 03:47:17 2015 New Revision: 1668188 URL: http://svn.apache.org/r1668188 Log: Make checkstyle happy Modified: tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java tomcat/trunk/java/org/apache/coyote/http2/HpackEncoder.java tomcat/trunk/test/org/apache/coyote/http2/TestHpack.java Modified: tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java?rev=1668188r1=1668187r2=1668188view=diff == --- tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/HpackDecoder.java Sat Mar 21 03:47:17 2015 @@ -20,8 +20,6 @@ import java.nio.ByteBuffer; import org.apache.tomcat.util.res.StringManager; -import static org.apache.coyote.http2.Hpack.HeaderField; - /** * A decoder for HPACK. */ @@ -39,7 +37,7 @@ public class HpackDecoder { /** * The header table */ -private HeaderField[] headerTable; +private Hpack.HeaderField[] headerTable; /** * The current HEAD position of the header table. We use a ring buffer type @@ -67,7 +65,7 @@ public class HpackDecoder { public HpackDecoder(int maxMemorySize) { this.maxMemorySize = maxMemorySize; -headerTable = new HeaderField[DEFAULT_RING_BUFFER_SIZE]; +headerTable = new Hpack.HeaderField[DEFAULT_RING_BUFFER_SIZE]; } public HpackDecoder() { @@ -109,7 +107,7 @@ public class HpackDecoder { return; } headerEmitter.emitHeader(headerName, headerValue, false); -addEntryToHeaderTable(new HeaderField(headerName, headerValue)); +addEntryToHeaderTable(new Hpack.HeaderField(headerName, headerValue)); } else if ((b 0b) == 0) { //Literal Header Field without Indexing String headerName = readHeaderName(buffer, 4); @@ -165,7 +163,7 @@ public class HpackDecoder { if (firstSlotPosition == tableLength) { firstSlotPosition = 0; } -HeaderField oldData = headerTable[clearIndex]; +Hpack.HeaderField oldData = headerTable[clearIndex]; headerTable[clearIndex] = null; newSize -= oldData.size; newTableSlots--; @@ -225,7 +223,7 @@ public class HpackDecoder { throw new HpackException(); } int adjustedIndex = getRealIndex(index - Hpack.STATIC_TABLE_LENGTH); -HeaderField res = headerTable[adjustedIndex]; +Hpack.HeaderField res = headerTable[adjustedIndex]; if (res == null) { throw new HpackException(); } @@ -244,7 +242,7 @@ public class HpackDecoder { addStaticTableEntry(index); } else { int adjustedIndex = getRealIndex(index - Hpack.STATIC_TABLE_LENGTH); -HeaderField headerField = headerTable[adjustedIndex]; +Hpack.HeaderField headerField = headerTable[adjustedIndex]; headerEmitter.emitHeader(headerField.name, headerField.value, false); } } @@ -268,14 +266,14 @@ public class HpackDecoder { private void addStaticTableEntry(int index) throws HpackException { //adds an entry from the static table. //this must be an entry with a value as far as I can determine -HeaderField entry = Hpack.STATIC_TABLE[index]; +Hpack.HeaderField entry = Hpack.STATIC_TABLE[index]; if (entry.value == null) { throw new HpackException(); } headerEmitter.emitHeader(entry.name, entry.value, false); } -private void addEntryToHeaderTable(HeaderField entry) { +private void addEntryToHeaderTable(Hpack.HeaderField entry) { if (entry.size maxMemorySize) { //it is to big to fit, so we just completely clear the table. while (filledTableSlots 0) { @@ -301,7 +299,7 @@ public class HpackDecoder { if (firstSlotPosition == tableLength) { firstSlotPosition = 0; } -HeaderField oldData = headerTable[clearIndex]; +Hpack.HeaderField oldData = headerTable[clearIndex]; headerTable[clearIndex] = null; newSize -= oldData.size; newTableSlots--; @@ -312,7 +310,7 @@ public class HpackDecoder { private void resizeIfRequired() { if(filledTableSlots == headerTable.length) { -HeaderField[] newArray = new HeaderField[headerTable.length + 10]; //we only grow slowly +Hpack.HeaderField[] newArray = new Hpack.HeaderField[headerTable.length + 10]; //we only grow slowly for(int i = 0; i headerTable.length; ++i) { newArray[i
svn commit: r1667925 - in /tomcat/site/trunk: docs/download-taglibs.html docs/index.html docs/oldnews.html docs/taglibs.html docs/taglibs/CHANGES.txt xdocs/download-taglibs.xml xdocs/index.xml xdocs/o
Author: jboynes Date: Fri Mar 20 03:35:36 2015 New Revision: 1667925 URL: http://svn.apache.org/r1667925 Log: Update site to announce Standard Taglib 1.2.5 Added: tomcat/site/trunk/docs/taglibs/CHANGES.txt Modified: tomcat/site/trunk/docs/download-taglibs.html tomcat/site/trunk/docs/index.html tomcat/site/trunk/docs/oldnews.html tomcat/site/trunk/docs/taglibs.html tomcat/site/trunk/xdocs/download-taglibs.xml tomcat/site/trunk/xdocs/index.xml tomcat/site/trunk/xdocs/oldnews.xml tomcat/site/trunk/xdocs/taglibs.xml Modified: tomcat/site/trunk/docs/download-taglibs.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/download-taglibs.html?rev=1667925r1=1667924r2=1667925view=diff == --- tomcat/site/trunk/docs/download-taglibs.html (original) +++ tomcat/site/trunk/docs/download-taglibs.html Fri Mar 20 03:35:36 2015 @@ -207,7 +207,7 @@ div class=text a href=https://www.apache.org/dist/tomcat/taglibs/KEYS;KEYS/a | -a href=#Standard-1.2.3Standard Taglib 1.2.3/a | +a href=#Standard-1.2.5Standard Taglib 1.2.5/a | a href=[preferred]tomcat/taglibs/ rel=nofollowBrowse/a | a href=http://archive.apache.org/dist/tomcat/taglibs/;Archives/a @@ -255,7 +255,7 @@ /div -h3 id=Standard-1.2.3Standard-1.2.3/h3 +h3 id=Standard-1.2.5Standard-1.2.5/h3 div class=text @@ -267,15 +267,15 @@ li -a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/README_src.txt; rel=nofollowSource README/a +a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/README_src.txt; rel=nofollowSource README/a /li li -a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip rel=nofollowzip/a - (a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip.asc;pgp/a, - a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip.md5;md5/a) +a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-1.2.5-source-release.zip rel=nofollowzip/a + (a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-1.2.5-source-release.zip.asc;pgp/a, + a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-1.2.5-source-release.zip.md5;md5/a) /li /ul @@ -292,7 +292,7 @@ li -a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/README_bin.txt; rel=nofollowBinary README/a +a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/README_bin.txt; rel=nofollowBinary README/a /li @@ -301,9 +301,9 @@ li -a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar rel=nofollowtaglibs-standard-impl-1.2.3.jar/a -(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar.asc;pgp/a, -a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar.md5;md5/a) +a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-impl-1.2.5.jar rel=nofollowtaglibs-standard-impl-1.2.5.jar/a +(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-impl-1.2.5.jar.asc;pgp/a, +a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-impl-1.2.5.jar.md5;md5/a) /li /ul @@ -315,9 +315,9 @@ li -a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-spec-1.2.3.jar rel=nofollowtaglibs-standard-spec-1.2.3.jar/a -(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-spec-1.2.3.jar.asc;pgp/a, -a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-spec-1.2.3.jar.md5;md5/a) +a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-spec-1.2.5.jar rel=nofollowtaglibs-standard-spec-1.2.5.jar/a +(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-spec-1.2.5.jar.asc;pgp/a, +a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.5/taglibs-standard-spec-1.2.5.jar.md5;md5/a) /li /ul @@ -329,9 +329,9 @@ li -a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-jstlel-1.2.3.jar rel=nofollowtaglibs-standard-jstlel-1.2.3.jar/a -(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-jstlel
svn commit: r1667437 - in /tomcat/site/trunk: docs/index.html docs/security-taglibs.html docs/security.html xdocs/index.xml xdocs/security-taglibs.xml xdocs/security.xml
Author: jboynes Date: Wed Mar 18 03:32:00 2015 New Revision: 1667437 URL: http://svn.apache.org/r1667437 Log: Add security page for Taglibs Added: tomcat/site/trunk/docs/security-taglibs.html tomcat/site/trunk/xdocs/security-taglibs.xml (with props) Modified: tomcat/site/trunk/docs/index.html tomcat/site/trunk/docs/security.html tomcat/site/trunk/xdocs/index.xml tomcat/site/trunk/xdocs/security.xml Modified: tomcat/site/trunk/docs/index.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/index.html?rev=1667437r1=1667436r2=1667437view=diff == --- tomcat/site/trunk/docs/index.html (original) +++ tomcat/site/trunk/docs/index.html Wed Mar 18 03:32:00 2015 @@ -238,7 +238,7 @@ of the JSTL 1.2 specification. p Version 1.2.3 is a security and bug fix release. It fixes a few bugs found in Standard Taglib 1.2.1 and provides protection against -a href=https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0254;CVE-2015-0254/a +a href=http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0254; rel=nofollowCVE-2015-0254/a vulnerability (XXE and RCE via XSL extension in JSTL XML tags). /p Added: tomcat/site/trunk/docs/security-taglibs.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/security-taglibs.html?rev=1667437view=auto == --- tomcat/site/trunk/docs/security-taglibs.html (added) +++ tomcat/site/trunk/docs/security-taglibs.html Wed Mar 18 03:32:00 2015 @@ -0,0 +1,265 @@ +!DOCTYPE html SYSTEM about:legacy-compat +html lang=en +head +META http-equiv=Content-Type content=text/html; charset=UTF-8 +link href=stylesheets/tomcat.css rel=stylesheet type=text/css +titleApache Tomcat - Apache Taglibs vulnerabilities/title +meta name=author content=Apache Tomcat Project +/head +body +div id=wrapper +header +div id=header +div +div +div class=logo noPrint +a href=http://tomcat.apache.org/;img alt=Tomcat Home src=./images/tomcat.png/a +/div +div style=height: 1px;/div +div class=asfLogo noPrint +a href=http://www.apache.org/; target=_blankimg src=//www.apache.org/images/feather.png alt=The Apache Software Foundation style=width: 266px; height: 83px;/a +/div +h1 style=margin-top: 35px;Apache Tomcat/h1 +div style=clear: right;/div +div class=searchbox noPrint +form action=https://www.google.com/search; method=get +input value=tomcat.apache.org name=sitesearch type=hiddeninput placeholder=Search the Sitehellip; required=required size=25 name=q id=query type=searchbuttonSearch/button +/form +/div +div style=height: 1px;/div +div style=clear: left;/div +/div +/div +/div +/header +div id=middle +div +div id=mainLeft class=noprint +div +nav +div +h2Apache Tomcat/h2 +ul +li +a href=./index.htmlHome/a +/li +li +a href=./taglibs/Taglibs/a +/li +li +a href=./maven-plugin.htmlMaven Plugin/a +/li +/ul +/div +div +h2Download/h2 +ul +li +a href=./whichversion.htmlWhich version?/a +/li +li +a href=./download-80.cgiTomcat 8.0/a +/li +li +a href=./download-70.cgiTomcat 7.0/a +/li +li +a href=./download-60.cgiTomcat 6.0/a +/li +li +a href=./download-connectors.cgiTomcat Connectors/a +/li +li +a href=./download-native.cgiTomcat Native/a +/li +li +a href=http://archive.apache.org/dist/tomcat/;Archives/a +/li +/ul +/div +div +h2Documentation/h2 +ul +li +a href=./tomcat-8.0-doc/index.htmlTomcat 8.0/a +/li +li +a href=./tomcat-7.0-doc/index.htmlTomcat 7.0/a +/li +li +a href=./tomcat-6.0-doc/index.htmlTomcat 6.0/a +/li +li +a href=./connectors-doc/Tomcat Connectors/a +/li +li +a href=./native-doc/Tomcat Native/a +/li +li +a href=http://wiki.apache.org/tomcat/FrontPage;Wiki/a +/li +li +a href=./migration.htmlMigration Guide/a +/li +/ul +/div +div +h2Problems?/h2 +ul +li +a href=./security.htmlSecurity Reports/a +/li +li +a href=./findhelp.htmlFind help/a +/li +li +a href=http://wiki.apache.org/tomcat/FAQ;FAQ/a +/li +li +a href=./lists.htmlMailing Lists/a +/li +li +a href=./bugreport.htmlBug Database/a +/li +li +a href=./irc.htmlIRC/a +/li +/ul +/div +div +h2Get Involved/h2 +ul +li +a href=./getinvolved.htmlOverview/a +/li +li +a href=./svn.htmlSVN Repositories/a +/li +li +a href=./ci.htmlBuildbot/a +/li +li +a href=https://reviews.apache.org/groups/tomcat/;Reviewboard/a +/li +li +a href=./tools.htmlTools/a +/li +/ul +/div +div +h2Media/h2 +ul +li +a href=http://blogs.apache.org/tomcat/;Blog/a +/li +li +a href=http://twitter.com/theapachetomcat;Twitter/a +/li +/ul +/div +div +h2Misc/h2 +ul +li +a href=./whoweare.htmlWho We Are/a +/li +li +a href=./heritage.htmlHeritage/a +/li +li +a href=http://www.apache.org;Apache Home/a +/li +li +a href=./resources.htmlResources/a +/li +li +a href=./contact.htmlContact/a +/li +li +a href=./legal.htmlLegal/a +/li +li +a href=http://www.apache.org/foundation/sponsorship.html;Sponsorship/a +/li +li +a href=http://www.apache.org/foundation/thanks.html;Thanks/a +/li +/ul +/div +/nav +/div +/div +div id
svn commit: r1667455 - in /tomcat/site/trunk: docs/ xdocs/ xdocs/stylesheets/
Author: jboynes Date: Wed Mar 18 05:07:57 2015 New Revision: 1667455 URL: http://svn.apache.org/r1667455 Log: Integrate Taglibs with main site Added: tomcat/site/trunk/docs/taglibs.html tomcat/site/trunk/xdocs/taglibs.xml (with props) Modified: tomcat/site/trunk/docs/bugreport.html tomcat/site/trunk/docs/ci.html tomcat/site/trunk/docs/contact.html tomcat/site/trunk/docs/download-60.html tomcat/site/trunk/docs/download-70.html tomcat/site/trunk/docs/download-80.html tomcat/site/trunk/docs/download-connectors.html tomcat/site/trunk/docs/download-native.html tomcat/site/trunk/docs/download-taglibs.html tomcat/site/trunk/docs/findhelp.html tomcat/site/trunk/docs/getinvolved.html tomcat/site/trunk/docs/heritage.html tomcat/site/trunk/docs/index.html tomcat/site/trunk/docs/irc.html tomcat/site/trunk/docs/legal.html tomcat/site/trunk/docs/lists.html tomcat/site/trunk/docs/maven-plugin.html tomcat/site/trunk/docs/migration-6.html tomcat/site/trunk/docs/migration-7.html tomcat/site/trunk/docs/migration-8.html tomcat/site/trunk/docs/migration.html tomcat/site/trunk/docs/oldnews-2010.html tomcat/site/trunk/docs/oldnews-2011.html tomcat/site/trunk/docs/oldnews-2012.html tomcat/site/trunk/docs/oldnews-2013.html tomcat/site/trunk/docs/oldnews-2014.html tomcat/site/trunk/docs/oldnews.html tomcat/site/trunk/docs/presentations.html tomcat/site/trunk/docs/resources.html tomcat/site/trunk/docs/security-3.html tomcat/site/trunk/docs/security-4.html tomcat/site/trunk/docs/security-5.html tomcat/site/trunk/docs/security-6.html tomcat/site/trunk/docs/security-7.html tomcat/site/trunk/docs/security-8.html tomcat/site/trunk/docs/security-impact.html tomcat/site/trunk/docs/security-jk.html tomcat/site/trunk/docs/security-native.html tomcat/site/trunk/docs/security-taglibs.html tomcat/site/trunk/docs/security.html tomcat/site/trunk/docs/svn.html tomcat/site/trunk/docs/tomcat-55-eol.html tomcat/site/trunk/docs/tools.html tomcat/site/trunk/docs/whichversion.html tomcat/site/trunk/docs/whoweare.html tomcat/site/trunk/xdocs/index.xml tomcat/site/trunk/xdocs/stylesheets/project.xml Modified: tomcat/site/trunk/docs/bugreport.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/bugreport.html?rev=1667455r1=1667454r2=1667455view=diff == --- tomcat/site/trunk/docs/bugreport.html (original) +++ tomcat/site/trunk/docs/bugreport.html Wed Mar 18 05:07:57 2015 @@ -44,7 +44,7 @@ a href=./index.htmlHome/a /li li -a href=./taglibs/Taglibs/a +a href=./taglibs.htmlTaglibs/a /li li a href=./maven-plugin.htmlMaven Plugin/a @@ -73,6 +73,9 @@ a href=./download-native.cgiTomcat Native/a /li li +a href=./download-taglibs.cgiTaglibs/a +/li +li a href=http://archive.apache.org/dist/tomcat/;Archives/a /li /ul Modified: tomcat/site/trunk/docs/ci.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/ci.html?rev=1667455r1=1667454r2=1667455view=diff == --- tomcat/site/trunk/docs/ci.html (original) +++ tomcat/site/trunk/docs/ci.html Wed Mar 18 05:07:57 2015 @@ -43,7 +43,7 @@ a href=./index.htmlHome/a /li li -a href=./taglibs/Taglibs/a +a href=./taglibs.htmlTaglibs/a /li li a href=./maven-plugin.htmlMaven Plugin/a @@ -72,6 +72,9 @@ a href=./download-native.cgiTomcat Native/a /li li +a href=./download-taglibs.cgiTaglibs/a +/li +li a href=http://archive.apache.org/dist/tomcat/;Archives/a /li /ul Modified: tomcat/site/trunk/docs/contact.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/contact.html?rev=1667455r1=1667454r2=1667455view=diff == --- tomcat/site/trunk/docs/contact.html (original) +++ tomcat/site/trunk/docs/contact.html Wed Mar 18 05:07:57 2015 @@ -43,7 +43,7 @@ a href=./index.htmlHome/a /li li -a href=./taglibs/Taglibs/a +a href=./taglibs.htmlTaglibs/a /li li a href=./maven-plugin.htmlMaven Plugin/a @@ -72,6 +72,9 @@ a href=./download-native.cgiTomcat Native/a /li li +a href=./download-taglibs.cgiTaglibs/a +/li +li a href=http://archive.apache.org/dist/tomcat/;Archives/a /li /ul Modified: tomcat/site/trunk/docs/download-60.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/download-60.html?rev=1667455r1=1667454r2=1667455view=diff == --- tomcat/site/trunk/docs/download-60.html (original) +++ tomcat/site/trunk/docs/download-60.html Wed Mar 18 05:07:57 2015 @@ -43,7 +43,7 @@ a href=./index.htmlHome/a /li li -a href=./taglibs/Taglibs/a +a href=./taglibs.htmlTaglibs/a /li li a href=./maven-plugin.htmlMaven Plugin/a @@ -72,6 +72,9 @@ a href=./download-native.cgiTomcat Native
svn commit: r8313 - /dev/tomcat/taglibs/taglibs-standard-1.2.5/ /release/tomcat/taglibs/taglibs-standard-1.2.5/
Author: jboynes Date: Wed Mar 18 02:26:25 2015 New Revision: 8313 Log: Release Apache Standard Taglib 1.2.5 Added: release/tomcat/taglibs/taglibs-standard-1.2.5/ - copied from r8312, dev/tomcat/taglibs/taglibs-standard-1.2.5/ Removed: dev/tomcat/taglibs/taglibs-standard-1.2.5/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1667436 - in /tomcat/site/trunk: docs/index.html xdocs/index.xml
Author: jboynes Date: Wed Mar 18 03:06:46 2015 New Revision: 1667436 URL: http://svn.apache.org/r1667436 Log: Update news item to refer to cve.mitre.org Modified: tomcat/site/trunk/docs/index.html tomcat/site/trunk/xdocs/index.xml Modified: tomcat/site/trunk/docs/index.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/index.html?rev=1667436r1=1667435r2=1667436view=diff == --- tomcat/site/trunk/docs/index.html (original) +++ tomcat/site/trunk/docs/index.html Wed Mar 18 03:06:46 2015 @@ -238,7 +238,7 @@ of the JSTL 1.2 specification. p Version 1.2.3 is a security and bug fix release. It fixes a few bugs found in Standard Taglib 1.2.1 and provides protection against -a href=http://mail-archives.apache.org/mod_mbox/www-announce/201502.mbox/%3C82207A16-6348-4DEE-877E-F7B87292576A%40apache.org%3E;CVE-2015-0254/a +a href=https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0254;CVE-2015-0254/a vulnerability (XXE and RCE via XSL extension in JSTL XML tags). /p Modified: tomcat/site/trunk/xdocs/index.xml URL: http://svn.apache.org/viewvc/tomcat/site/trunk/xdocs/index.xml?rev=1667436r1=1667435r2=1667436view=diff == --- tomcat/site/trunk/xdocs/index.xml (original) +++ tomcat/site/trunk/xdocs/index.xml Wed Mar 18 03:06:46 2015 @@ -40,13 +40,10 @@ project logo are trademarks of the Apach section name=Apache Standard Taglib 1.2.3 Released rtext=2015-02-20 !-- FIXME: - 1. CVE link goes to accounce@a.o mail archive. - It cannot go to cve.mitre.org, as they have not published this CVE number. - It cannot go to announce@tomcat.a.o archive, as announcement is not there. Stuck in moderation? - There is no taglibs page at http://tomcat.apache.org/security.html + 1. There is no taglibs page at http://tomcat.apache.org/security.html 2. Changelog link goes to SVN repository. Is the CHANGES file published on the site? - Maybe upload it to the download ares? + Maybe upload it to the download area? -- p The Apache Tomcat Project is proud to announce the release of version 1.2.3 of @@ -56,7 +53,7 @@ of the JSTL 1.2 specification. p Version 1.2.3 is a security and bug fix release. It fixes a few bugs found in Standard Taglib 1.2.1 and provides protection against -a href=http://mail-archives.apache.org/mod_mbox/www-announce/201502.mbox/%3C82207A16-6348-4DEE-877E-F7B87292576A%40apache.org%3E;CVE-2015-0254/a +a href=https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0254;CVE-2015-0254/a vulnerability (XXE and RCE via XSL extension in JSTL XML tags). /p p - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1667176 - in /tomcat/sandbox/niofs: src/META-INF/ src/META-INF/services/ src/META-INF/services/java.nio.file.spi.FileSystemProvider src/niofs/ArchiveFileSystemProvider.java tst/niofs/Clas
Author: jboynes Date: Tue Mar 17 05:46:48 2015 New Revision: 1667176 URL: http://svn.apache.org/r1667176 Log: NIOFS URI support and tests with URLClassLoader Added: tomcat/sandbox/niofs/src/META-INF/ tomcat/sandbox/niofs/src/META-INF/services/ tomcat/sandbox/niofs/src/META-INF/services/java.nio.file.spi.FileSystemProvider tomcat/sandbox/niofs/tst/niofs/ClassLoaderTest.java (with props) Modified: tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java Added: tomcat/sandbox/niofs/src/META-INF/services/java.nio.file.spi.FileSystemProvider URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/src/META-INF/services/java.nio.file.spi.FileSystemProvider?rev=1667176view=auto == --- tomcat/sandbox/niofs/src/META-INF/services/java.nio.file.spi.FileSystemProvider (added) +++ tomcat/sandbox/niofs/src/META-INF/services/java.nio.file.spi.FileSystemProvider Tue Mar 17 05:46:48 2015 @@ -0,0 +1,17 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the License); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +niofs.ArchiveFileSystemProvider Modified: tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java?rev=1667176r1=1667175r2=1667176view=diff == --- tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java (original) +++ tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java Tue Mar 17 05:46:48 2015 @@ -21,6 +21,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.nio.channels.NonWritableChannelException; import java.nio.channels.SeekableByteChannel; @@ -29,6 +30,7 @@ import java.nio.file.CopyOption; import java.nio.file.DirectoryStream; import java.nio.file.FileStore; import java.nio.file.FileSystem; +import java.nio.file.FileSystemNotFoundException; import java.nio.file.Files; import java.nio.file.LinkOption; import java.nio.file.NoSuchFileException; @@ -36,6 +38,7 @@ import java.nio.file.NotDirectoryExcepti import java.nio.file.OpenOption; import java.nio.file.Path; import java.nio.file.PathMatcher; +import java.nio.file.Paths; import java.nio.file.ProviderMismatchException; import java.nio.file.ReadOnlyFileSystemException; import java.nio.file.StandardOpenOption; @@ -55,37 +58,61 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import static java.net.URLEncoder.encode; +import static java.nio.charset.StandardCharsets.UTF_8; + /** * A provider for read-only filesystems based on an underlying archive file in ZIP format. */ public class ArchiveFileSystemProvider extends FileSystemProvider { +private static final String UTF8 = UTF_8.toString(); + +private final MapString, ArchiveFileSystem fileSystems = new ConcurrentHashMap(); @Override public String getScheme() { return archive; } -// TODO: We will need to support URIs in order to support converting paths to URLs. @Override -public FileSystem newFileSystem(URI uri, MapString, ? env) throws IOException { -throw new UnsupportedOperationException(); +public ArchiveFileSystem newFileSystem(URI uri, MapString, ? env) throws IOException { +String name = uri.getAuthority(); +ArchiveFileSystem fileSystem = fileSystems.get(name); +if (fileSystem == null) { +fileSystem = newFileSystem(Paths.get(URI.create(name)), env); +fileSystems.put(name, fileSystem); +} +return fileSystem; } @Override -public FileSystem getFileSystem(URI uri) { -throw new UnsupportedOperationException(); +public ArchiveFileSystem getFileSystem(URI uri) { +ArchiveFileSystem fileSystem = fileSystems.get(uri.getAuthority()); +if (fileSystem == null) { +throw new FileSystemNotFoundException(); +} +return fileSystem
svn commit: r8265 - in /dev/tomcat/taglibs: taglbs-standard-1.2.5/ taglibs-standard-1.2.5/
Author: jboynes Date: Thu Mar 12 14:02:20 2015 New Revision: 8265 Log: Fix typo in path Added: dev/tomcat/taglibs/taglibs-standard-1.2.5/ - copied from r8242, dev/tomcat/taglibs/taglbs-standard-1.2.5/ Removed: dev/tomcat/taglibs/taglbs-standard-1.2.5/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1665595 - /tomcat/taglibs/standard/trunk/pom.xml
Author: jboynes Date: Tue Mar 10 16:09:12 2015 New Revision: 1665595 URL: http://svn.apache.org/r1665595 Log: Add RELEASING file to RAT exclusion list Modified: tomcat/taglibs/standard/trunk/pom.xml Modified: tomcat/taglibs/standard/trunk/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/pom.xml?rev=1665595r1=1665594r2=1665595view=diff == --- tomcat/taglibs/standard/trunk/pom.xml (original) +++ tomcat/taglibs/standard/trunk/pom.xml Tue Mar 10 16:09:12 2015 @@ -106,6 +106,7 @@ excludeDEPENDENCIES/exclude excludeREADME_bin.txt/exclude excludeREADME_src.txt/exclude +excludeRELEASING/exclude /excludes /configuration /plugin - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1665600 - /tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/
Author: jboynes Date: Tue Mar 10 16:10:58 2015 New Revision: 1665600 URL: http://svn.apache.org/r1665600 Log: [maven-release-plugin] copy for tag taglibs-standard-1.2.5 Added: tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/ - copied from r1665599, tomcat/taglibs/standard/trunk/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1665601 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Tue Mar 10 16:10:59 2015 New Revision: 1665601 URL: http://svn.apache.org/r1665601 Log: [maven-release-plugin] prepare for next development iteration Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1665601r1=1665600r2=1665601view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Tue Mar 10 16:10:59 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1665601r1=1665600r2=1665601view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Tue Mar 10 16:10:59 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1665601r1=1665600r2=1665601view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Tue Mar 10 16:10:59 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.5/version +version1.2.6-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1665578 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Tue Mar 10 15:33:52 2015 New Revision: 1665578 URL: http://svn.apache.org/r1665578 Log: [maven-release-plugin] prepare for next development iteration Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1665578r1=1665577r2=1665578view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Tue Mar 10 15:33:52 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1665578r1=1665577r2=1665578view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Tue Mar 10 15:33:52 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1665578r1=1665577r2=1665578view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Tue Mar 10 15:33:52 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.4/version +version1.2.5-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1665588 - in /tomcat/taglibs/standard/trunk: CHANGES.txt README_bin.txt README_src.txt RELEASING impl/src/main/java/org/apache/taglibs/standard/Version.java impl/src/test/java/org/apache/
Author: jboynes Date: Tue Mar 10 16:01:40 2015 New Revision: 1665588 URL: http://svn.apache.org/r1665588 Log: Update version numbers in project for 1.2.5 release Added: tomcat/taglibs/standard/trunk/RELEASING Modified: tomcat/taglibs/standard/trunk/CHANGES.txt tomcat/taglibs/standard/trunk/README_bin.txt tomcat/taglibs/standard/trunk/README_src.txt tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/Version.java tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/VersionTest.java Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1665588r1=1665587r2=1665588view=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Tue Mar 10 16:01:40 2015 @@ -1,4 +1,8 @@ -Changes in 1.2.4 release +Changes in 1.2.5 release +- Set version identifiers correctly, no other changes. + +Changes in 1.2.4 release (not released due to incorrect version numbers) + 57673 AccessControlException accessing org.apache.taglibs.standard.xml.accessExternalEntity 37466 Reverted changes that overrode HTTP method when importing local resources. Modified: tomcat/taglibs/standard/trunk/README_bin.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/README_bin.txt?rev=1665588r1=1665587r2=1665588view=diff == --- tomcat/taglibs/standard/trunk/README_bin.txt (original) +++ tomcat/taglibs/standard/trunk/README_bin.txt Tue Mar 10 16:01:40 2015 @@ -1,5 +1,5 @@ --- -Apache Standard Tag Library 1.2.3 -- BINARY DISTRIBUTION +Apache Standard Tag Library 1.2.5 -- BINARY DISTRIBUTION --- Thanks for downloading this release of the Standard tag library, an implementation of the JavaServer Pages(tm)(JSP) @@ -41,9 +41,9 @@ ADD DEPENDENCIES TO A WEB APPLICATION To use this distribution with your own web applications, add the following JAR files to the '/WEB-INF/lib' directory of your application: - - taglibs-standard-spec-1.2.3.jar - - taglibs-standard-impl-1.2.3.jar - - taglibs-standard-jstlel-1.2.3.jar + - taglibs-standard-spec-1.2.5.jar + - taglibs-standard-impl-1.2.5.jar + - taglibs-standard-jstlel-1.2.5.jar - xalan-2.7.1.jar - serializer-2.7.1.jar @@ -57,12 +57,12 @@ your pom.xml file: dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId - version1.2.3/version + version1.2.5/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId - version1.2.3/version + version1.2.5/version /dependency --- Modified: tomcat/taglibs/standard/trunk/README_src.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/README_src.txt?rev=1665588r1=1665587r2=1665588view=diff == --- tomcat/taglibs/standard/trunk/README_src.txt (original) +++ tomcat/taglibs/standard/trunk/README_src.txt Tue Mar 10 16:01:40 2015 @@ -1,5 +1,5 @@ --- -Apache Standard Tag Library 1.2.3 -- SOURCE DISTRIBUTION +Apache Standard Tag Library 1.2.5 -- SOURCE DISTRIBUTION --- Thanks for downloading the source code for the Apache Software Foundation's implementation of the JavaServer Pages(tm)(JSP) Standard Tag Library (JSTL) Added: tomcat/taglibs/standard/trunk/RELEASING URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/RELEASING?rev=1665588view=auto == --- tomcat/taglibs/standard/trunk/RELEASING (added) +++ tomcat/taglibs/standard/trunk/RELEASING Tue Mar 10 16:01:40 2015 @@ -0,0 +1,42 @@ +The project is configured to be released using the Maven Release Plugin. + +Some manual steps are required before performing a release build. + +* Update the version strings in README_bin.txt and README_src.tst +* Update the version number in the Version class +* Update the version number in the VersionTest class +Commit these changes. + +Push the Maven Artifacts to the Apache Staging Repository: +$ mvn release:prepare -Papache-release -DautoVersionSubmodules=true +$ mvn release:perform + +Don't forget to close the staging repository prior to the vote. + +Stage the Apache download repository at + https://dist.apache.org/repos/dist/dev/tomcat/taglibs +with the following files: +NOTICE +README_bin.txt +README_src.txt
svn commit: r8242 - /dev/tomcat/taglibs/taglbs-standard-1.2.5/
Author: jboynes Date: Tue Mar 10 16:18:00 2015 New Revision: 8242 Log: Stage Apache Standard Taglib 1.2.5 files for voting Added: dev/tomcat/taglibs/taglbs-standard-1.2.5/ dev/tomcat/taglibs/taglbs-standard-1.2.5/NOTICE dev/tomcat/taglibs/taglbs-standard-1.2.5/README_bin.txt dev/tomcat/taglibs/taglbs-standard-1.2.5/README_src.txt dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-1.2.5-source-release.zip (with props) dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-1.2.5-source-release.zip.asc dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-1.2.5-source-release.zip.md5 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-1.2.5-source-release.zip.sha1 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-compat-1.2.5.jar (with props) dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-compat-1.2.5.jar.asc dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-compat-1.2.5.jar.md5 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-compat-1.2.5.jar.sha1 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-impl-1.2.5.jar (with props) dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-impl-1.2.5.jar.asc dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-impl-1.2.5.jar.md5 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-impl-1.2.5.jar.sha1 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-jstlel-1.2.5.jar (with props) dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-jstlel-1.2.5.jar.asc dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-jstlel-1.2.5.jar.md5 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-jstlel-1.2.5.jar.sha1 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-spec-1.2.5.jar (with props) dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-spec-1.2.5.jar.asc dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-spec-1.2.5.jar.md5 dev/tomcat/taglibs/taglbs-standard-1.2.5/taglibs-standard-spec-1.2.5.jar.sha1 Added: dev/tomcat/taglibs/taglbs-standard-1.2.5/NOTICE == --- dev/tomcat/taglibs/taglbs-standard-1.2.5/NOTICE (added) +++ dev/tomcat/taglibs/taglbs-standard-1.2.5/NOTICE Tue Mar 10 16:18:00 2015 @@ -0,0 +1,5 @@ +Apache Standard Taglib +Copyright 2001-2015 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). Added: dev/tomcat/taglibs/taglbs-standard-1.2.5/README_bin.txt == --- dev/tomcat/taglibs/taglbs-standard-1.2.5/README_bin.txt (added) +++ dev/tomcat/taglibs/taglbs-standard-1.2.5/README_bin.txt Tue Mar 10 16:18:00 2015 @@ -0,0 +1,116 @@ +--- +Apache Standard Tag Library 1.2.5 -- BINARY DISTRIBUTION +--- +Thanks for downloading this release of the Standard tag library, +an implementation of the JavaServer Pages(tm)(JSP) +Standard Tag Library (JSTL). + +This code is licensed to you by the Apache Software Foundation and its +contributors under the terms of the Apache License V2.0; +please see the included NOTICE and LICENSE files for details. + +JSTL is an effort of the Java Community Process (JCP) and +comes out of the JSR-052 expert group. For more information on JSTL, +please go to http://jcp.org/en/jsr/detail?id=52 . + +--- +LIBRARY DEPENDENCIES + +This version of the Standard Tag Library has the following runtime +dependencies: + + 1. Dependencies provided by a JSP 2.1 container: + - Java 1.5 or later + - Servlet 2.5 or later + - JSP 2.1 or later + + 2. Additional dependencies + - The XML tag library requires Apache Xalan 2.7.1 or later + +--- +Apache Xalan 2.7.1 + +To address performance issues with XSLT processing, this version relies on +implementation specific functionality from Apache Xalan. The following +libraries should be included in the classpath for your application: + - xalan-2.7.1.jar + - serializer-2.7.1.jar + +--- +ADD DEPENDENCIES TO A WEB APPLICATION + +To use this distribution with your own web applications, add the following JAR +files to the '/WEB-INF/lib' directory of your application: + - taglibs-standard-spec-1.2.5.jar + - taglibs-standard-impl-1.2.5.jar + - taglibs-standard-jstlel-1.2.5.jar + - xalan-2.7.1.jar + - serializer-2.7.1.jar + +If you do not use JSTL 1.0 tags then the taglibs-standard-jstlel JAR may be +omitted. If you do not use the XML library, then the Apache Xalan dependencies +may also be omitted. + +If you build you application with Maven, add
svn commit: r1665599 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Tue Mar 10 16:10:55 2015 New Revision: 1665599 URL: http://svn.apache.org/r1665599 Log: [maven-release-plugin] prepare release taglibs-standard-1.2.5 Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1665599r1=1665598r2=1665599view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Tue Mar 10 16:10:55 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1665599r1=1665598r2=1665599view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Tue Mar 10 16:10:55 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.5/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1665599r1=1665598r2=1665599view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Tue Mar 10 16:10:55 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.5-SNAPSHOT/version +version1.2.5/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1665576 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Tue Mar 10 15:33:50 2015 New Revision: 1665576 URL: http://svn.apache.org/r1665576 Log: [maven-release-plugin] prepare release taglibs-standard-1.2.4 Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1665576r1=1665575r2=1665576view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Tue Mar 10 15:33:50 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1665576r1=1665575r2=1665576view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Tue Mar 10 15:33:50 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1665576r1=1665575r2=1665576view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Tue Mar 10 15:33:50 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.4-SNAPSHOT/version +version1.2.4/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1665577 - /tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/
Author: jboynes Date: Tue Mar 10 15:33:51 2015 New Revision: 1665577 URL: http://svn.apache.org/r1665577 Log: [maven-release-plugin] copy for tag taglibs-standard-1.2.4 Added: tomcat/taglibs/standard/tags/taglibs-standard-1.2.4/ - copied from r1665576, tomcat/taglibs/standard/trunk/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1664880 - in /tomcat/taglibs/standard/trunk: CHANGES.txt README_bin.txt
Author: jboynes Date: Sat Mar 7 15:52:25 2015 New Revision: 1664880 URL: http://svn.apache.org/r1664880 Log: Update doc and changelist for #57673 Modified: tomcat/taglibs/standard/trunk/CHANGES.txt tomcat/taglibs/standard/trunk/README_bin.txt Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1664880r1=1664879r2=1664880view=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Sat Mar 7 15:52:25 2015 @@ -1,4 +1,5 @@ Changes in 1.2.4 release +57673 AccessControlException accessing org.apache.taglibs.standard.xml.accessExternalEntity 37466 Reverted changes that overrode HTTP method when importing local resources. Changes in 1.2.3 release Modified: tomcat/taglibs/standard/trunk/README_bin.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/README_bin.txt?rev=1664880r1=1664879r2=1664880view=diff == --- tomcat/taglibs/standard/trunk/README_bin.txt (original) +++ tomcat/taglibs/standard/trunk/README_bin.txt Sat Mar 7 15:52:25 2015 @@ -92,11 +92,16 @@ The 1.2 version of the Standard Taglib h and should work in any compliant JSP 2.1 (or later) container. In version 1.2.3 and later, the XML libraries enable FEATURE_SECURE_PROCESSING -when parsing and transforming. A new system property +when parsing and transforming. The system property + org.apache.taglibs.standard.xml.accessExternalEntity + can be used to further restrict the protocols over which external entities can be resolved. When a SecurityManager is enabled this will, by default, allow -access to no protocols. +access to no protocols. Permission must be granted to the taglibs-standard-impl +library to read this property. + + permission java.util.PropertyPermission org.apache.taglibs.standard.xml.accessExternalEntity, read; --- COMMENTS AND QUESTIONS - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1664887 [2/2] - in /tomcat/sandbox/niofs: src/niofs/ArchiveFileSystemProvider.java tst/niofs/PerfTest.java urls.log
Added: tomcat/sandbox/niofs/urls.log URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/urls.log?rev=1664887view=auto == --- tomcat/sandbox/niofs/urls.log (added) +++ tomcat/sandbox/niofs/urls.log Sat Mar 7 16:29:25 2015 @@ -0,0 +1,2935 @@ +WEB-INF/lib/aspectjrt-1.8.4.jar META-INF/MANIFEST.MF +WEB-INF/lib/spring-jdbc-3.1.2.RELEASE.jar org/springframework/jdbc/core/ResultSetExtractor.class +WEB-INF/lib/spring-jdbc-3.1.2.RELEASE.jar org/springframework/jdbc/core/RowMapper.class +WEB-INF/lib/spring-web-3.1.2.RELEASE.jar org/springframework/web/method/support/HandlerMethodArgumentResolver.class +WEB-INF/lib/spring-social-web-1.0.2.RELEASE.jar org/springframework/social/connect/web/ConnectInterceptor.class +WEB-INF/lib/spring-social-web-1.0.2.RELEASE.jar org/springframework/social/connect/web/SignInAdapter.class +WEB-INF/lib/spring-webmvc-3.1.2.RELEASE.jar org/springframework/web/servlet/HandlerExceptionResolver.class +WEB-INF/lib/spring-webmvc-3.1.2.RELEASE.jar org/springframework/web/servlet/HandlerInterceptor.class +WEB-INF/lib/spring-security-oauth2-1.0.0.RC2.jar org/springframework/security/oauth2/provider/BaseClientDetails.class +WEB-INF/lib/spring-security-oauth2-1.0.0.RC2.jar org/springframework/security/oauth2/provider/ClientDetails.class +WEB-INF/lib/spring-security-oauth2-1.0.0.RC2.jar org/springframework/security/oauth2/provider/ClientDetailsService.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/convert/converter/Converter.class +WEB-INF/lib/aspectjrt-1.8.4.jar org/aspectj/runtime/internal/AroundClosure.class +WEB-INF/lib/spring-security-crypto-3.1.0.RELEASE.jar org/springframework/security/crypto/password/PasswordEncoder.class +WEB-INF/lib/spring-security-core-3.1.0.RELEASE.jar org/springframework/security/authentication/AuthenticationProvider.class +WEB-INF/lib/spring-beans-3.1.2.RELEASE.jar org/springframework/beans/factory/FactoryBean.class +WEB-INF/lib/spring-context-3.1.2.RELEASE.jar org/springframework/scheduling/annotation/AsyncConfigurer.class +WEB-INF/lib/spring-webmvc-3.1.2.RELEASE.jar org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.class +WEB-INF/lib/spring-webmvc-3.1.2.RELEASE.jar org/springframework/web/servlet/config/annotation/WebMvcConfigurer.class +WEB-INF/lib/validation-api-1.0.0.GA.jar javax/validation/ConstraintValidator.class +WEB-INF/lib/jackson-mapper-asl-1.9.9.jar org/codehaus/jackson/map/JsonDeserializer.class +WEB-INF/lib/spring-web-3.1.2.RELEASE.jar org/springframework/web/context/ContextLoaderListener.class +WEB-INF/lib/spring-web-3.1.2.RELEASE.jar org/springframework/web/context/ContextLoader.class +WEB-INF/lib/spring-context-3.1.2.RELEASE.jar org/springframework/context/ApplicationContextException.class +WEB-INF/lib/spring-beans-3.1.2.RELEASE.jar org/springframework/beans/FatalBeanException.class +WEB-INF/lib/spring-beans-3.1.2.RELEASE.jar org/springframework/beans/BeansException.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/NestedRuntimeException.class +WEB-INF/lib/spring-context-3.1.2.RELEASE.jar org/springframework/context/ConfigurableApplicationContext.class +WEB-INF/lib/spring-context-3.1.2.RELEASE.jar org/springframework/context/ApplicationContext.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/env/EnvironmentCapable.class +WEB-INF/lib/spring-beans-3.1.2.RELEASE.jar org/springframework/beans/factory/ListableBeanFactory.class +WEB-INF/lib/spring-beans-3.1.2.RELEASE.jar org/springframework/beans/factory/BeanFactory.class +WEB-INF/lib/spring-beans-3.1.2.RELEASE.jar org/springframework/beans/factory/HierarchicalBeanFactory.class +WEB-INF/lib/spring-context-3.1.2.RELEASE.jar org/springframework/context/MessageSource.class +WEB-INF/lib/spring-context-3.1.2.RELEASE.jar org/springframework/context/ApplicationEventPublisher.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/io/support/ResourcePatternResolver.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/io/ResourceLoader.class +WEB-INF/lib/spring-context-3.1.2.RELEASE.jar org/springframework/context/Lifecycle.class +WEB-INF/lib/spring-web-3.1.2.RELEASE.jar org/springframework/web/context/WebApplicationContext.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/io/Resource.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/io/InputStreamSource.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/io/ClassPathResource.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/io/AbstractFileResolvingResource.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/io/AbstractResource.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar org/springframework/core/NestedIOException.class +WEB-INF/lib/spring-core-3.1.2.RELEASE.jar
svn commit: r1664887 [1/2] - in /tomcat/sandbox/niofs: src/niofs/ArchiveFileSystemProvider.java tst/niofs/PerfTest.java urls.log
Author: jboynes Date: Sat Mar 7 16:29:25 2015 New Revision: 1664887 URL: http://svn.apache.org/r1664887 Log: Add perf test Added: tomcat/sandbox/niofs/tst/niofs/PerfTest.java (with props) tomcat/sandbox/niofs/urls.log Modified: tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java Modified: tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java?rev=1664887r1=1664886r2=1664887view=diff == --- tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java (original) +++ tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java Sat Mar 7 16:29:25 2015 @@ -281,10 +281,9 @@ public class ArchiveFileSystemProvider e continue; } DirectoryNode parentNode = directory.get(parent); -if (parentNode == null) { -throw new IllegalStateException(Missing directory entry + parent); +if (parentNode != null) { +parentNode.addChild(path); } -parentNode.addChild(path); } return directory; } Added: tomcat/sandbox/niofs/tst/niofs/PerfTest.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/tst/niofs/PerfTest.java?rev=1664887view=auto == --- tomcat/sandbox/niofs/tst/niofs/PerfTest.java (added) +++ tomcat/sandbox/niofs/tst/niofs/PerfTest.java Sat Mar 7 16:29:25 2015 @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package niofs; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.InputStream; +import java.nio.file.FileSystem; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.junit.Test; + +/** + * + */ +public class PerfTest { + +private final ArchiveFileSystemProvider provider = new ArchiveFileSystemProvider(); + +@Test +public void replay() throws Exception { +// Read all the paths in we are meant to open; +ListString paths; +try (BufferedReader reader = new BufferedReader(new FileReader(urls.log))) { +paths = reader.lines().collect(Collectors.toList()); +} + +long total = -System.nanoTime(); + +Path war = FileSystems.getDefault().getPath(greenhouse-1.0.0.BUILD-SNAPSHOT.war); +FileSystem fileSystem = provider.newFileSystem(war, Collections.emptyMap()); +System.out.println(initial index = + (total + System.nanoTime()) / 100); +Path root = fileSystem.getPath(/); + +long time = -System.nanoTime(); +MapString, FileSystem jars = new HashMap(); +for (String path : paths) { +String[] fields = path.split( ); +String jarName = fields[0]; +String resourceName = fields[1]; +FileSystem jar = jars.get(jarName); +if (jar == null) { +Path jarPath = fileSystem.getPath(/, jarName); +jar = provider.newFileSystem(jarPath, Collections.emptyMap()); +jars.put(jarName, jar); +} +InputStream is = Files.newInputStream(jar.getPath(/, resourceName)); +is.close(); +} +time += System.nanoTime(); +System.out.println(time including opens = + time / 100); + +time = -System.nanoTime(); +for (String path : paths) { +String[] fields = path.split( ); +String jarName = fields[0]; +String resourceName = fields[1]; +FileSystem jar = jars.get(jarName); +InputStream is = Files.newInputStream(jar.getPath(/, resourceName)); +is.close(); +} +time += System.nanoTime(); +System.out.println(time already opened = + time / 100); +total += System.nanoTime(); +System.out.println
svn commit: r1664878 - /tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java
Author: jboynes Date: Sat Mar 7 15:43:41 2015 New Revision: 1664878 URL: http://svn.apache.org/r1664878 Log: Fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=57673 If an AccessControlException is thrown reading the accessExternalEntity fall back to the default Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java?rev=1664878r1=1664877r2=1664878view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java Sat Mar 7 15:43:41 2015 @@ -19,6 +19,7 @@ package org.apache.taglibs.standard.util import java.io.FileNotFoundException; import java.io.InputStream; import java.io.Reader; +import java.security.AccessControlException; import java.security.AccessController; import java.security.PrivilegedAction; import java.security.PrivilegedActionException; @@ -113,12 +114,25 @@ public class XmlUtil { } private static final String SP_ALLOWED_PROTOCOLS = org.apache.taglibs.standard.xml.accessExternalEntity; -private static final String ALLOWED_PROTOCOLS = AccessController.doPrivileged(new PrivilegedActionString() { -public String run() { -String defaultProtocols = System.getSecurityManager() == null ? all : ; -return System.getProperty(SP_ALLOWED_PROTOCOLS, defaultProtocols); +private static final String ALLOWED_PROTOCOLS = initAllowedProtocols(); + +private static String initAllowedProtocols() { +if (System.getSecurityManager() == null) { +return System.getProperty(SP_ALLOWED_PROTOCOLS, all); +} else { +final String defaultProtocols = ; +try { +return AccessController.doPrivileged(new PrivilegedActionString() { +public String run() { +return System.getProperty(SP_ALLOWED_PROTOCOLS, defaultProtocols); +} +}); +} catch (AccessControlException e) { +// Fall back to the default i.e. none. +return defaultProtocols; +} } -}); +} static void checkProtocol(String allowedProtocols, String uri) { if (all.equalsIgnoreCase(allowedProtocols)) { @@ -130,7 +144,7 @@ public class XmlUtil { return; } } -throw new SecurityException(Access to external URI not allowed: + uri); +throw new AccessControlException(Access to external URI not allowed: + uri); } /** - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1664650 - in /tomcat/sandbox/niofs: ./ src/ src/niofs/ tst/ tst/data/ tst/niofs/
Author: jboynes Date: Fri Mar 6 15:13:33 2015 New Revision: 1664650 URL: http://svn.apache.org/r1664650 Log: Sample code for a NIO2 Filesystem that supports nested archives. Access using the Files API is supported (albeit crudely). Still need to figure out URIs, URLs, and a Path-based ClassLoader Added: tomcat/sandbox/niofs/ (with props) tomcat/sandbox/niofs/src/ tomcat/sandbox/niofs/src/niofs/ tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java (with props) tomcat/sandbox/niofs/tst/ tomcat/sandbox/niofs/tst/data/ tomcat/sandbox/niofs/tst/data/archive1.jar (with props) tomcat/sandbox/niofs/tst/data/file1.txt tomcat/sandbox/niofs/tst/data/file2.txt tomcat/sandbox/niofs/tst/data/nested.jar (with props) tomcat/sandbox/niofs/tst/niofs/ tomcat/sandbox/niofs/tst/niofs/SmokeTest.java (with props) tomcat/sandbox/niofs/tst/niofs/URITest.java (with props) Propchange: tomcat/sandbox/niofs/ -- --- svn:ignore (added) +++ svn:ignore Fri Mar 6 15:13:33 2015 @@ -0,0 +1,3 @@ +.idea +*.iml +out Added: tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java?rev=1664650view=auto == --- tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java (added) +++ tomcat/sandbox/niofs/src/niofs/ArchiveFileSystemProvider.java Fri Mar 6 15:13:33 2015 @@ -0,0 +1,641 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package niofs; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.nio.ByteBuffer; +import java.nio.channels.NonWritableChannelException; +import java.nio.channels.SeekableByteChannel; +import java.nio.file.AccessMode; +import java.nio.file.CopyOption; +import java.nio.file.DirectoryStream; +import java.nio.file.FileStore; +import java.nio.file.FileSystem; +import java.nio.file.Files; +import java.nio.file.LinkOption; +import java.nio.file.NoSuchFileException; +import java.nio.file.NotDirectoryException; +import java.nio.file.OpenOption; +import java.nio.file.Path; +import java.nio.file.PathMatcher; +import java.nio.file.ProviderMismatchException; +import java.nio.file.ReadOnlyFileSystemException; +import java.nio.file.StandardOpenOption; +import java.nio.file.WatchEvent; +import java.nio.file.WatchKey; +import java.nio.file.WatchService; +import java.nio.file.attribute.BasicFileAttributes; +import java.nio.file.attribute.FileAttribute; +import java.nio.file.attribute.FileAttributeView; +import java.nio.file.attribute.FileTime; +import java.nio.file.attribute.UserPrincipalLookupService; +import java.nio.file.spi.FileSystemProvider; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +/** + * A provider for read-only filesystems based on an underlying archive file in ZIP format. + */ +public class ArchiveFileSystemProvider extends FileSystemProvider { + +@Override +public String getScheme() { +return archive; +} + +// TODO: We will need to support URIs in order to support converting paths to URLs. +@Override +public FileSystem newFileSystem(URI uri, MapString, ? env) throws IOException { +throw new UnsupportedOperationException(); +} + +@Override +public FileSystem getFileSystem(URI uri) { +throw new UnsupportedOperationException(); +} + +@Override +public Path getPath(URI uri) { +throw new UnsupportedOperationException(); +} + +@Override +public FileSystem newFileSystem(Path path, MapString, ? env) throws IOException { +return new ArchiveFileSystem(path, env); +} + +@Override +public SeekableByteChannel newByteChannel(Path path, Set? extends OpenOption options, FileAttribute?... attrs) throws IOException
svn commit: r1663321 - /tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java
Author: jboynes Date: Mon Mar 2 14:50:34 2015 New Revision: 1663321 URL: http://svn.apache.org/r1663321 Log: Revert change the attempted to fix https://bz.apache.org/bugzilla/show_bug.cgi?id=37466 The Servlet container should return content for a HEAD request and so there is no need to coerce the HTTP method to GET to try an fool it into doing so. Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java?rev=1663321r1=1663320r2=1663321view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java Mon Mar 2 14:50:34 2015 @@ -37,7 +37,6 @@ import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; import javax.servlet.jsp.JspException; @@ -285,24 +284,21 @@ public abstract class ImportSupport exte } // from this context, get a dispatcher -RequestDispatcher rd = -c.getRequestDispatcher(stripSession(targetUrl)); +RequestDispatcher rd = c.getRequestDispatcher(stripSession(targetUrl)); if (rd == null) { throw new JspTagException(stripSession(targetUrl)); } -// include the resource, using our custom wrapper +// Wrap the response so we capture the capture the output. +// This relies on the underlying container to return content even if this is a HEAD +// request. Some containers (e.g. Tomcat versions without the fix for +// https://bz.apache.org/bugzilla/show_bug.cgi?id=57601 ) may not do that. ImportResponseWrapper irw = -new ImportResponseWrapper( -(HttpServletResponse) pageContext.getResponse()); +new ImportResponseWrapper((HttpServletResponse) pageContext.getResponse()); -ImportRequestWrapper wrappedRequest = -new ImportRequestWrapper( -(HttpServletRequest) pageContext.getRequest()); - -// spec mandates specific error handling form include() +// spec mandates specific error handling from include() try { -rd.include(wrappedRequest, irw); +rd.include(pageContext.getRequest(), irw); } catch (IOException ex) { throw new JspException(ex); } catch (RuntimeException ex) { @@ -387,22 +383,6 @@ public abstract class ImportSupport exte } /** - * Wraps requests to allow us to enforce the method to be GET - */ -private class ImportRequestWrapper extends HttpServletRequestWrapper { - -public ImportRequestWrapper(HttpServletRequest request) { -super(request); -} - -@Override -public String getMethod() { -return GET; -} - -} - -/** * Wraps responses to allow us to retrieve results as Strings. */ private class ImportResponseWrapper extends HttpServletResponseWrapper { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1663323 - /tomcat/taglibs/standard/trunk/CHANGES.txt
Author: jboynes Date: Mon Mar 2 14:58:23 2015 New Revision: 1663323 URL: http://svn.apache.org/r1663323 Log: Update changelog for BZ# 37466 Modified: tomcat/taglibs/standard/trunk/CHANGES.txt Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1663323r1=1663322r2=1663323view=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Mon Mar 2 14:58:23 2015 @@ -1,3 +1,6 @@ +Changes in 1.2.4 release +37466 Reverted changes that overrode HTTP method when importing local resources. + Changes in 1.2.3 release 57560 Check protocol when resolving on older JREs - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1663366 - in /tomcat/sandbox/functional: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/jsp/ src/main/java/org/apache/jsp/functiona
Author: jboynes Date: Mon Mar 2 17:15:46 2015 New Revision: 1663366 URL: http://svn.apache.org/r1663366 Log: Strawman for using Java 8 functional interfaces in JSPs Added: tomcat/sandbox/functional/ (with props) tomcat/sandbox/functional/pom.xml (with props) tomcat/sandbox/functional/src/ tomcat/sandbox/functional/src/main/ tomcat/sandbox/functional/src/main/java/ tomcat/sandbox/functional/src/main/java/org/ tomcat/sandbox/functional/src/main/java/org/apache/ tomcat/sandbox/functional/src/main/java/org/apache/jsp/ tomcat/sandbox/functional/src/main/java/org/apache/jsp/functional/ tomcat/sandbox/functional/src/main/java/org/apache/jsp/functional/AbortException.java (with props) tomcat/sandbox/functional/src/main/java/org/apache/jsp/functional/Context.java (with props) tomcat/sandbox/functional/src/main/java/org/apache/jsp/functional/Fragment.java (with props) tomcat/sandbox/functional/src/main/java/org/apache/jsp/functional/Page.java (with props) tomcat/sandbox/functional/src/main/java/org/apache/jsp/functional/TagLibrary.java (with props) tomcat/sandbox/functional/src/test/ tomcat/sandbox/functional/src/test/java/ tomcat/sandbox/functional/src/test/java/samples/ tomcat/sandbox/functional/src/test/java/samples/basic/ tomcat/sandbox/functional/src/test/java/samples/basic/BasicTagLibrary.java (with props) tomcat/sandbox/functional/src/test/java/samples/basic/CoreTagLibrary.java (with props) tomcat/sandbox/functional/src/test/java/samples/jsp/ tomcat/sandbox/functional/src/test/java/samples/jsp/ContextImpl.java (with props) tomcat/sandbox/functional/src/test/java/samples/jsp/PageImpl.java (with props) tomcat/sandbox/functional/src/test/java/samples/servlet/ tomcat/sandbox/functional/src/test/java/samples/servlet/FragmentStream.java (with props) tomcat/sandbox/functional/src/test/java/samples/servlet/MultipleFragmentsAcceptContext.java (with props) tomcat/sandbox/functional/src/test/java/samples/servlet/PageConsumesFragment.java (with props) tomcat/sandbox/functional/src/test/java/samples/servlet/SingleFragmentAcceptsContext.java (with props) Propchange: tomcat/sandbox/functional/ -- --- svn:ignore (added) +++ svn:ignore Mon Mar 2 17:15:46 2015 @@ -0,0 +1,3 @@ +.idea +*.iml +target Added: tomcat/sandbox/functional/pom.xml URL: http://svn.apache.org/viewvc/tomcat/sandbox/functional/pom.xml?rev=1663366view=auto == --- tomcat/sandbox/functional/pom.xml (added) +++ tomcat/sandbox/functional/pom.xml Mon Mar 2 17:15:46 2015 @@ -0,0 +1,70 @@ +?xml version=1.0? +!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the License); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an AS IS BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-- +project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd; + modelVersion4.0.0/modelVersion + parent +groupIdorg.apache.taglibs/groupId +artifactIdtaglibs-parent/artifactId +version3/version + /parent + + packagingpom/packaging + + artifactIdtaglibs-functional/artifactId + version0.1-SNAPSHOT/version + nameApache Functional Taglib/name + + inceptionYear2001/inceptionYear + description +An experimental implementation of functional tags. + /description + + urlhttp://tomcat.apache.org/taglibs/url + + scm + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/sandbox/functional/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/sandbox/functional/developerConnection +urlhttp://svn.apache.org/viewvc/tomcat/taglibs/sandbox/functional/url + /scm + + build +plugins + plugin +groupIdorg.apache.maven.plugins/groupId +artifactIdmaven-compiler-plugin/artifactId +version3.2/version +configuration + source1.8/source + target1.8/target +/configuration + /plugin +/plugins + /build + dependencies +dependency + groupIdorg.apache.tomcat/groupId
svn commit: r1662988 - in /tomcat/trunk: java/org/apache/jasper/servlet/TldScanner.java test/org/apache/jasper/servlet/TestTldScanner.java
Author: jboynes Date: Sat Feb 28 18:59:14 2015 New Revision: 1662988 URL: http://svn.apache.org/r1662988 Log: Add repro for #57647 Modified: tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Modified: tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java?rev=1662988r1=1662987r2=1662988view=diff == --- tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java (original) +++ tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java Sat Feb 28 18:59:14 2015 @@ -277,7 +277,7 @@ public class TldScanner { } } -private class TldScannerCallback implements JarScannerCallback { +class TldScannerCallback implements JarScannerCallback { private boolean tldFound = false; private boolean jarFound = false; @@ -381,7 +381,7 @@ public class TldScanner { } -private boolean scanFoundNoTLDs() { +boolean scanFoundNoTLDs() { return jarFound !tldFound; } } Modified: tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java?rev=1662988r1=1662987r2=1662988view=diff == --- tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java (original) +++ tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Sat Feb 28 18:59:14 2015 @@ -17,11 +17,15 @@ package org.apache.jasper.servlet; import java.io.File; +import java.lang.reflect.Constructor; +import java.net.JarURLConnection; +import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; import org.apache.catalina.Context; @@ -29,6 +33,7 @@ import org.apache.catalina.startup.Tomca import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.scan.StandardJarScanner; +import org.easymock.EasyMock; public class TestTldScanner extends TomcatBaseTest { @@ -86,4 +91,30 @@ public class TestTldScanner extends Tomc Assert.assertTrue(result, result.indexOf(p + expected + /p) 0); } +@Ignore(Illustrates Bug 57647) +@Test +public void testBug57647() throws Exception { +TldScanner scanner = EasyMock.createMock(TldScanner.class); +ConstructorTldScanner.TldScannerCallback constructor = + TldScanner.TldScannerCallback.class.getDeclaredConstructor(TldScanner.class); +constructor.setAccessible(true); +TldScanner.TldScannerCallback callback = constructor.newInstance((TldScanner) scanner); + +File webappDir = new File(webapps/examples); +Assert.assertFalse(callback.scanFoundNoTLDs()); +scan(callback, webappDir, WEB-INF/lib/taglibs-standard-spec-1.2.3.jar); +Assert.assertTrue(callback.scanFoundNoTLDs()); +scan(callback, webappDir, WEB-INF/lib/taglibs-standard-impl-1.2.3.jar); +Assert.assertTrue(callback.scanFoundNoTLDs()); +} + +private static void scan(TldScanner.TldScannerCallback callback, File webapp, String path) +throws Exception { +String fullPath = new File(webapp, path).toURI().toString(); +URL jarUrl = new URL(jar: + fullPath + !/); +JarURLConnection connection = (JarURLConnection) jarUrl.openConnection(); +callback.scan(connection, path, true); +} + } + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1662989 - in /tomcat/trunk: java/org/apache/jasper/servlet/TldScanner.java test/org/apache/jasper/servlet/TestTldScanner.java
Author: jboynes Date: Sat Feb 28 18:59:16 2015 New Revision: 1662989 URL: http://svn.apache.org/r1662989 Log: Log warning if any jar scan does not find a TLD Modified: tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Modified: tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java?rev=1662989r1=1662988r2=1662989view=diff == --- tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java (original) +++ tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java Sat Feb 28 18:59:16 2015 @@ -278,17 +278,13 @@ public class TldScanner { } class TldScannerCallback implements JarScannerCallback { -private boolean tldFound = false; -private boolean jarFound = false; +private boolean foundJarWithoutTld = false; @Override public void scan(JarURLConnection urlConn, String webappPath, boolean isWebapp) throws IOException { -if (!jarFound) { -jarFound = true; -} boolean found = false; -URL jarURL = null; +URL jarURL; try (Jar jar = JarFactory.newInstance(urlConn.getURL())) { jarURL = jar.getJarFileURL(); jar.nextEntry(); @@ -309,9 +305,8 @@ public class TldScanner { } } } -if (found) { -tldFound = true; -} else { +if (!found) { +foundJarWithoutTld = true; if (log.isDebugEnabled()) { log.debug(Localizer.getMessage(jsp.tldCache.noTldInJar, jarURL.toString())); @@ -322,9 +317,6 @@ public class TldScanner { @Override public void scan(File file, final String webappPath, boolean isWebapp) throws IOException { -if (!jarFound) { -jarFound = true; -} File metaInf = new File(file, META-INF); if (!metaInf.isDirectory()) { return; @@ -356,7 +348,6 @@ public class TldScanner { URL url = file.toUri().toURL(); TldResourcePath path = new TldResourcePath(url, resourcePath); parseTld(path); -tldFound = true; } catch (SAXException e) { throw new IOException(e); } @@ -382,7 +373,7 @@ public class TldScanner { boolean scanFoundNoTLDs() { -return jarFound !tldFound; +return foundJarWithoutTld; } } } Modified: tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java?rev=1662989r1=1662988r2=1662989view=diff == --- tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java (original) +++ tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Sat Feb 28 18:59:16 2015 @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import org.apache.catalina.Context; @@ -91,14 +90,13 @@ public class TestTldScanner extends Tomc Assert.assertTrue(result, result.indexOf(p + expected + /p) 0); } -@Ignore(Illustrates Bug 57647) @Test public void testBug57647() throws Exception { TldScanner scanner = EasyMock.createMock(TldScanner.class); ConstructorTldScanner.TldScannerCallback constructor = TldScanner.TldScannerCallback.class.getDeclaredConstructor(TldScanner.class); constructor.setAccessible(true); -TldScanner.TldScannerCallback callback = constructor.newInstance((TldScanner) scanner); +TldScanner.TldScannerCallback callback = constructor.newInstance(scanner); File webappDir = new File(webapps/examples); Assert.assertFalse(callback.scanFoundNoTLDs()); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1662995 - /tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
Author: jboynes Date: Sat Feb 28 19:43:05 2015 New Revision: 1662995 URL: http://svn.apache.org/r1662995 Log: Changelog entry for #57647 Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml 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=1662995r1=1662994r2=1662995view=diff == --- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Sat Feb 28 19:43:05 2015 @@ -109,6 +109,11 @@ ensuring Jars were closed after use, that broke recompilation of modified JSPs that depended on a tag file packaged in a Jar. (markt) /fix + fix +bug57647/bug: Ensure INFO message is logged when scanning jars for +TLDs if the scan does not find a TLD in any jar. Previously a message +would only be logged if a TLD was not found in all scanned jars. (jboynes) + /fix /changelog /subsection subsection name=Web applications - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1662991 - in /tomcat/tc8.0.x/trunk: ./ java/org/apache/jasper/servlet/TldScanner.java test/org/apache/jasper/servlet/TestTldScanner.java
Author: jboynes Date: Sat Feb 28 19:34:09 2015 New Revision: 1662991 URL: http://svn.apache.org/r1662991 Log: Backport fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=57647 Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/jasper/servlet/TldScanner.java tomcat/tc8.0.x/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Feb 28 19:34:09 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,168,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 +/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,168,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648
svn commit: r1662747 - in /tomcat/tc8.0.x/trunk: ./ webapps/examples/WEB-INF/lib/jstl.jar webapps/examples/WEB-INF/lib/standard.jar webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar webapps
Author: jboynes Date: Fri Feb 27 16:50:07 2015 New Revision: 1662747 URL: http://svn.apache.org/r1662747 Log: Backport r1662736 to fix #57644 Update examples to use Apache Taglibs 1.2.3 Added: tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar - copied unchanged from r1662736, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar - copied unchanged from r1662736, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Removed: tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/jstl.jar tomcat/tc8.0.x/trunk/webapps/examples/WEB-INF/lib/standard.jar Modified: tomcat/tc8.0.x/trunk/ (props changed) Propchange: tomcat/tc8.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Feb 27 16:50:07 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,168,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 +/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
svn commit: r1662753 - /tomcat/tc6.0.x/trunk/STATUS.txt
Author: jboynes Date: Fri Feb 27 17:12:08 2015 New Revision: 1662753 URL: http://svn.apache.org/r1662753 Log: Proposal to backport r1662736 Modified: tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1662753r1=1662752r2=1662753view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Feb 27 17:12:08 2015 @@ -28,7 +28,9 @@ None PATCHES PROPOSED TO BACKPORT: [ New proposals should be added at the end of the list ] -None + 1) http://svn.apache.org/r1662736 + Update examples to use Apache Standard Taglibs 1.2.3 + +1: jboynes PATCHES/ISSUES THAT ARE STALLED: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1662736 - in /tomcat/trunk/webapps/examples/WEB-INF/lib: jstl.jar standard.jar taglibs-standard-impl-1.2.3.jar taglibs-standard-spec-1.2.3.jar
Author: jboynes Date: Fri Feb 27 16:26:21 2015 New Revision: 1662736 URL: http://svn.apache.org/r1662736 Log: Replace old taglibs library with Apache Standard Taglib 1.2.3 Added: tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Removed: tomcat/trunk/webapps/examples/WEB-INF/lib/jstl.jar tomcat/trunk/webapps/examples/WEB-INF/lib/standard.jar Added: tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar?rev=1662736view=auto == Binary files tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar (added) and tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar Fri Feb 27 16:26:21 2015 differ Added: tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar?rev=1662736view=auto == Binary files tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar (added) and tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Fri Feb 27 16:26:21 2015 differ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1662749 - in /tomcat/tc7.0.x/trunk: ./ conf/ webapps/examples/WEB-INF/lib/
Author: jboynes Date: Fri Feb 27 17:02:52 2015 New Revision: 1662749 URL: http://svn.apache.org/r1662749 Log: Backport r1662736 to fix #57644 Update examples to use Apache Taglibs 1.2.3 Exclude taglibs-standard-spec API jar from TLD scanning Added: tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar - copied unchanged from r1662736, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-impl-1.2.3.jar tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar - copied unchanged from r1662736, tomcat/trunk/webapps/examples/WEB-INF/lib/taglibs-standard-spec-1.2.3.jar Removed: tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/jstl.jar tomcat/tc7.0.x/trunk/webapps/examples/WEB-INF/lib/standard.jar Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/conf/catalina.properties Propchange: tomcat/tc7.0.x/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Feb 27 17:02:52 2015 @@ -1,2 +1,2 @@ -/tomcat/tc8.0.x/trunk:1636525,1637336,1637685,1637709,1638726,1640089,1640276,1640349,1640363,1640366,1640642,1640672,1640674,1640689,1640884,1641001,1641065,1641067,1641375,1641638,1641723,1641726,1641729-1641730,1641736,1641988,1642669-1642670,1642698,1642701,1643205,1643215,1643217,1643230,1643232,1643273,1643285,1643329-1643330,1643511,1643513,1643521,1643539,1643571,1643581-1643582,1643635,1643655,1643738,1643964,1644018,1644333,1644954,1644992,1645014,1645360,1645456,1645627,1645642,1645686,1645903-1645904,1645908-1645909,1645913,1645920,1646458,1646460-1646462,1647030,1647043,1648816,1651420-1651422,1651844,1652939-1652940,1652973,1653798,1653817,1653841,1654042,1654161,1654736,1654767,1654787,1655109,1655112,1655114-1655115,1655117,1655120,1655445,1655467,1656300,1657049,1657356,1657360,1657370,1657460,1657908,1658208,1658737,1658801-1658803,1658811,1658834,1659045,1659190-1659191,1659266,1659294,1659308,1659383,1659386,1659429,1659472,1659507,1659517,1659522,1659563,1659807 ,1659816,1659835-1659864,1659968,1660953,1660970,1662178,1662537,1662549,1662551,1662627,1662632 -/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
svn commit: r1662635 - in /tomcat/taglibs/site: changes.xml src/site/xdoc/index.xml src/site/xdoc/standard/index.xml
Author: jboynes Date: Fri Feb 27 05:31:51 2015 New Revision: 1662635 URL: http://svn.apache.org/r1662635 Log: Update taglibs website for 1.2.3 release Modified: tomcat/taglibs/site/changes.xml tomcat/taglibs/site/src/site/xdoc/index.xml tomcat/taglibs/site/src/site/xdoc/standard/index.xml Modified: tomcat/taglibs/site/changes.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/site/changes.xml?rev=1662635r1=1662634r2=1662635view=diff == --- tomcat/taglibs/site/changes.xml (original) +++ tomcat/taglibs/site/changes.xml Fri Feb 27 05:31:51 2015 @@ -21,6 +21,8 @@ /properties body + release version=1.2.3 date=2015-02-20 description=Minor bugfix update/ + release version=1.2.2 date=2015-02-08 description=Release candidate withdrawn/ release version=1.2.1 date=2014-01-02 description=First release of our implementation of JSTL 1.2/ release version=1.2.0 description=JSTL 1.2 implementation - failed vote/ Modified: tomcat/taglibs/site/src/site/xdoc/index.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/site/src/site/xdoc/index.xml?rev=1662635r1=1662634r2=1662635view=diff == --- tomcat/taglibs/site/src/site/xdoc/index.xml (original) +++ tomcat/taglibs/site/src/site/xdoc/index.xml Fri Feb 27 05:31:51 2015 @@ -46,6 +46,12 @@ table border=0 cellspacing=5 cellpadding=5 width=100% + trtd bgcolor=#CCbfont size=-12015/02/20/font/b/tdtd bgcolor=#CCfont size=-1 +[a href=standard/Standard/a] + /fontfont size=-1 +The Apache Standard Taglib 1.2.3, a minor bugfix version, has been released. + /font/td/tr + trtd bgcolor=#CCbfont size=-12014/01/02/font/b/tdtd bgcolor=#CCfont size=-1 [a href=standard/Standard/a] /fontfont size=-1 Modified: tomcat/taglibs/site/src/site/xdoc/standard/index.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/site/src/site/xdoc/standard/index.xml?rev=1662635r1=1662634r2=1662635view=diff == --- tomcat/taglibs/site/src/site/xdoc/standard/index.xml (original) +++ tomcat/taglibs/site/src/site/xdoc/standard/index.xml Fri Feb 27 05:31:51 2015 @@ -39,7 +39,7 @@ tdbGetting the Taglib/b/td /tr tr -tdStandard 1.2.1/td +tdStandard 1.2.3/td tdJSTL 1.2/td tdServlet 2.5, JavaServer Pages 2.1/td tda href=http://tomcat.apache.org/download-taglibs.cgi;download/a (a href=apidocs/javadoc/a)/td @@ -67,6 +67,10 @@ tdbItem/b/td /tr tr +td2015/02/20/td +tdThe Apache Standard Taglib 1.2.3, a minor bugfix version, has been released./td + /tr + tr td2014/01/02/td tdThe Apache Standard Taglib 1.2.1, an implementation of JSTL 1.2, has been released./td /tr - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1662637 - in /tomcat/site/trunk: docs/ docs/taglibs/ docs/taglibs/site/ docs/taglibs/standard/ xdocs/
Author: jboynes Date: Fri Feb 27 05:43:12 2015 New Revision: 1662637 URL: http://svn.apache.org/r1662637 Log: Update Tomcat site for Taglibs 1.2.3 release Modified: tomcat/site/trunk/docs/download-taglibs.html tomcat/site/trunk/docs/taglibs/dependencies.html tomcat/site/trunk/docs/taglibs/dependency-info.html tomcat/site/trunk/docs/taglibs/distribution-management.html tomcat/site/trunk/docs/taglibs/index.html tomcat/site/trunk/docs/taglibs/integration.html tomcat/site/trunk/docs/taglibs/issue-tracking.html tomcat/site/trunk/docs/taglibs/license.html tomcat/site/trunk/docs/taglibs/mail-lists.html tomcat/site/trunk/docs/taglibs/plugin-management.html tomcat/site/trunk/docs/taglibs/plugins.html tomcat/site/trunk/docs/taglibs/project-info.html tomcat/site/trunk/docs/taglibs/project-reports.html tomcat/site/trunk/docs/taglibs/project-summary.html tomcat/site/trunk/docs/taglibs/site/building.html tomcat/site/trunk/docs/taglibs/site/news.html tomcat/site/trunk/docs/taglibs/site/tutorial.html tomcat/site/trunk/docs/taglibs/site/using.html tomcat/site/trunk/docs/taglibs/source-repository.html tomcat/site/trunk/docs/taglibs/standard/index.html tomcat/site/trunk/docs/taglibs/surefire-report.html tomcat/site/trunk/docs/taglibs/team-list.html tomcat/site/trunk/xdocs/download-taglibs.xml Modified: tomcat/site/trunk/docs/download-taglibs.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/download-taglibs.html?rev=1662637r1=1662636r2=1662637view=diff == --- tomcat/site/trunk/docs/download-taglibs.html (original) +++ tomcat/site/trunk/docs/download-taglibs.html Fri Feb 27 05:43:12 2015 @@ -204,7 +204,7 @@ div class=text a href=https://www.apache.org/dist/tomcat/taglibs/KEYS;KEYS/a | -a href=#Standard-1.2.1Standard Taglib 1.2.1/a | +a href=#Standard-1.2.3Standard Taglib 1.2.3/a | a href=[preferred]tomcat/taglibs/ rel=nofollowBrowse/a | a href=http://archive.apache.org/dist/tomcat/taglibs/;Archives/a @@ -252,7 +252,7 @@ /div -h3 id=Standard-1.2.1Standard-1.2.1/h3 +h3 id=Standard-1.2.3Standard-1.2.3/h3 div class=text @@ -264,15 +264,15 @@ li -a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.1/README_src.txt; rel=nofollowSource README/a +a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/README_src.txt; rel=nofollowSource README/a /li li -a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip rel=nofollowzip/a - (a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc;pgp/a, - a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5;md5/a) +a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip rel=nofollowzip/a + (a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip.asc;pgp/a, + a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip.md5;md5/a) /li /ul @@ -289,7 +289,7 @@ li -a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.1/README_bin.txt; rel=nofollowBinary README/a +a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/README_bin.txt; rel=nofollowBinary README/a /li @@ -298,9 +298,9 @@ li -a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-impl-1.2.1.jar rel=nofollowtaglibs-standard-impl-1.2.1.jar/a -(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-impl-1.2.1.jar.asc;pgp/a, -a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-impl-1.2.1.jar.md5;md5/a) +a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar rel=nofollowtaglibs-standard-impl-1.2.3.jar/a +(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar.asc;pgp/a, +a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar.md5;md5/a) /li /ul @@ -312,9 +312,9 @@ li -a href=[preferred]tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-spec-1.2.1.jar rel=nofollowtaglibs-standard-spec-1.2.1.jar/a -(a href=https://www.apache.org/dist/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-spec-1.2.1.jar.asc;pgp/a, -a href=https
svn commit: r7986 - /dev/tomcat/taglibs/taglibs-standard-1.2.3/
Author: jboynes Date: Wed Feb 11 04:37:27 2015 New Revision: 7986 Log: Stage files for taglibs 1.2.3 release vote Added: dev/tomcat/taglibs/taglibs-standard-1.2.3/ dev/tomcat/taglibs/taglibs-standard-1.2.3/NOTICE dev/tomcat/taglibs/taglibs-standard-1.2.3/README_bin.txt dev/tomcat/taglibs/taglibs-standard-1.2.3/README_src.txt dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip (with props) dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip.asc dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip.md5 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-1.2.3-source-release.zip.sha1 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-compat-1.2.3.jar (with props) dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-compat-1.2.3.jar.asc dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-compat-1.2.3.jar.md5 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-compat-1.2.3.jar.sha1 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar (with props) dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar.asc dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar.md5 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-impl-1.2.3.jar.sha1 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-jstlel-1.2.3.jar (with props) dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-jstlel-1.2.3.jar.asc dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-jstlel-1.2.3.jar.md5 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-jstlel-1.2.3.jar.sha1 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-spec-1.2.3.jar (with props) dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-spec-1.2.3.jar.asc dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-spec-1.2.3.jar.md5 dev/tomcat/taglibs/taglibs-standard-1.2.3/taglibs-standard-spec-1.2.3.jar.sha1 Added: dev/tomcat/taglibs/taglibs-standard-1.2.3/NOTICE == --- dev/tomcat/taglibs/taglibs-standard-1.2.3/NOTICE (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.3/NOTICE Wed Feb 11 04:37:27 2015 @@ -0,0 +1,5 @@ +Apache Standard Taglib +Copyright 2001-2015 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). Added: dev/tomcat/taglibs/taglibs-standard-1.2.3/README_bin.txt == --- dev/tomcat/taglibs/taglibs-standard-1.2.3/README_bin.txt (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.3/README_bin.txt Wed Feb 11 04:37:27 2015 @@ -0,0 +1,111 @@ +--- +Apache Standard Tag Library 1.2.3 -- BINARY DISTRIBUTION +--- +Thanks for downloading this release of the Standard tag library, +an implementation of the JavaServer Pages(tm)(JSP) +Standard Tag Library (JSTL). + +This code is licensed to you by the Apache Software Foundation and its +contributors under the terms of the Apache License V2.0; +please see the included NOTICE and LICENSE files for details. + +JSTL is an effort of the Java Community Process (JCP) and +comes out of the JSR-052 expert group. For more information on JSTL, +please go to http://jcp.org/en/jsr/detail?id=52 . + +--- +LIBRARY DEPENDENCIES + +This version of the Standard Tag Library has the following runtime +dependencies: + + 1. Dependencies provided by a JSP 2.1 container: + - Java 1.5 or later + - Servlet 2.5 or later + - JSP 2.1 or later + + 2. Additional dependencies + - The XML tag library requires Apache Xalan 2.7.1 or later + +--- +Apache Xalan 2.7.1 + +To address performance issues with XSLT processing, this version relies on +implementation specific functionality from Apache Xalan. The following +libraries should be included in the classpath for your application: + - xalan-2.7.1.jar + - serializer-2.7.1.jar + +--- +ADD DEPENDENCIES TO A WEB APPLICATION + +To use this distribution with your own web applications, add the following JAR +files to the '/WEB-INF/lib' directory of your application: + - taglibs-standard-spec-1.2.3.jar + - taglibs-standard-impl-1.2.3.jar + - taglibs-standard-jstlel-1.2.3.jar + - xalan-2.7.1.jar + - serializer-2.7.1.jar + +If you do not use JSTL 1.0 tags then the taglibs-standard-jstlel JAR may be +omitted. If you do not use the XML library, then the Apache Xalan dependencies +may also be omitted. + +If you build you
svn commit: r1658873 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Wed Feb 11 04:17:26 2015 New Revision: 1658873 URL: http://svn.apache.org/r1658873 Log: [maven-release-plugin] prepare for next development iteration Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1658873r1=1658872r2=1658873view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Wed Feb 11 04:17:26 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1658873r1=1658872r2=1658873view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Wed Feb 11 04:17:26 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1658873r1=1658872r2=1658873view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Wed Feb 11 04:17:26 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.3/version +version1.2.4-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1658871 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Wed Feb 11 04:17:23 2015 New Revision: 1658871 URL: http://svn.apache.org/r1658871 Log: [maven-release-plugin] prepare release taglibs-standard-1.2.3 Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1658871r1=1658870r2=1658871view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Wed Feb 11 04:17:23 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1658871r1=1658870r2=1658871view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Wed Feb 11 04:17:23 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1658871r1=1658870r2=1658871view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Wed Feb 11 04:17:23 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.3-SNAPSHOT/version +version1.2.3/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1658872 - /tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/
Author: jboynes Date: Wed Feb 11 04:17:25 2015 New Revision: 1658872 URL: http://svn.apache.org/r1658872 Log: [maven-release-plugin] copy for tag taglibs-standard-1.2.3 Added: tomcat/taglibs/standard/tags/taglibs-standard-1.2.3/ - copied from r1658871, tomcat/taglibs/standard/trunk/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1658754 - in /tomcat/taglibs/standard/trunk: ./ impl/src/main/java/org/apache/taglibs/standard/util/ impl/src/test/java/org/apache/taglibs/standard/util/
Author: jboynes Date: Tue Feb 10 16:32:13 2015 New Revision: 1658754 URL: http://svn.apache.org/r1658754 Log: Check protocol when resolving on older JREs Added: tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/util/XmlUtilTest.java (with props) Modified: tomcat/taglibs/standard/trunk/CHANGES.txt tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/UrlUtil.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1658754r1=1658753r2=1658754view=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Tue Feb 10 16:32:13 2015 @@ -1,8 +1,9 @@ Changes in 1.2.3 release -57547 Fix regression with running on older JREs -57548 Update library version number printed by Version class +57560 Check protocol when resolving on older JREs 57549 Fix reference to old SNAPSHOT version of taglibs-build-tools in pom files. +57548 Update library version number printed by Version class +57547 Fix regression with running on older JREs Changes in 1.2.2 release [WITHDRAWN due to regressions in older JREs] Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/UrlUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/UrlUtil.java?rev=1658754r1=1658753r2=1658754view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/UrlUtil.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/UrlUtil.java Tue Feb 10 16:32:13 2015 @@ -77,4 +77,19 @@ public class UrlUtil { // if so, we've got an absolute url return true; } + +public static String getScheme(CharSequence url) { +StringBuilder scheme = new StringBuilder(); +for (int i = 0; i url.length(); i++) { +char ch = url.charAt(i); +if (ch == ':') { +String result = scheme.toString(); +if (!jar.equals(result)) { +return result; +} +} +scheme.append(ch); +} +throw new IllegalArgumentException(No scheme found: + url); +} } Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java?rev=1658754r1=1658753r2=1658754view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java Tue Feb 10 16:32:13 2015 @@ -20,6 +20,7 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.io.Reader; import java.security.AccessController; +import java.security.PrivilegedAction; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.concurrent.Callable; @@ -111,6 +112,27 @@ public class XmlUtil { } } +private static final String SP_ALLOWED_PROTOCOLS = org.apache.taglibs.standard.xml.accessExternalEntity; +private static final String ALLOWED_PROTOCOLS = AccessController.doPrivileged(new PrivilegedActionString() { +public String run() { +String defaultProtocols = System.getSecurityManager() == null ? all : ; +return System.getProperty(SP_ALLOWED_PROTOCOLS, defaultProtocols); +} +}); + +static void checkProtocol(String allowedProtocols, String uri) { +if (all.equalsIgnoreCase(allowedProtocols)) { +return; +} +String protocol = UrlUtil.getScheme(uri); +for (String allowed : allowedProtocols.split(,)) { +if (allowed.trim().equalsIgnoreCase(protocol)) { +return; +} +} +throw new SecurityException(Access to external URI not allowed: + uri); +} + /** * Create a new empty document. * @@ -219,7 +241,7 @@ public class XmlUtil { } /** - * JSTL-specific implementation of EntityResolver. + * JSTL-specific implementation of EntityResolver, used by parsers. */ public static class JstlEntityResolver implements EntityResolver { private final PageContext ctx; @@ -242,6 +264,7 @@ public class XmlUtil { // we're only concerned with relative URLs
svn commit: r1658757 - in /tomcat/taglibs/standard/trunk: CHANGES.txt README_bin.txt
Author: jboynes Date: Tue Feb 10 16:43:59 2015 New Revision: 1658757 URL: http://svn.apache.org/r1658757 Log: Update changes and docs Modified: tomcat/taglibs/standard/trunk/CHANGES.txt tomcat/taglibs/standard/trunk/README_bin.txt Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1658757r1=1658756r2=1658757view=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Tue Feb 10 16:43:59 2015 @@ -5,6 +5,11 @@ Changes in 1.2.3 release 57548 Update library version number printed by Version class 57547 Fix regression with running on older JREs +XML tags now enable FEATURE_SECURE_PROCESSING when parsing and transforming. The JSTL-specific +EntityResolver also checks the protocol being used against a white-list specified in the system +property org.apache.taglibs.standard.xml.accessExternalEntity in to order to limit access on +older JREs. + Changes in 1.2.2 release [WITHDRAWN due to regressions in older JREs] 57433 Double-check locking in ExpressionEvaluatorManager Modified: tomcat/taglibs/standard/trunk/README_bin.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/README_bin.txt?rev=1658757r1=1658756r2=1658757view=diff == --- tomcat/taglibs/standard/trunk/README_bin.txt (original) +++ tomcat/taglibs/standard/trunk/README_bin.txt Tue Feb 10 16:43:59 2015 @@ -88,9 +88,16 @@ The JSTL tag library can be imported int --- COMPATIBILITY -The 1.2 version of the Standard Taglib has been tested under Tomcat 7.0.47 +The 1.2 version of the Standard Taglib has been tested using Tomcat 7.0.57 and should work in any compliant JSP 2.1 (or later) container. +In version 1.2.3 and later, the XML libraries enable FEATURE_SECURE_PROCESSING +when parsing and transforming. A new system property + org.apache.taglibs.standard.xml.accessExternalEntity +can be used to further restrict the protocols over which external entities can +be resolved. When a SecurityManager is enabled this will, by default, allow +access to no protocols. + --- COMMENTS AND QUESTIONS - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1658262 - in /tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv: JstlBaseTLV.java JstlCoreTLV.java JstlFmtTLV.java JstlSqlTLV.java JstlXmlTLV.java
Author: jboynes Date: Sun Feb 8 22:08:30 2015 New Revision: 1658262 URL: http://svn.apache.org/r1658262 Log: Make constant fields static Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlCoreTLV.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlFmtTLV.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlSqlTLV.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlXmlTLV.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java?rev=1658262r1=1658261r2=1658262view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java Sun Feb 8 22:08:30 2015 @@ -64,7 +64,7 @@ public abstract class JstlBaseTLV extend // Constants // parameter names -private final String EXP_ATT_PARAM = expressionAttributes; +private static final String EXP_ATT_PARAM = expressionAttributes; // attributes protected static final String VAR = var; Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlCoreTLV.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlCoreTLV.java?rev=1658262r1=1658261r2=1658262view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlCoreTLV.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlCoreTLV.java Sun Feb 8 22:08:30 2015 @@ -67,26 +67,25 @@ public class JstlCoreTLV extends JstlBas // Constants // tag names -private final String CHOOSE = choose; -private final String WHEN = when; -private final String OTHERWISE = otherwise; -private final String EXPR = out; -private final String SET = set; -private final String IMPORT = import; -private final String URL = url; -private final String REDIRECT = redirect; -private final String PARAM = param; -// private final String EXPLANG = expressionLanguage; -private final String TEXT = text; +private static final String CHOOSE = choose; +private static final String WHEN = when; +private static final String OTHERWISE = otherwise; +private static final String EXPR = out; +private static final String SET = set; +private static final String IMPORT = import; +private static final String URL = url; +private static final String REDIRECT = redirect; +private static final String PARAM = param; +private static final String TEXT = text; // attribute names -private final String VALUE = value; -private final String DEFAULT = default; -private final String VAR_READER = varReader; +private static final String VALUE = value; +private static final String DEFAULT = default; +private static final String VAR_READER = varReader; // alternative identifiers for tags -private final String IMPORT_WITH_READER = import varReader=''; -private final String IMPORT_WITHOUT_READER = import var=''; +private static final String IMPORT_WITH_READER = import varReader=''; +private static final String IMPORT_WITHOUT_READER = import var=''; //* Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlFmtTLV.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlFmtTLV.java?rev=1658262r1=1658261r2=1658262view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlFmtTLV.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlFmtTLV.java Sun Feb 8 22:08:30 2015 @@ -70,23 +70,22 @@ public class JstlFmtTLV extends JstlBase // Constants // tag names -private final String SETLOCALE = setLocale; -private final String SETBUNDLE = setBundle; -private final String SETTIMEZONE = setTimeZone; -private final String BUNDLE = bundle; -private final String MESSAGE = message; -private final String MESSAGE_PARAM = param; -private final String FORMAT_NUMBER
svn commit: r7963 - /dev/tomcat/taglibs/taglibs-standard-1.2.2/
Author: jboynes Date: Sun Feb 8 19:31:43 2015 New Revision: 7963 Log: Candidate withdrawn due to regressions on older JREs Removed: dev/tomcat/taglibs/taglibs-standard-1.2.2/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1658250 - /tomcat/taglibs/standard/trunk/CHANGES.txt
Author: jboynes Date: Sun Feb 8 19:33:32 2015 New Revision: 1658250 URL: http://svn.apache.org/r1658250 Log: Update status of 1.2.2 release candidate Modified: tomcat/taglibs/standard/trunk/CHANGES.txt Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1658250r1=1658249r2=1658250view=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Sun Feb 8 19:33:32 2015 @@ -1,4 +1,4 @@ -Changes in 1.2.2 release +Changes in 1.2.2 release [WITHDRAWN due to regressions in older JREs] 57433 Double-check locking in ExpressionEvaluatorManager 57427 1.0 TLDs are missing from -compat jar - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1658263 - /tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/core/IteratedExpression.java
Author: jboynes Date: Sun Feb 8 22:11:12 2015 New Revision: 1658263 URL: http://svn.apache.org/r1658263 Log: Remove unnecessary semi-colon Modified: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/core/IteratedExpression.java Modified: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/core/IteratedExpression.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/core/IteratedExpression.java?rev=1658263r1=1658262r2=1658263view=diff == --- tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/core/IteratedExpression.java (original) +++ tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/core/IteratedExpression.java Sun Feb 8 22:11:12 2015 @@ -44,7 +44,6 @@ public final class IteratedExpression { Undefined, ACollection, AnIterator, AnEnumeration, AMap, AString } -; private TypesEnum type = TypesEnum.Undefined; /** - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1658265 - /tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/
Author: jboynes Date: Sun Feb 8 22:23:11 2015 New Revision: 1658265 URL: http://svn.apache.org/r1658265 Log: Suppress warnings in generated code Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParser.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserConstants.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserTokenManager.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ParseException.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/SimpleCharStream.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/Token.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/TokenMgrError.java Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParser.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParser.java?rev=1658265r1=1658264r2=1658265view=diff == --- tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParser.java (original) +++ tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParser.java Sun Feb 8 22:23:11 2015 @@ -46,6 +46,7 @@ import org.apache.taglibs.standard.lang. * @author Shawn Bayern */ +@SuppressWarnings(ALL) public class ELParser implements ELParserConstants { public static void main(String args[]) Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserConstants.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserConstants.java?rev=1658265r1=1658264r2=1658265view=diff == --- tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserConstants.java (original) +++ tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserConstants.java Sun Feb 8 22:23:11 2015 @@ -1,6 +1,7 @@ /* Generated By:JavaCC: Do not edit this line. ELParserConstants.java */ package org.apache.taglibs.standard.lang.jstl.parser; +@SuppressWarnings(ALL) public interface ELParserConstants { int EOF = 0; Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserTokenManager.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserTokenManager.java?rev=1658265r1=1658264r2=1658265view=diff == --- tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserTokenManager.java (original) +++ tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ELParserTokenManager.java Sun Feb 8 22:23:11 2015 @@ -1,6 +1,7 @@ /* Generated By:JavaCC: Do not edit this line. ELParserTokenManager.java */ package org.apache.taglibs.standard.lang.jstl.parser; +@SuppressWarnings(ALL) public class ELParserTokenManager implements ELParserConstants { public java.io.PrintStream debugStream = System.out; Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ParseException.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ParseException.java?rev=1658265r1=1658264r2=1658265view=diff == --- tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ParseException.java (original) +++ tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/ParseException.java Sun Feb 8 22:23:11 2015 @@ -10,6 +10,7 @@ package org.apache.taglibs.standard.lang * You can modify this class to customize your error reporting * mechanisms so long as you retain the public fields. */ +@SuppressWarnings(ALL) public class ParseException extends Exception { /** Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser/SimpleCharStream.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/parser
svn commit: r7842 - in /dev/tomcat/taglibs/taglibs-standard-1.2.2: ./ taglibs-standard-1.2.2-source-release.zip taglibs-standard-1.2.2-source-release.zip.asc
Author: jboynes Date: Mon Jan 26 17:12:02 2015 New Revision: 7842 Log: Add taglibs-standard-1.2.2 for voting Added: dev/tomcat/taglibs/taglibs-standard-1.2.2/ dev/tomcat/taglibs/taglibs-standard-1.2.2/taglibs-standard-1.2.2-source-release.zip (with props) dev/tomcat/taglibs/taglibs-standard-1.2.2/taglibs-standard-1.2.2-source-release.zip.asc Added: dev/tomcat/taglibs/taglibs-standard-1.2.2/taglibs-standard-1.2.2-source-release.zip == Binary file - no diff available. Propchange: dev/tomcat/taglibs/taglibs-standard-1.2.2/taglibs-standard-1.2.2-source-release.zip -- svn:mime-type = application/octet-stream Added: dev/tomcat/taglibs/taglibs-standard-1.2.2/taglibs-standard-1.2.2-source-release.zip.asc == --- dev/tomcat/taglibs/taglibs-standard-1.2.2/taglibs-standard-1.2.2-source-release.zip.asc (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.2/taglibs-standard-1.2.2-source-release.zip.asc Mon Jan 26 17:12:02 2015 @@ -0,0 +1,12 @@ +-BEGIN PGP SIGNATURE- +Version: GnuPG/MacGPG2 v2 +Comment: GPGTools - https://gpgtools.org + +iQEcBAABCgAGBQJUxnIgAAoJEKVK0I6noCM8NZYH/R18HyWj9xVHosQb6B2UI9RP +kHoIXTNCevaqCaIgm+0o3NKSU+amtAdaFCSy4FyDGUXYo3Sa1bXxi7GlLGAGbxfP +e5wyrE30mgAQRAHcyXxFk5phsWQIr20dec9rZoXhXH1cJSL3q4qvPuoMOUmmKZRC +VDilx9ogboYDCcfhko7kVFkDMDqCQlfp4l0EEv8tXaC6gh5/qbwaEYx358g4aT/T +yj+KEPSFX6zZiC9HBBDe91pjmVEFSbEfyIzLwHxWMB5keI3AiHnKPRzc30tw8QFC +KRHJaC1toaOeCc9cgsu4HpFjiRPD81SCrgQ+krrcTD/vUt+rajwkYc4YWMTC/4I= +=RjH0 +-END PGP SIGNATURE- - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1655089 - /tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java
Author: jboynes Date: Tue Jan 27 16:47:56 2015 New Revision: 1655089 URL: http://svn.apache.org/r1655089 Log: Fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=57504 Initialize tldLocationsCache when creating the ServletContext Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java?rev=1655089r1=1655088r2=1655089view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java Tue Jan 27 16:47:56 2015 @@ -1467,6 +1467,7 @@ public class JspC extends Task implement context.setInitParameter(Constants.XML_BLOCK_EXTERNAL_INIT_PARAM, String.valueOf(isBlockExternal())); +tldLocationsCache = TldLocationsCache.getInstance(context); rctxt = new JspRuntimeContext(context, this); jspConfig = new JspConfig(context); tagPluginManager = new TagPluginManager(context); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654835 - /tomcat/taglibs/standard/trunk/CHANGES.txt
Author: jboynes Date: Mon Jan 26 16:02:32 2015 New Revision: 1654835 URL: http://svn.apache.org/r1654835 Log: Update change list Modified: tomcat/taglibs/standard/trunk/CHANGES.txt Modified: tomcat/taglibs/standard/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1654835r1=1654834r2=1654835view=diff == --- tomcat/taglibs/standard/trunk/CHANGES.txt (original) +++ tomcat/taglibs/standard/trunk/CHANGES.txt Mon Jan 26 16:02:32 2015 @@ -1,3 +1,9 @@ +Changes in 1.2.2 release + +57433 Double-check locking in ExpressionEvaluatorManager +57427 1.0 TLDs are missing from -compat jar +57289 XML factories should be located using the JSTL library's ClassLoader + Changes in 1.2.1 release - Documentation cleanup - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654846 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Mon Jan 26 16:58:27 2015 New Revision: 1654846 URL: http://svn.apache.org/r1654846 Log: [maven-release-plugin] prepare for next development iteration Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1654846r1=1654845r2=1654846view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Mon Jan 26 16:58:27 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1654846r1=1654845r2=1654846view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Mon Jan 26 16:58:27 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1654846r1=1654845r2=1654846view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Mon Jan 26 16:58:27 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.2/version +version1.2.3-SNAPSHOT/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1654845 - /tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/
Author: jboynes Date: Mon Jan 26 16:58:26 2015 New Revision: 1654845 URL: http://svn.apache.org/r1654845 Log: [maven-release-plugin] copy for tag taglibs-standard-1.2.2 Added: tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/ - copied from r1654844, tomcat/taglibs/standard/trunk/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1654844 - in /tomcat/taglibs/standard/trunk: build-tools/pom.xml compat/pom.xml impl/pom.xml jstlel/pom.xml pom.xml spec/pom.xml
Author: jboynes Date: Mon Jan 26 16:58:24 2015 New Revision: 1654844 URL: http://svn.apache.org/r1654844 Log: [maven-release-plugin] prepare release taglibs-standard-1.2.2 Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml tomcat/taglibs/standard/trunk/compat/pom.xml tomcat/taglibs/standard/trunk/impl/pom.xml tomcat/taglibs/standard/trunk/jstlel/pom.xml tomcat/taglibs/standard/trunk/pom.xml tomcat/taglibs/standard/trunk/spec/pom.xml Modified: tomcat/taglibs/standard/trunk/build-tools/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/pom.xml?rev=1654844r1=1654843r2=1654844view=diff == --- tomcat/taglibs/standard/trunk/build-tools/pom.xml (original) +++ tomcat/taglibs/standard/trunk/build-tools/pom.xml Mon Jan 26 16:58:24 2015 @@ -24,20 +24,20 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version /parent artifactIdtaglibs-build-tools/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version nameApache Standard Taglib Build Tools/name descriptionBuild tool settings common to all Standard Taglib modules/description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/build-tools + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/build-tools/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/build-tools /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/build-tools/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/build-tools/url /scm /project Modified: tomcat/taglibs/standard/trunk/compat/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/pom.xml?rev=1654844r1=1654843r2=1654844view=diff == --- tomcat/taglibs/standard/trunk/compat/pom.xml (original) +++ tomcat/taglibs/standard/trunk/compat/pom.xml Mon Jan 26 16:58:24 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version /parent artifactIdtaglibs-standard-compat/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version packagingbundle/packaging nameApache Standard Taglib 1.0 Compatibility/name @@ -39,10 +39,10 @@ /description scm - connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat/connection - developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/trunk/compat + connectionscm:svn:http://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/compat/connection + developerConnectionscm:svn:https://svn.apache.org/repos/asf/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/compat /developerConnection - urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/url + urlhttp://svn.apache.org/viewvc/tomcat/taglibs/standard/tags/taglibs-standard-1.2.2/compat/url /scm developers @@ -69,12 +69,12 @@ dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-spec/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version /dependency dependency groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard-impl/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version /dependency dependency Modified: tomcat/taglibs/standard/trunk/impl/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/pom.xml?rev=1654844r1=1654843r2=1654844view=diff == --- tomcat/taglibs/standard/trunk/impl/pom.xml (original) +++ tomcat/taglibs/standard/trunk/impl/pom.xml Mon Jan 26 16:58:24 2015 @@ -24,11 +24,11 @@ parent groupIdorg.apache.taglibs/groupId artifactIdtaglibs-standard/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version /parent artifactIdtaglibs-standard-impl/artifactId -version1.2.2-SNAPSHOT/version +version1.2.2/version packagingbundle/packaging nameApache Standard Taglib Implementation/name @@ -39,10 +39,10 @@ /description scm
svn commit: r1651034 [1/2] - in /tomcat/taglibs/standard/trunk: compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/ compa
Author: jboynes Date: Mon Jan 12 04:20:20 2015 New Revision: 1651034 URL: http://svn.apache.org/r1651034 Log: Add missing tags and TLDs to standard-compat jar Added: tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/ tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/BundleTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/FormatDateTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/FormatNumberTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/MessageTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/ParamTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/ParseDateTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/ParseNumberTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/RequestEncodingTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/SetBundleTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/SetLocaleTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/SetTimeZoneTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/TimeZoneTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/sql/ tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/sql/DateParamTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/sql/ParamTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/sql/QueryTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/sql/SetDataSourceTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/sql/TransactionTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/sql/UpdateTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/xml/ tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/xml/ExprTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/xml/ParamTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/xml/ParseTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/xml/TransformTag.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tlv/ tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tlv/compat/ tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tlv/compat/JstlELCoreTLV.java (with props) tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tlv/compat/JstlELFmtTLV.java - copied, changed from r1650930, tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/tlv/el/JstlELFmtTLV.java tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tlv/compat/JstlELSqlTLV.java - copied, changed from r1650930, tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/tlv/el/JstlELSqlTLV.java tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tlv/compat/JstlELXmlTLV.java - copied, changed from r1650930, tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/tlv/el/JstlELXmlTLV.java tomcat/taglibs/standard/trunk/compat/src/main/resources/ tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/ tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/c-1_0.tld tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/fmt-1_0.tld tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/sql-1_0.tld tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/x-1_0.tld Modified: tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache
svn commit: r1651034 [2/2] - in /tomcat/taglibs/standard/trunk: compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ compat/src/main/java/org/apache/taglibs/standard/tag/compat/fmt/ compa
Added: tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/c-1_0.tld URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/c-1_0.tld?rev=1651034view=auto == --- tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/c-1_0.tld (added) +++ tomcat/taglibs/standard/trunk/compat/src/main/resources/META-INF/c-1_0.tld Mon Jan 12 04:20:20 2015 @@ -0,0 +1,432 @@ +?xml version=1.0 encoding=ISO-8859-1 ? +!-- + ~ Licensed to the Apache Software Foundation (ASF) under one or more + ~ contributor license agreements. See the NOTICE file distributed with + ~ this work for additional information regarding copyright ownership. + ~ The ASF licenses this file to You under the Apache License, Version 2.0 + ~ (the License); you may not use this file except in compliance with + ~ the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an AS IS BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + -- +!DOCTYPE taglib +PUBLIC -//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN +http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd; +taglib +tlib-version1.0/tlib-version +jsp-version1.2/jsp-version +short-namec/short-name +urihttp://java.sun.com/jstl/core/uri +display-nameJSTL core/display-name +descriptionJSTL 1.0 core library/description + +validator +validator-class +org.apache.taglibs.standard.tlv.compat.JstlELCoreTLV +/validator-class +init-param +param-nameexpressionAttributes/param-name +param-value +out:value +out:default +out:escapeXml +if:test +import:url +import:context +import:charEncoding +forEach:items +forEach:begin +forEach:end +forEach:step +forTokens:items +forTokens:begin +forTokens:end +forTokens:step +param:encode +param:name +param:value +redirect:context +redirect:url +set:property +set:target +set:value +url:context +url:value +when:test +/param-value +description +Whitespace-separated list of colon-separated token pairs +describing tag:attribute combinations that accept expressions. +The validator uses this information to determine which +attributes need their syntax validated. +/description +/init-param +/validator + +tag +namecatch/name + tag-classorg.apache.taglibs.standard.tag.common.core.CatchTag/tag-class +body-contentJSP/body-content +description +Catches any Throwable that occurs in its body and optionally +exposes it. +/description +attribute +namevar/name +requiredfalse/required +rtexprvaluefalse/rtexprvalue +/attribute +/tag + +tag +namechoose/name + tag-classorg.apache.taglibs.standard.tag.common.core.ChooseTag/tag-class +body-contentJSP/body-content +description +Simple conditional tag that establishes a context for +mutually exclusive conditional operations, marked by +lt;whengt; and lt;otherwisegt; +/description +/tag + +tag +nameout/name + tag-classorg.apache.taglibs.standard.tag.compat.core.OutTag/tag-class +body-contentJSP/body-content +description +Like lt;%= ... gt;, but for expressions. +/description +attribute +namevalue/name +requiredtrue/required +rtexprvaluefalse/rtexprvalue +/attribute +attribute +namedefault/name +requiredfalse/required +rtexprvaluefalse/rtexprvalue +/attribute +attribute +nameescapeXml/name +requiredfalse/required +rtexprvaluefalse/rtexprvalue +/attribute +/tag + +tag +nameif/name + tag-classorg.apache.taglibs.standard.tag.compat.core.IfTag/tag-class +body-contentJSP/body-content +description +Simple conditional tag, which evalutes its body if the +supplied condition is true and optionally
svn commit: r1650974 - in /tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard: lang/jstl/Evaluator.java lang/support/ExpressionEvaluator.java lang/support/ExpressionEvaluat
Author: jboynes Date: Sun Jan 11 21:36:58 2015 New Revision: 1650974 URL: http://svn.apache.org/r1650974 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=57433 Use a ConcurrentMap for the cache. However, as our code always uses the same implementation, use a single instance of that and deprecate public access to the cache. Also includes some Java5 TLC. Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/Evaluator.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support/ExpressionEvaluator.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support/ExpressionEvaluatorManager.java tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/tlv/el/ValidationUtil.java Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/Evaluator.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/Evaluator.java?rev=1650974r1=1650973r2=1650974view=diff == --- tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/Evaluator.java (original) +++ tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/jstl/Evaluator.java Sun Jan 11 21:36:58 2015 @@ -76,11 +76,9 @@ public class Evaluator return MessageFormat.format (Constants.ATTRIBUTE_PARSE_EXCEPTION, -new Object[]{ - + pAttributeName, - + pAttributeValue, -exc.getMessage() -}); + + pAttributeName, + + pAttributeValue, +exc.getMessage()); } } @@ -109,12 +107,10 @@ public class Evaluator throw new JspException (MessageFormat.format (Constants.ATTRIBUTE_EVALUATION_EXCEPTION, -new Object[]{ - + pAttributeName, - + pAttributeValue, -exc.getMessage(), -exc.getRootCause() -}), exc.getRootCause()); + + pAttributeName, + + pAttributeValue, +exc.getMessage(), +exc.getRootCause()), exc.getRootCause()); } } @@ -154,11 +150,9 @@ public class Evaluator throw new JspException (MessageFormat.format (Constants.ATTRIBUTE_PARSE_EXCEPTION, -new Object[]{ -test, - + pAttributeValue, -exc.getMessage() -})); +test, + + pAttributeValue, +exc.getMessage())); } } Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support/ExpressionEvaluator.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support/ExpressionEvaluator.java?rev=1650974r1=1650973r2=1650974view=diff == --- tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support/ExpressionEvaluator.java (original) +++ tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support/ExpressionEvaluator.java Sun Jan 11 21:36:58 2015 @@ -43,8 +43,7 @@ public interface ExpressionEvaluator { /** * Translation time validation of an expression. - * This method will return a null String if the expression - * is valid; otherwise an error message. + * This method will return a null String if the expression is valid; otherwise an error message. */ public String validate(String attributeName, String expression); Modified: tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support/ExpressionEvaluatorManager.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/jstlel/src/main/java/org/apache/taglibs/standard/lang/support
svn commit: r1642801 - in /tomcat/taglibs/standard/trunk/spec: ./ src/main/java/javax/servlet/jsp/jstl/tlv/ src/test/ src/test/java/ src/test/java/javax/ src/test/java/javax/servlet/ src/test/java/jav
Author: jboynes Date: Tue Dec 2 05:09:47 2014 New Revision: 1642801 URL: http://svn.apache.org/r1642801 Log: Cleanup warnings and add test for issue 57290 Added: tomcat/taglibs/standard/trunk/spec/src/test/ tomcat/taglibs/standard/trunk/spec/src/test/java/ tomcat/taglibs/standard/trunk/spec/src/test/java/javax/ tomcat/taglibs/standard/trunk/spec/src/test/java/javax/servlet/ tomcat/taglibs/standard/trunk/spec/src/test/java/javax/servlet/jsp/ tomcat/taglibs/standard/trunk/spec/src/test/java/javax/servlet/jsp/jstl/ tomcat/taglibs/standard/trunk/spec/src/test/java/javax/servlet/jsp/jstl/tlv/ tomcat/taglibs/standard/trunk/spec/src/test/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLVTest.java (with props) Modified: tomcat/taglibs/standard/trunk/spec/pom.xml tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java Modified: tomcat/taglibs/standard/trunk/spec/pom.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/pom.xml?rev=1642801r1=1642800r2=1642801view=diff == --- tomcat/taglibs/standard/trunk/spec/pom.xml (original) +++ tomcat/taglibs/standard/trunk/spec/pom.xml Tue Dec 2 05:09:47 2014 @@ -80,6 +80,19 @@ version1.0/version scopeprovided/scope /dependency + +dependency +groupIdjunit/groupId +artifactIdjunit/artifactId +version4.8.1/version +scopetest/scope +/dependency +dependency +groupIdorg.easymock/groupId +artifactIdeasymock/artifactId +version3.0/version +scopetest/scope +/dependency /dependencies build Modified: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java?rev=1642801r1=1642800r2=1642801view=diff == --- tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java (original) +++ tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java Tue Dec 2 05:09:47 2014 @@ -18,6 +18,7 @@ package javax.servlet.jsp.jstl.tlv; import java.io.IOException; import java.util.HashSet; +import java.util.Map; import java.util.Set; import java.util.StringTokenizer; @@ -40,6 +41,10 @@ import org.xml.sax.helpers.DefaultHandle * to tag libraries permitted to be imported on the page in addition to the tag * library that references PermittedTaglibsTLV (which is allowed implicitly). * /ul + * pThis implementation only detects tag libraries declared on the {@code jsp:root} element, + * including libraries in regular JSP files or JSP Documents with a specific {@code jsp:root}. + * It does not detect libraries declared on other elements as supported by JSP 2.0. + * /p * * @author Shawn Bayern */ @@ -62,56 +67,31 @@ public class PermittedTaglibsTLV extends private static final PageParser parser = new PageParser(false); -//* -// Validation and configuration state (protected) - -private Set permittedTaglibs;// what URIs are allowed? -private boolean failed;// did the page fail? -private String uri;// our taglib's URI - -//* -// Constructor and lifecycle management +private final SetString permittedTaglibs;// what URIs are allowed? public PermittedTaglibsTLV() { -super(); -init(); -} - -private void init() { -permittedTaglibs = null; +permittedTaglibs = new HashSetString(); } @Override -public void release() { -super.release(); -init(); +public void setInitParameters(MapString, Object initParams) { +super.setInitParameters(initParams); +permittedTaglibs.clear(); +String uris = (String) initParams.get(PERMITTED_TAGLIBS_PARAM); +if (uris != null) { +StringTokenizer st = new StringTokenizer(uris); +while (st.hasMoreTokens()) { +permittedTaglibs.add(st.nextToken()); +} +} } - -//* -// Validation entry point - @Override -public synchronized ValidationMessage[] validate(String prefix, String uri, PageData page) { +public ValidationMessage[] validate(String prefix, String uri, PageData page) { try { -// initialize -this.uri = uri; -permittedTaglibs = readConfiguration
svn commit: r1642604 - /tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java
Author: jboynes Date: Sun Nov 30 20:49:36 2014 New Revision: 1642604 URL: http://svn.apache.org/r1642604 Log: Use ClassLoader of JSTL library when locating XML factories Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java?rev=1642604r1=1642603r2=1642604view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java Sun Nov 30 20:49:36 2014 @@ -19,6 +19,10 @@ package org.apache.taglibs.standard.tag. import java.io.FileNotFoundException; import java.io.InputStream; import java.io.Reader; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.concurrent.Callable; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.PageContext; @@ -50,39 +54,49 @@ import org.xml.sax.helpers.XMLReaderFact * Utilities for working with JAXP and SAX. */ public class XmlUtil { -private static final DocumentBuilderFactory dbf; -private static final SAXTransformerFactory stf; - +/* Cache factory classes when this class is initialized (since Java1.5 factories are required + * to be thread safe). + * + * As JavaEE 5 requires JSTL to be provided by the container we use our ClassLoader to locate + * the implementations rather than the application's. As we don't know the actual implementation + * class in use we can't use the newInstance() variant that allows the ClassLoader to be + * specified so we use the no-arg form and coerce the TCCL (which may be restricted by the + * AccessController). + */ +private static final DocumentBuilderFactory PARSER_FACTORY; +private static final SAXTransformerFactory TRANSFORMER_FACTORY; static { -// from Java5 on DocumentBuilderFactory is thread safe and hence can be cached -dbf = DocumentBuilderFactory.newInstance(); -dbf.setNamespaceAware(true); -dbf.setValidating(false); try { -dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); +PARSER_FACTORY = runWithOurClassLoader(new CallableDocumentBuilderFactory() { +public DocumentBuilderFactory call() throws ParserConfigurationException { +return DocumentBuilderFactory.newInstance(); +} +}, ParserConfigurationException.class); +PARSER_FACTORY.setNamespaceAware(true); +PARSER_FACTORY.setValidating(false); +PARSER_FACTORY.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); } catch (ParserConfigurationException e) { -throw new AssertionError(Parser does not support secure processing); -} - -TransformerFactory tf = TransformerFactory.newInstance(); -if (!(tf instanceof SAXTransformerFactory)) { -throw new AssertionError(TransformerFactory does not support SAX); +throw new ExceptionInInitializerError(e); } try { -tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); +TRANSFORMER_FACTORY = runWithOurClassLoader(new CallableSAXTransformerFactory() { +public SAXTransformerFactory call() throws TransformerConfigurationException { +TransformerFactory tf = TransformerFactory.newInstance(); +if (!(tf instanceof SAXTransformerFactory)) { +throw new TransformerConfigurationException(TransformerFactory does not support SAX); +} +return (SAXTransformerFactory) tf; +} +}, TransformerConfigurationException.class); + TRANSFORMER_FACTORY.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); } catch (TransformerConfigurationException e) { -throw new AssertionError(TransformerFactory does not support secure processing); +throw new ExceptionInInitializerError(e); } -stf = (SAXTransformerFactory) tf; } - /** * Create a new empty document. * - * This method always allocates a new document as its root node might be - * exposed to other tags and potentially be mutated. - * * @return a new empty document */ static Document newEmptyDocument() { @@ -96,9 +110,9 @@ public class XmlUtil { */ static DocumentBuilder newDocumentBuilder() { try
svn commit: r1642609 - in /tomcat/taglibs/standard/trunk/impl/src: main/java/org/apache/taglibs/standard/tag/common/xml/ main/java/org/apache/taglibs/standard/util/ test/java/org/apache/taglibs/standa
Author: jboynes Date: Sun Nov 30 22:13:21 2014 New Revision: 1642609 URL: http://svn.apache.org/r1642609 Log: Move XmlUtil to util package as we can also use it from the TLVs Added: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java - copied, changed from r1642607, tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java Removed: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/ParseSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XalanUtil.java tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ExprSupportTest.java tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/JSTLVariableStackTest.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/ParseSupport.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/ParseSupport.java?rev=1642609r1=1642608r2=1642609view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/ParseSupport.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/ParseSupport.java Sun Nov 30 22:13:21 2014 @@ -32,6 +32,7 @@ import javax.xml.transform.sax.Transform import org.apache.taglibs.standard.resources.Resources; import org.apache.taglibs.standard.tag.common.core.Util; +import org.apache.taglibs.standard.util.XmlUtil; import org.w3c.dom.Document; import org.xml.sax.InputSource; import org.xml.sax.SAXException; Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java?rev=1642609r1=1642608r2=1642609view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java Sun Nov 30 22:13:21 2014 @@ -37,6 +37,7 @@ import javax.xml.transform.stream.Stream import org.apache.taglibs.standard.resources.Resources; import org.apache.taglibs.standard.tag.common.core.Util; import org.apache.taglibs.standard.util.UnclosableWriter; +import org.apache.taglibs.standard.util.XmlUtil; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.xml.sax.SAXException; Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XalanUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XalanUtil.java?rev=1642609r1=1642608r2=1642609view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XalanUtil.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XalanUtil.java Sun Nov 30 22:13:21 2014 @@ -21,6 +21,7 @@ import javax.servlet.jsp.tagext.Tag; import javax.servlet.jsp.tagext.TagSupport; import javax.xml.transform.TransformerException; +import org.apache.taglibs.standard.util.XmlUtil; import org.apache.xpath.VariableStack; import org.apache.xpath.XPathContext; import org.apache.xpath.objects.XBoolean; Copied: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java (from r1642607, tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java) URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java?p2=tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.javap1=tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.javar1=1642607r2=1642609rev=1642609view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org
svn commit: r1642613 - in /tomcat/taglibs/standard/trunk: impl/src/main/java/org/apache/taglibs/standard/tlv/ impl/src/main/java/org/apache/taglibs/standard/util/ spec/src/main/java/javax/servlet/jsp/
Author: jboynes Date: Sun Nov 30 23:32:00 2014 New Revision: 1642613 URL: http://svn.apache.org/r1642613 Log: JSTL TLVs use common parser Added: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java (with props) Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java?rev=1642613r1=1642612r2=1642613view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tlv/JstlBaseTLV.java Sun Nov 30 23:32:00 2014 @@ -18,6 +18,7 @@ package org.apache.taglibs.standard.tlv; import java.io.IOException; +import java.io.InputStream; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -30,13 +31,13 @@ import javax.servlet.jsp.tagext.PageData import javax.servlet.jsp.tagext.TagData; import javax.servlet.jsp.tagext.TagLibraryValidator; import javax.servlet.jsp.tagext.ValidationMessage; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; import org.apache.taglibs.standard.resources.Resources; +import org.apache.taglibs.standard.util.XmlUtil; import org.xml.sax.Attributes; +import org.xml.sax.InputSource; import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; /** @@ -149,11 +150,18 @@ public abstract class JstlBaseTLV extend DefaultHandler h = getHandler(); // parse the page -SAXParserFactory f = SAXParserFactory.newInstance(); -f.setValidating(false); -f.setNamespaceAware(true); -SAXParser p = f.newSAXParser(); -p.parse(page.getInputStream(), h); +XMLReader xmlReader = XmlUtil.newXMLReader(null); +xmlReader.setContentHandler(h); +InputStream inputStream = page.getInputStream(); +try { +xmlReader.parse(new InputSource(inputStream)); +} finally { +try { +inputStream.close(); +} catch (IOException e) { +// Suppressed. +} +} if (messageVector.size() == 0) { return null; @@ -163,8 +171,6 @@ public abstract class JstlBaseTLV extend } catch (SAXException ex) { return vmFromString(ex.toString()); -} catch (ParserConfigurationException ex) { -return vmFromString(ex.toString()); } catch (IOException ex) { return vmFromString(ex.toString()); } Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java?rev=1642613r1=1642612r2=1642613view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java Sun Nov 30 23:32:00 2014 @@ -167,6 +167,7 @@ public class XmlUtil { } }, SAXException.class); xmlReader.setEntityResolver(entityResolver); +xmlReader.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); return xmlReader; } Added: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java?rev=1642613view=auto == --- tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java (added) +++ tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java Sun Nov 30 23:32:00 2014 @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information
svn commit: r1642617 - in /tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv: PageParser.java ParserUtil.java PermittedTaglibsTLV.java ScriptFreeTLV.java
Author: jboynes Date: Mon Dec 1 02:08:41 2014 New Revision: 1642617 URL: http://svn.apache.org/r1642617 Log: JSTL TLVs need different namespace awareness Added: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java - copied, changed from r1642613, tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java Removed: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java Modified: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ScriptFreeTLV.java Copied: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java (from r1642613, tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java) URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java?p2=tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.javap1=tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.javar1=1642613r2=1642617rev=1642617view=diff == --- tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/ParserUtil.java (original) +++ tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PageParser.java Mon Dec 1 02:08:41 2014 @@ -35,14 +35,15 @@ import org.xml.sax.helpers.DefaultHandle /** * Support class for working with the SAX Parser. */ -class ParserUtil { +class PageParser { -private static final SAXParserFactory PARSER_FACTORY; -static { -PARSER_FACTORY = AccessController.doPrivileged(new PrivilegedActionSAXParserFactory() { +private final SAXParserFactory parserFactory; + +PageParser(boolean namespaceAware) { +parserFactory = AccessController.doPrivileged(new PrivilegedActionSAXParserFactory() { public SAXParserFactory run() { ClassLoader original = Thread.currentThread().getContextClassLoader(); -ClassLoader ours = ParserUtil.class.getClassLoader(); +ClassLoader ours = PageParser.class.getClassLoader(); try { if (original != ours) { Thread.currentThread().setContextClassLoader(ours); @@ -56,8 +57,9 @@ class ParserUtil { } }); try { -PARSER_FACTORY.setValidating(true); -PARSER_FACTORY.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); +parserFactory.setNamespaceAware(namespaceAware); +parserFactory.setValidating(false); +parserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); } catch (ParserConfigurationException e) { throw new ExceptionInInitializerError(e); } catch (SAXNotRecognizedException e) { @@ -67,11 +69,8 @@ class ParserUtil { } } -private ParserUtil() { -} - -static void parse(PageData pageData, DefaultHandler handler) throws ParserConfigurationException, SAXException, IOException { -SAXParser parser = PARSER_FACTORY.newSAXParser(); +void parse(PageData pageData, DefaultHandler handler) throws ParserConfigurationException, SAXException, IOException { +SAXParser parser = parserFactory.newSAXParser(); InputStream is = pageData.getInputStream(); try { parser.parse(is, handler); Modified: tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java?rev=1642617r1=1642616r2=1642617view=diff == --- tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java (original) +++ tomcat/taglibs/standard/trunk/spec/src/main/java/javax/servlet/jsp/jstl/tlv/PermittedTaglibsTLV.java Mon Dec 1 02:08:41 2014 @@ -17,7 +17,6 @@ package javax.servlet.jsp.jstl.tlv; import java.io.IOException; -import java.io.InputStream; import java.util.HashSet; import java.util.Set; import java.util.StringTokenizer; @@ -26,8 +25,6 @@ import javax.servlet.jsp.tagext.PageData import javax.servlet.jsp.tagext.TagLibraryValidator; import javax.servlet.jsp.tagext.ValidationMessage; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; @@ -52,17 +49,18 @@ public class PermittedTaglibsTLV extends // Constants // parameter names -private
svn commit: r1642442 - in /tomcat/taglibs/standard/trunk/impl/src: main/java/org/apache/taglibs/standard/tag/common/core/ main/java/org/apache/taglibs/standard/tag/common/xml/ main/java/org/apache/tag
Author: jboynes Date: Sat Nov 29 16:06:54 2014 New Revision: 1642442 URL: http://svn.apache.org/r1642442 Log: Refactor and consolidate XML processing Added: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java (with props) tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/UnclosableWriter.java (with props) tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/UrlUtil.java (with props) Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/RedirectSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/UrlSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/ParseSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XalanUtil.java tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ExprSupportTest.java tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/JSTLVariableStackTest.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java?rev=1642442r1=1642441r2=1642442view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/core/ImportSupport.java Sat Nov 29 16:06:54 2014 @@ -47,6 +47,7 @@ import javax.servlet.jsp.tagext.BodyTagS import javax.servlet.jsp.tagext.TryCatchFinally; import org.apache.taglibs.standard.resources.Resources; +import org.apache.taglibs.standard.util.UrlUtil; /** * pSupport for tag handlers for lt;importgt;, the general-purpose @@ -63,23 +64,6 @@ public abstract class ImportSupport exte // Public constants /** - * pValid characters in a scheme./p - * pRFC 1738 says the following:/p - * blockquote - * Scheme names consist of a sequence of characters. The lower - * case letters a--z, digits, and the characters plus (+), - * period (.), and hyphen (-) are allowed. For resiliency, - * programs interpreting URLs should treat upper case letters as - * equivalent to lower case in scheme names (e.g., allow HTTP as - * well as http). - * /blockquote - * pWe treat as absolute any URL that begins with such a scheme name, - * followed by a colon./p - */ -public static final String VALID_SCHEME_CHARS = - abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+.-; - -/** * Default character encoding for response. */ public static final String DEFAULT_ENCODING = ISO-8859-1; @@ -141,7 +125,7 @@ public abstract class ImportSupport exte } // Record whether our URL is absolute or relative -isAbsoluteUrl = isAbsoluteUrl(); +isAbsoluteUrl = UrlUtil.isAbsoluteUrl(url); try { // If we need to expose a Reader, we've got to do it right away @@ -579,47 +563,11 @@ public abstract class ImportSupport exte return urlWithParams; } -/** - * Returns tttrue/tt if our current URL is absolute, - * ttfalse/tt otherwise. - */ -private boolean isAbsoluteUrl() throws JspTagException { -return isAbsoluteUrl(url); -} - //* // Public utility methods /** - * Returns tttrue/tt if our current URL is absolute, - * ttfalse/tt otherwise. - */ -public static boolean isAbsoluteUrl(String url) { -// a null URL is not absolute, by our definition -if (url == null) { -return false; -} - -// do a fast, simple check first -int colonPos; -if ((colonPos = url.indexOf(:)) == -1) { -return false; -} - -// if we DO have a colon, make sure that every character -// leading up to it is a valid scheme character -for (int i = 0; i colonPos; i++) { -if (VALID_SCHEME_CHARS.indexOf(url.charAt(i)) == -1) { -return false
svn commit: r1642467 - /tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java
Author: jboynes Date: Sat Nov 29 19:34:16 2014 New Revision: 1642467 URL: http://svn.apache.org/r1642467 Log: Add benchmark to compare Xalan vs. JDK XPath speed. Xalan is still faster Modified: tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java Modified: tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java?rev=1642467r1=1642466r2=1642467view=diff == --- tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java Sat Nov 29 19:34:16 2014 @@ -20,7 +20,12 @@ import java.io.InputStream; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.IterationTag; +import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilder; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathFactory; +import javax.xml.xpath.XPathVariableResolver; import org.junit.Assert; import org.junit.Before; @@ -28,6 +33,7 @@ import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; +import org.apache.xml.dtm.DTMIterator; import org.apache.xpath.XPath; import org.apache.xpath.XPathContext; import org.apache.xpath.objects.XObject; @@ -35,9 +41,11 @@ import static org.easymock.EasyMock.crea import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertEquals; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; +import org.w3c.dom.NodeList; /** */ @@ -74,13 +82,13 @@ public class ForEachTagTest { XPathContext context = tag.getContext(); Assert.assertTrue(tag.hasNext()); Node one = (Node) tag.next(); -Assert.assertEquals(one, one.getTextContent()); +assertEquals(one, one.getTextContent()); Assert.assertTrue(tag.hasNext()); Node two = (Node) tag.next(); -Assert.assertEquals(two, two.getTextContent()); +assertEquals(two, two.getTextContent()); Assert.assertTrue(tag.hasNext()); Node three = (Node) tag.next(); -Assert.assertEquals(three, three.getTextContent()); +assertEquals(three, three.getTextContent()); Assert.assertFalse(tag.hasNext()); tag.doFinally(); Assert.assertTrue(context.getContextNodeListsStack().isEmpty()); @@ -99,17 +107,17 @@ public class ForEachTagTest { XPathContext context = tag.getContext(); tag.hasNext(); tag.next(); -Assert.assertEquals(3, last.execute(context, context.getCurrentNode(), null).str()); -Assert.assertEquals(one, dot.execute(context, context.getCurrentNode(), null).str()); -Assert.assertEquals(1, position.execute(context, context.getCurrentNode(), null).str()); +assertEquals(3, last.execute(context, context.getCurrentNode(), null).str()); +assertEquals(one, dot.execute(context, context.getCurrentNode(), null).str()); +assertEquals(1, position.execute(context, context.getCurrentNode(), null).str()); tag.hasNext(); tag.next(); -Assert.assertEquals(two, dot.execute(context, context.getCurrentNode(), null).str()); -Assert.assertEquals(2, position.execute(context, context.getCurrentNode(), null).str()); +assertEquals(two, dot.execute(context, context.getCurrentNode(), null).str()); +assertEquals(2, position.execute(context, context.getCurrentNode(), null).str()); tag.hasNext(); tag.next(); -Assert.assertEquals(three, dot.execute(context, context.getCurrentNode(), null).str()); -Assert.assertEquals(3, position.execute(context, context.getCurrentNode(), null).str()); +assertEquals(three, dot.execute(context, context.getCurrentNode(), null).str()); +assertEquals(3, position.execute(context, context.getCurrentNode(), null).str()); verify(pageContext); } @@ -117,15 +125,7 @@ public class ForEachTagTest { @Test public void testIterationPerformance() throws Exception { // create a large document -final int SIZE = 20; -test = XmlUtil.newEmptyDocument(); -Element root = test.createElement(root); -test.appendChild(root); -for (int i = 0; i SIZE; i++) { -Element child = test.createElement(a); -child.setTextContent(Integer.toString(i)); -root.appendChild(child); -} +test = newBenchmarkDocument
svn commit: r1642468 - in /tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml: TransformSupport.java XmlUtil.java
Author: jboynes Date: Sat Nov 29 19:38:29 2014 New Revision: 1642468 URL: http://svn.apache.org/r1642468 Log: Work around Xalan's newTransformer() method incorrectly returning null Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java?rev=1642468r1=1642467r2=1642468view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java Sat Nov 29 19:38:29 2014 @@ -121,8 +121,6 @@ public abstract class TransformSupport e t.setURIResolver(uriResolver); } catch (TransformerConfigurationException e) { throw new JspTagException(e); -} catch (RuntimeException e) { -throw e; } return EVAL_BODY_BUFFERED; } Modified: tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java?rev=1642468r1=1642467r2=1642468view=diff == --- tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/XmlUtil.java Sat Nov 29 19:38:29 2014 @@ -112,6 +112,8 @@ public class XmlUtil { static Transformer newTransformer(Source source) throws TransformerConfigurationException { Transformer transformer = stf.newTransformer(source); +// Although newTansformer() is not meant to, Xalan returns null if the XSLT is invalid +// rather than throwing TransformerConfigurationException. Trap that here. if (transformer == null) { throw new TransformerConfigurationException(newTransformer returned null); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1642472 - /tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java
Author: jboynes Date: Sat Nov 29 20:20:00 2014 New Revision: 1642472 URL: http://svn.apache.org/r1642472 Log: Add benchmark using Xalan's public XPath API. Has same DTM re-creation problem as JAXP XPath Modified: tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java Modified: tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java?rev=1642472r1=1642471r2=1642472view=diff == --- tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java (original) +++ tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java Sat Nov 29 20:20:00 2014 @@ -34,6 +34,7 @@ import org.junit.Ignore; import org.junit.Test; import org.apache.xml.dtm.DTMIterator; +import org.apache.xpath.CachedXPathAPI; import org.apache.xpath.XPath; import org.apache.xpath.XPathContext; import org.apache.xpath.objects.XObject; @@ -46,6 +47,7 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import org.w3c.dom.traversal.NodeIterator; /** */ @@ -141,11 +143,11 @@ public class ForEachTagTest { tag.doFinally(); } time += System.nanoTime(); -System.err.println(time = + time/100 + ms.); +System.err.println(time = + time / 100 + ms.); assertEquals(19, result.str()); } -@Ignore +@Ignore(Takes 1s to run) @Test public void xalanPerformance() throws Exception{ Document doc = newBenchmarkDocument(20); @@ -180,7 +182,30 @@ public class ForEachTagTest { assertEquals(19, result.str()); } -@Ignore +@Ignore(Takes 20s to run) +@Test +public void cachedAPIPerformance() throws Exception{ +Document doc = newBenchmarkDocument(20); +expect(pageContext.findAttribute(doc)).andStubReturn(doc); +replay(pageContext); + +Node result = null; +CachedXPathAPI api = new CachedXPathAPI(); +api.getXPathContext().setVarStack(new JSTLVariableStack(pageContext)); + +long time = -System.nanoTime(); +NodeIterator iterator = api.selectNodeIterator(XmlUtil.newEmptyDocument(), $doc/root/a); +Node node = iterator.nextNode(); +while (node != null) { +result = api.selectSingleNode(node, .); +node = iterator.nextNode(); +} +time += System.nanoTime(); +System.err.println(time = + time/100 + ms.); +assertEquals(19, result.getTextContent()); +} + +@Ignore(Takes 20s to run) @Test public void xpathPerformance() throws Exception { final Document doc = newBenchmarkDocument(20); - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1561535 - /tomcat/trunk/.gitignore
Author: jboynes Date: Sun Jan 26 19:23:55 2014 New Revision: 1561535 URL: http://svn.apache.org/r1561535 Log: add .idea project directory to git ignores Modified: tomcat/trunk/.gitignore Modified: tomcat/trunk/.gitignore URL: http://svn.apache.org/viewvc/tomcat/trunk/.gitignore?rev=1561535r1=1561534r2=1561535view=diff == --- tomcat/trunk/.gitignore (original) +++ tomcat/trunk/.gitignore Sun Jan 26 19:23:55 2014 @@ -28,6 +28,7 @@ mvn.properties .fbprefs .project .settings +.idea *.iml *.asc *.jj - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1559798 - /tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java
Author: jboynes Date: Mon Jan 20 18:22:16 2014 New Revision: 1559798 URL: http://svn.apache.org/r1559798 Log: Fix for NPE introduced by r1559707 that caused ELParser test to fail. Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1559798r1=1559797r2=1559798view=diff == --- tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java Mon Jan 20 18:22:16 2014 @@ -152,7 +152,7 @@ public class ELParser { if (hasNext()) { Token t2 = nextToken(); if (t2 instanceof Id) { -s1 = s2; +s1 = s2.trim(); s2 = t2.toString(); if (hasNext()) { curToken = nextToken(); @@ -161,7 +161,7 @@ public class ELParser { } } if (curToken.toChar() == '(') { -ELexpr.add(new ELNode.Function(s1.trim(), s2.trim())); +ELexpr.add(new ELNode.Function(s1, s2.trim())); return true; } curToken = original; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1559801 - /tomcat/trunk/java/javax/servlet/http/Cookie.java
Author: jboynes Date: Mon Jan 20 18:30:13 2014 New Revision: 1559801 URL: http://svn.apache.org/r1559801 Log: Refactor cookie name validation into a helper class to prepare for enabling RFC6265. This should have no functional change. Modified: tomcat/trunk/java/javax/servlet/http/Cookie.java Modified: tomcat/trunk/java/javax/servlet/http/Cookie.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/Cookie.java?rev=1559801r1=1559800r2=1559801view=diff == --- tomcat/trunk/java/javax/servlet/http/Cookie.java (original) +++ tomcat/trunk/java/javax/servlet/http/Cookie.java Mon Jan 20 18:30:13 2014 @@ -54,53 +54,26 @@ import java.util.ResourceBundle; */ public class Cookie implements Cloneable, Serializable { -private static final BitSet allowed; +private static final CookieNameValidator validation; static { -boolean STRICT_SERVLET_COMPLIANCE = - Boolean.getBoolean(org.apache.catalina.STRICT_SERVLET_COMPLIANCE); - -boolean STRICT_NAMING = - getBoolean(org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING, -STRICT_SERVLET_COMPLIANCE); - -String separators; -if (STRICT_NAMING) { -separators = ()@,;:\\\/[]?={} \t; // separators as defined by RFC2616 2.2 -} -else { -separators = ,; ; // semi-colon, comma and space as defined by Netscape -} - -allowed = new BitSet(128); -allowed.set(0x20, 0x7f); // any CHAR except CTLs or separators -for (int i = 0; i separators.length(); i++) { -char ch = separators.charAt(i); -allowed.clear(ch); +boolean strictNaming; +String prop = System.getProperty(org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING); +if (prop != null) { +strictNaming = Boolean.parseBoolean(prop); +} else { +strictNaming = Boolean.getBoolean(org.apache.catalina.STRICT_SERVLET_COMPLIANCE); } -// special treatment to allow for FWD_SLASH_IS_SEPARATOR property -if (STRICT_NAMING) { -boolean FWD_SLASH_IS_SEPARATOR = - getBoolean(org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR, - STRICT_SERVLET_COMPLIANCE); -allowed.set('/', !FWD_SLASH_IS_SEPARATOR); +if (strictNaming) { +validation = new RFC2109Validator(); } -} - -private static boolean getBoolean(String prop, boolean def) { -String value = System.getProperty(prop); -if (value == null) { -return def; -} else { -return Boolean.parseBoolean(value); +else { +validation = new NetscapeValidator(); } } private static final long serialVersionUID = 1L; -private static final String LSTRING_FILE = javax.servlet.http.LocalStrings; -private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE); - private final String name; private String value; @@ -144,39 +117,11 @@ public class Cookie implements Cloneable * @see #setVersion */ public Cookie(String name, String value) { -if (name == null || name.length() == 0) { -throw new IllegalArgumentException(lStrings.getString(err.cookie_name_blank)); -} -if (!isToken(name) || -name.equalsIgnoreCase(Comment) || -name.equalsIgnoreCase(Discard) || -name.equalsIgnoreCase(Domain) || -name.equalsIgnoreCase(Expires) || -name.equalsIgnoreCase(Max-Age) || -name.equalsIgnoreCase(Path) || -name.equalsIgnoreCase(Secure) || -name.equalsIgnoreCase(Version) || -name.startsWith($)) { -String errMsg = lStrings.getString(err.cookie_name_is_token); -throw new IllegalArgumentException(MessageFormat.format(errMsg, name)); -} - +validation.validate(name); this.name = name; this.value = value; } -private boolean isToken(String possibleToken) { -int len = possibleToken.length(); - -for (int i = 0; i len; i++) { -char c = possibleToken.charAt(i); -if (!allowed.get(c)) { -return false; -} -} -return true; -} - /** * Specifies a comment that describes a cookie's purpose. The comment is * useful if the browser presents the cookie to the user. Comments are not @@ -435,3 +380,79 @@ public class Cookie implements Cloneable return httpOnly; } } + + +class CookieNameValidator { +private static final String LSTRING_FILE = javax.servlet.http.LocalStrings; +private static final ResourceBundle lStrings = ResourceBundle.getBundle
svn commit: r1559820 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/jasper/compiler/ELParser.java
Author: jboynes Date: Mon Jan 20 20:07:23 2014 New Revision: 1559820 URL: http://svn.apache.org/r1559820 Log: merge fix for potential NPE Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java Propchange: tomcat/tc7.0.x/trunk/ -- Merged /tomcat/trunk:r1559798 Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1559820r1=1559819r2=1559820view=diff == --- tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java Mon Jan 20 20:07:23 2014 @@ -154,7 +154,7 @@ public class ELParser { if (hasNext()) { Token t2 = nextToken(); if (t2 instanceof Id) { -s1 = s2; +s1 = s2.trim(); s2 = t2.toString(); if (hasNext()) { curToken = nextToken(); @@ -163,7 +163,7 @@ public class ELParser { } } if (curToken.toChar() == '(') { -ELexpr.add(new ELNode.Function(s1.trim(), s2.trim())); +ELexpr.add(new ELNode.Function(s1, s2.trim())); return true; } curToken = original; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1559525 - /tomcat/taglibs/site/src/site/xdoc/index.xml
Author: jboynes Date: Sun Jan 19 16:55:17 2014 New Revision: 1559525 URL: http://svn.apache.org/r1559525 Log: fix broken link Modified: tomcat/taglibs/site/src/site/xdoc/index.xml Modified: tomcat/taglibs/site/src/site/xdoc/index.xml URL: http://svn.apache.org/viewvc/tomcat/taglibs/site/src/site/xdoc/index.xml?rev=1559525r1=1559524r2=1559525view=diff == --- tomcat/taglibs/site/src/site/xdoc/index.xml (original) +++ tomcat/taglibs/site/src/site/xdoc/index.xml Sun Jan 19 16:55:17 2014 @@ -47,7 +47,7 @@ table border=0 cellspacing=5 cellpadding=5 width=100% trtd bgcolor=#CCbfont size=-12014/01/02/font/b/tdtd bgcolor=#CCfont size=-1 -[a href=../standard/Standard/a] +[a href=standard/Standard/a] /fontfont size=-1 The Apache Standard Taglib 1.2.1, an implementation of JSTL 1.2, has been released. /font/td/tr - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1559526 - /tomcat/site/trunk/docs/taglibs/index.html
Author: jboynes Date: Sun Jan 19 16:57:35 2014 New Revision: 1559526 URL: http://svn.apache.org/r1559526 Log: manual fix for broken link Modified: tomcat/site/trunk/docs/taglibs/index.html Modified: tomcat/site/trunk/docs/taglibs/index.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/taglibs/index.html?rev=1559526r1=1559525r2=1559526view=diff == --- tomcat/site/trunk/docs/taglibs/index.html (original) +++ tomcat/site/trunk/docs/taglibs/index.html Sun Jan 19 16:57:35 2014 @@ -159,7 +159,7 @@ tr class=a td bgcolor=#CCbfont size=-12014/01/02/font/b/td td bgcolor=#CCfont size=-1 -[a href=../standard/Standard/a] +[a href=standard/Standard/a] /fontfont size=-1 The Apache Standard Taglib 1.2.1, an implementation of JSTL 1.2, has been released. /font/td/tr - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1559363 - /tomcat/trunk/java/javax/servlet/http/Cookie.java
Author: jboynes Date: Sat Jan 18 16:58:14 2014 New Revision: 1559363 URL: http://svn.apache.org/r1559363 Log: Cosmetic cleanup - no functional change. Modified: tomcat/trunk/java/javax/servlet/http/Cookie.java Modified: tomcat/trunk/java/javax/servlet/http/Cookie.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/Cookie.java?rev=1559363r1=1559362r2=1559363view=diff == --- tomcat/trunk/java/javax/servlet/http/Cookie.java (original) +++ tomcat/trunk/java/javax/servlet/http/Cookie.java Sat Jan 18 16:58:14 2014 @@ -56,27 +56,21 @@ public class Cookie implements Cloneable private static final long serialVersionUID = 1L; private static final String LSTRING_FILE = javax.servlet.http.LocalStrings; -private static final ResourceBundle lStrings = -ResourceBundle.getBundle(LSTRING_FILE); +private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE); -// -// The value of the cookie itself. -// +private final String name; +private String value; -private final String name; // NAME= ... $Name style is reserved -private String value; // value of NAME +private int version = 0; // ;Version=1 ... means RFC 2109 style // // Attributes encoded in the header's cookie fields. // - private String comment; // ;Comment=VALUE ... describes cookie's use -// ;Discard ... implied by maxAge 0 private String domain; // ;Domain=VALUE ... domain that sees cookie private int maxAge = -1; // ;Max-Age=VALUE ... cookies auto-expire private String path; // ;Path=VALUE ... URLs that see the cookie private boolean secure; // ;Secure ... e.g. use SSL -private int version = 0; // ;Version=1 ... means RFC 2109++ style private boolean httpOnly; // Not in cookie specs, but supported by browsers /** @@ -108,26 +102,20 @@ public class Cookie implements Cloneable */ public Cookie(String name, String value) { if (name == null || name.length() == 0) { -throw new IllegalArgumentException( -lStrings.getString(err.cookie_name_blank)); +throw new IllegalArgumentException(lStrings.getString(err.cookie_name_blank)); } if (!isToken(name) || -name.equalsIgnoreCase(Comment) // rfc2019 -|| -name.equalsIgnoreCase(Discard) // 2019++ -|| +name.equalsIgnoreCase(Comment) || +name.equalsIgnoreCase(Discard) || name.equalsIgnoreCase(Domain) || -name.equalsIgnoreCase(Expires) // (old cookies) -|| -name.equalsIgnoreCase(Max-Age) // rfc2019 -|| name.equalsIgnoreCase(Path) || +name.equalsIgnoreCase(Expires) || +name.equalsIgnoreCase(Max-Age) || +name.equalsIgnoreCase(Path) || name.equalsIgnoreCase(Secure) || -name.equalsIgnoreCase(Version) || name.startsWith($)) { +name.equalsIgnoreCase(Version) || +name.startsWith($)) { String errMsg = lStrings.getString(err.cookie_name_is_token); -Object[] errArgs = new Object[1]; -errArgs[0] = name; -errMsg = MessageFormat.format(errMsg, errArgs); -throw new IllegalArgumentException(errMsg); +throw new IllegalArgumentException(MessageFormat.format(errMsg, name)); } this.name = name; @@ -355,11 +343,6 @@ public class Cookie implements Cloneable version = v; } -// Note -- disabled for now to allow full Netscape compatibility -// from RFC 2068, token special case characters -// -// private static final String tspecials = ()@,;:\\\/[]?={} \t; - private static final String tspecials = ,; ; private static final String tspecials2NoSlash = ()@,;:\\\[]?={} \t; private static final String tspecials2WithSlash = tspecials2NoSlash + /; @@ -397,8 +380,7 @@ public class Cookie implements Cloneable if (fwdSlashIsSeparator == null) { FWD_SLASH_IS_SEPARATOR = STRICT_SERVLET_COMPLIANCE; } else { -FWD_SLASH_IS_SEPARATOR = -Boolean.valueOf(fwdSlashIsSeparator).booleanValue(); +FWD_SLASH_IS_SEPARATOR = Boolean.valueOf(fwdSlashIsSeparator).booleanValue(); } if (FWD_SLASH_IS_SEPARATOR) { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1559392 - /tomcat/trunk/java/javax/servlet/http/Cookie.java
Author: jboynes Date: Sat Jan 18 19:02:48 2014 New Revision: 1559392 URL: http://svn.apache.org/r1559392 Log: Refactor check for characters allowed in a Cookie name to use a BitSet rather than searching through a String. Modified: tomcat/trunk/java/javax/servlet/http/Cookie.java Modified: tomcat/trunk/java/javax/servlet/http/Cookie.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/Cookie.java?rev=1559392r1=1559391r2=1559392view=diff == --- tomcat/trunk/java/javax/servlet/http/Cookie.java (original) +++ tomcat/trunk/java/javax/servlet/http/Cookie.java Sat Jan 18 19:02:48 2014 @@ -18,6 +18,7 @@ package javax.servlet.http; import java.io.Serializable; import java.text.MessageFormat; +import java.util.BitSet; import java.util.Locale; import java.util.ResourceBundle; @@ -53,6 +54,48 @@ import java.util.ResourceBundle; */ public class Cookie implements Cloneable, Serializable { +private static final BitSet allowed; +static { +boolean STRICT_SERVLET_COMPLIANCE = + Boolean.getBoolean(org.apache.catalina.STRICT_SERVLET_COMPLIANCE); + +boolean STRICT_NAMING = + getBoolean(org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING, +STRICT_SERVLET_COMPLIANCE); + +String separators; +if (STRICT_NAMING) { +separators = ()@,;:\\\/[]?={} \t; // separators as defined by RFC2616 2.2 +} +else { +separators = ,; ; // semi-colon, comma and space as defined by Netscape +} + +allowed = new BitSet(128); +allowed.set(0x20, 0x7f); // any CHAR except CTLs or separators +for (int i = 0; i separators.length(); i++) { +char ch = separators.charAt(i); +allowed.clear(ch); +} + +// special treatment to allow for FWD_SLASH_IS_SEPARATOR property +if (STRICT_NAMING) { +boolean FWD_SLASH_IS_SEPARATOR = + getBoolean(org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR, + STRICT_SERVLET_COMPLIANCE); +allowed.set('/', !FWD_SLASH_IS_SEPARATOR); +} +} + +private static boolean getBoolean(String prop, boolean def) { +String value = System.getProperty(prop); +if (value == null) { +return def; +} else { +return Boolean.parseBoolean(value); +} +} + private static final long serialVersionUID = 1L; private static final String LSTRING_FILE = javax.servlet.http.LocalStrings; @@ -122,6 +165,18 @@ public class Cookie implements Cloneable this.value = value; } +private boolean isToken(String possibleToken) { +int len = possibleToken.length(); + +for (int i = 0; i len; i++) { +char c = possibleToken.charAt(i); +if (!allowed.get(c)) { +return false; +} +} +return true; +} + /** * Specifies a comment that describes a cookie's purpose. The comment is * useful if the browser presents the cookie to the user. Comments are not @@ -343,83 +398,6 @@ public class Cookie implements Cloneable version = v; } -private static final String tspecials = ,; ; -private static final String tspecials2NoSlash = ()@,;:\\\[]?={} \t; -private static final String tspecials2WithSlash = tspecials2NoSlash + /; -private static final String tspecials2; - -/** - * If set to true, we parse cookies strictly according to the servlet, - * cookie and HTTP specs by default. - */ -private static final boolean STRICT_SERVLET_COMPLIANCE; - -/** - * If set to true, the code//code character will be treated as a - * separator. Default is usually false. If STRICT_SERVLET_COMPLIANCE==true - * then default is true. Explicitly setting always takes priority. - */ -private static final boolean FWD_SLASH_IS_SEPARATOR; - -/** - * If set to true, enforce the cookie naming rules in the spec that require - * no separators in the cookie name. Default is usually false. If - * STRICT_SERVLET_COMPLIANCE==true then default is true. Explicitly setting - * always takes priority. - */ -private static final boolean STRICT_NAMING; - -static { -STRICT_SERVLET_COMPLIANCE = Boolean.valueOf( -System.getProperty( -org.apache.catalina.STRICT_SERVLET_COMPLIANCE, -false)).booleanValue(); - -String fwdSlashIsSeparator = System.getProperty( - org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR); -if (fwdSlashIsSeparator == null) { -FWD_SLASH_IS_SEPARATOR = STRICT_SERVLET_COMPLIANCE; -} else { -FWD_SLASH_IS_SEPARATOR = Boolean.valueOf(fwdSlashIsSeparator
svn commit: r1559152 - /tomcat/tc6.0.x/trunk/STATUS.txt
Author: jboynes Date: Fri Jan 17 15:34:22 2014 New Revision: 1559152 URL: http://svn.apache.org/r1559152 Log: votes Modified: tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1559152r1=1559151r2=1559152view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Jan 17 15:34:22 2014 @@ -41,13 +41,13 @@ PATCHES PROPOSED TO BACKPORT: Patch by Juan Carlos Estibariz. https://svn.apache.org/r1558894 https://svn.apache.org/r1558917 - +1: markt, kkolinko + +1: markt, kkolinko, jboynes -1: * Update JSTL JARs to 1.1.2 (same as Tomcat 7) with an svn cp from Tomcat 7. Fixes various validation issues when using the examples web application with validation enabled. - +1: markt, kkolinko + +1: markt, kkolinko, jboynes -1: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1557558 - /tomcat/taglibs/site/NOTICE.txt
Author: jboynes Date: Sun Jan 12 16:55:13 2014 New Revision: 1557558 URL: http://svn.apache.org/r1557558 Log: remove reference to Jakarta Modified: tomcat/taglibs/site/NOTICE.txt Modified: tomcat/taglibs/site/NOTICE.txt URL: http://svn.apache.org/viewvc/tomcat/taglibs/site/NOTICE.txt?rev=1557558r1=1557557r2=1557558view=diff == --- tomcat/taglibs/site/NOTICE.txt (original) +++ tomcat/taglibs/site/NOTICE.txt Sun Jan 12 16:55:13 2014 @@ -1,4 +1,4 @@ -Apache Jakarta Taglib Website +Apache Taglibs Website Copyright 2009-2014 The Apache Software Foundation This product includes software developed at - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1557466 - /tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java
Author: jboynes Date: Sat Jan 11 20:47:04 2014 New Revision: 1557466 URL: http://svn.apache.org/r1557466 Log: Refactor cookie parsing tests into individual test cases Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java?rev=1557466r1=1557465r2=1557466view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java Sat Jan 11 20:47:04 2014 @@ -17,251 +17,198 @@ package org.apache.tomcat.util.http; +import java.nio.charset.StandardCharsets; + +import javax.servlet.http.Cookie; + +import org.junit.Assert; import org.junit.Test; public class TestCookies { +private Cookie FOO = new Cookie(foo, bar); +private Cookie BAR = new Cookie(bar, rab); +private Cookie A = new Cookie(a, b); @Test -public void testCookies() throws Exception { -test(foo=bar; a=b, foo, bar, a, b); -test(foo=bar;a=b, foo, bar, a, b); -test(foo=bar;a=b;, foo, bar, a, b); -test(foo=bar;a=b; , foo, bar, a, b); -test(foo=bar;a=b; ;, foo, bar, a, b); -test(foo=;a=b; ;, a, b); -test(foo;a=b; ;, a, b); -// v1 -test($Version=1; foo=bar;a=b, foo, bar, a, b); - -// OK -test($Version=1;foo=bar;a=b; ; , foo, bar, a, b); -test($Version=1;foo=;a=b; ; , a, b); -test($Version=1;foo= ;a=b; ; , a, b); -test($Version=1;foo;a=b; ; , a, b); -test($Version=1;foo=\bar\;a=b; ; , foo, bar, a, b); - -test($Version=1;foo=\bar\;$Domain=apache.org;a=b, foo, bar, a, b); - test($Version=1;foo=\bar\;$Domain=apache.org;a=b;$Domain=yahoo.com, foo, bar, a, b); -// rfc2965 -test($Version=1;foo=\bar\;$Domain=apache.org;$Port=8080;a=b, foo, bar, a, b); - -// make sure these never split into two cookies - JVK -test($Version=1;foo=\b\ar\;$Domain=apache.org;$Port=8080;a=b, foo, b, a, b); // Incorrectly escaped. -test($Version=1;foo=\b\\\ar\;$Domain=apache.org;$Port=8080;a=b, foo, b\ar, a, b); // correctly escaped. -test($Version=1;foo=\b'ar\;$Domain=apache.org;$Port=8080;a=b, foo, b'ar, a, b); -// ba'r is OK - ' is not a separator -test($Version=1;foo=b'ar;$Domain=apache.org;$Port=8080;a=b, foo, b'ar, a, b); - -// Ends in quoted value -test(foo=bar;a=\b\, foo, bar, a, b); -test(foo=bar;a=\b\;, foo, bar, a, b); - -// Last character is an escape character - test($Version=1;foo=b'ar;$Domain=\apache.org\;$Port=8080;a=\b\\\, foo, b'ar); -test($Version=1;foo=b'ar;$Domain=\apache.org\;$Port=8080;a=\b\\, foo, b'ar); - -// A token cannot be quoted with ' chars - they should be treated as part of the value -test($Version=\1\; foo='bar'; $Path=/path; $Domain=\localhost\, foo, 'bar'); - -// wrong, path should not have '/' JVK -test($Version=1;foo=\bar\;$Path=/examples;a=b; ; , foo, bar, a, b); - -// wrong -test($Version=1;foo=\bar\;$Domain=apache.org;$Port=8080;a=b, foo, bar, a, b); - -// Test name-only at the end of the header -test(foo;a=b;bar, a, b); -test(foo;a=b;bar;, a, b); -test(foo;a=b;bar , a, b); -test(foo;a=b;bar ;, a, b); - -// Multiple delimiters next to each other - -// BUG -- the ' ' needs to be skipped. -test(foo;a=b; ;bar, a, b); -// BUG -- ';' needs skipping -test(foo;a=b;;bar, a, b); -test(foo;a=b; ;;bar=rab, a, b, bar, rab); -// These pass currently -test(foo;a=b;; ;bar=rab, a, b, bar, rab); - -// '#' is a valid cookie name (not a separator) -test(foo;a=b;;#;bar=rab,a, b, bar, rab); - - -test(foo;a=b;;\\;bar=rab, a, b, bar, rab); - -// Try all the separators of version1 in version0 cookie. -// Won't work we only parse version1 cookie result 1 cookie. -test(a=()@:\\\/[]?={}\t; foo=bar, foo, bar); - -// Test the version. -test($Version=1;foo=bar, 1); -test($Version=0;foo=bar, 0); +public void testBasicCookie() { +test(foo=bar; a=b, FOO, A); +test(foo=bar;a=b, FOO, A); +test(foo=bar;a=b;, FOO, A); +test(foo=bar;a=b; , FOO, A); +test(foo=bar;a=b; ;, FOO, A); } @Test -public void testNameOnlyCookies() throws Exception { +public void testNameOnlyAreDropped() { +test(foo=;a=b; ;, A); +test(foo;a=b; ;, A); +test(foo;a=b;bar, A); +test(foo;a=b;bar;, A); +test(foo;a=b;bar , A); +test(foo;a=b;bar ;, A); + // Bug 49000 -test(fred=1; jim=2; bob, fred, 1, jim, 2); -test(fred=1
svn commit: r1557017 - in /tomcat/trunk/test/org/apache/tomcat/util/http: TestSetCookieSupport.java TestSetCookieSupportSeparatorsAllowed.java
Author: jboynes Date: Fri Jan 10 03:08:28 2014 New Revision: 1557017 URL: http://svn.apache.org/r1557017 Log: add tests for setting v1 cookie values Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java?rev=1557017r1=1557016r2=1557017view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java Fri Jan 10 03:08:28 2014 @@ -33,6 +33,7 @@ public class TestSetCookieSupport { @Test public void v0NullValue() { Cookie cookie = new Cookie(foo, null); +// should this throw an IAE? //Assert.assertEquals(foo=, SetCookieSupport.generateHeader(cookie)); Assert.assertEquals(foo=\\, SetCookieSupport.generateHeader(cookie)); } @@ -109,4 +110,95 @@ public class TestSetCookieSupport { //Assert.assertEquals(foo=a\b\\c, SetCookieSupport.generateHeader(cookie)); Assert.assertEquals(foo=\a\\\bc\; Version=1, SetCookieSupport.generateHeader(cookie)); } + +@Test +public void v1simpleCookie() { +Cookie cookie = new Cookie(foo, bar); +cookie.setVersion(1); +Assert.assertEquals(foo=bar; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v1NullValue() { +Cookie cookie = new Cookie(foo, null); +cookie.setVersion(1); +// should this throw an IAE? +Assert.assertEquals(foo=\\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v1QuotedValue() { +Cookie cookie = new Cookie(foo, \bar\); +cookie.setVersion(1); +// should this be escaping the quotes rather than passing through? +Assert.assertEquals(foo=\bar\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v1ValueContainsSemicolon() { +Cookie cookie = new Cookie(foo, a;b); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\a;b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v1ValueContainsComma() { +Cookie cookie = new Cookie(foo, a,b); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\a,b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v1ValueContainsSpace() { +Cookie cookie = new Cookie(foo, a b); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\a b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v1ValueContainsEquals() { +Cookie cookie = new Cookie(foo, a=b); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\a=b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v1ValueContainsQuote() { +Cookie cookie = new Cookie(foo, a\b); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\a\\\b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Ignore(bug 55975) +@Test +public void v1ValueContainsNonV0Separator() { +Cookie cookie = new Cookie(foo, a()@,;:\\\/[]?={}b); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\a()@,;:\\\/[]?={}b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Ignore(bug 55975) +@Test +public void v1ValueContainsBackslash() { +Cookie cookie = new Cookie(foo, a\\b); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\ab\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + + +@Ignore(bug 55975) +@Test +public void v1ValueContainsBackslashAndQuote() { +Cookie cookie = new Cookie(foo, a\b\\c); +cookie.setVersion(1); +// should this be throwing IAE rather than adding quotes? +Assert.assertEquals(foo=\a\\\bc\; Version=1, SetCookieSupport.generateHeader(cookie)); +} } Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http
svn commit: r1556276 - in /tomcat/trunk/test/javax/servlet/http: TestCookie.java TestCookieStrict.java
Author: jboynes Date: Tue Jan 7 17:00:06 2014 New Revision: 1556276 URL: http://svn.apache.org/r1556276 Log: Add test cases for name checks in spec Cookie class Added: tomcat/trunk/test/javax/servlet/http/TestCookie.java (with props) tomcat/trunk/test/javax/servlet/http/TestCookieStrict.java (with props) Added: tomcat/trunk/test/javax/servlet/http/TestCookie.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/javax/servlet/http/TestCookie.java?rev=1556276view=auto == --- tomcat/trunk/test/javax/servlet/http/TestCookie.java (added) +++ tomcat/trunk/test/javax/servlet/http/TestCookie.java Tue Jan 7 17:00:06 2014 @@ -0,0 +1,150 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package javax.servlet.http; + +import java.util.BitSet; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +/** + * Basic tests for Cookie in default configuration. + */ +public class TestCookie { +public static final BitSet CHAR; // any US-ASCII character (octets 0 - 127) +public static final BitSet CTL; // any US-ASCII control character (octets 0 - 31) and DEL (127) +public static final BitSet SEPARATORS; +public static final BitSet TOKEN; // 1*any CHAR except CTLs or separators + +public static final BitSet NETSCAPE_NAME; // any character except comma, semicolon and whitespace + +static { +CHAR = new BitSet(256); +CHAR.set(0, 128); + +CTL = new BitSet(256); +CTL.set(0, 32); +CTL.set(127); + +SEPARATORS = new BitSet(256); +for (char ch : ()@,;:\\\/[]?={} \t.toCharArray()) { +SEPARATORS.set(ch); +} + +TOKEN = new BitSet(256); +TOKEN.or(CHAR); // any CHAR +TOKEN.andNot(CTL); // except CTLs +TOKEN.andNot(SEPARATORS); // or separators + +NETSCAPE_NAME = new BitSet(256); +NETSCAPE_NAME.or(CHAR); +NETSCAPE_NAME.andNot(CTL); +NETSCAPE_NAME.clear(';'); +NETSCAPE_NAME.clear(','); +NETSCAPE_NAME.clear(' '); +} + +@Test +public void testDefaults() { +Cookie cookie = new Cookie(foo, null); +Assert.assertEquals(foo, cookie.getName()); +Assert.assertNull(cookie.getValue()); +Assert.assertEquals(0, cookie.getVersion()); +Assert.assertEquals(-1, cookie.getMaxAge()); +} + +@Test +public void testInitialValue() { +Cookie cookie = new Cookie(foo, bar); +Assert.assertEquals(foo, cookie.getName()); +Assert.assertEquals(bar, cookie.getValue()); +Assert.assertEquals(0, cookie.getVersion()); +} + +@Test +public void actualCharactersAllowedInName() { +checkCharInName(NETSCAPE_NAME); +} + +@Test(expected = IllegalArgumentException.class) +public void leadingDollar() { +new Cookie($Version, null); +} + +@Test(expected = IllegalArgumentException.class) +public void tokenVersion() { +new Cookie(Version, null); +} + +@Test(expected = IllegalArgumentException.class) +public void attributeVersion() { +new Cookie(Comment, null); +} + +@Test(expected = IllegalArgumentException.class) +public void attributeDiscard() { +new Cookie(Discard, null); +} + +@Test(expected = IllegalArgumentException.class) +public void attributeExpires() { +new Cookie(Expires, null); +} + +@Test(expected = IllegalArgumentException.class) +public void attributeMaxAge() { +new Cookie(Max-Age, null); +} + +@Test(expected = IllegalArgumentException.class) +public void attributeDomain() { +new Cookie(Domain, null); +} + +@Test(expected = IllegalArgumentException.class) +public void attributePath() { +new Cookie(Path, null); +} + +@Test(expected = IllegalArgumentException.class) +public void attributeSecure() { +new Cookie(Secure, null); +} + +@Ignore(HttpOnly is not checked for) +@Test(expected = IllegalArgumentException.class) +public void attributeHttpOnly() { +new Cookie(HttpOnly, null); +} + +public static
svn commit: r1556313 - /tomcat/trunk/test/javax/servlet/http/TestCookieStrict.java
Author: jboynes Date: Tue Jan 7 18:52:02 2014 New Revision: 1556313 URL: http://svn.apache.org/r1556313 Log: fix test after switching from STRICT_SERVLET to more specific properties Modified: tomcat/trunk/test/javax/servlet/http/TestCookieStrict.java Modified: tomcat/trunk/test/javax/servlet/http/TestCookieStrict.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/javax/servlet/http/TestCookieStrict.java?rev=1556313r1=1556312r2=1556313view=diff == --- tomcat/trunk/test/javax/servlet/http/TestCookieStrict.java (original) +++ tomcat/trunk/test/javax/servlet/http/TestCookieStrict.java Tue Jan 7 18:52:02 2014 @@ -24,7 +24,8 @@ import org.junit.Test; */ public class TestCookieStrict { static { -System.setProperty(org.apache.catalina.STRICT_NAMING, true); + System.setProperty(org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING, true); + System.setProperty(org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR, true); } @Test - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1556328 - in /tomcat/trunk/java/org/apache: catalina/connector/Response.java tomcat/util/http/ServerCookie.java tomcat/util/http/SetCookieSupport.java
Author: jboynes Date: Tue Jan 7 19:21:20 2014 New Revision: 1556328 URL: http://svn.apache.org/r1556328 Log: Refactor ServerCookie to separate cookie state from the helper code used to generate the header. This change is purely a movement of code to improve readability. ServerCookie is now a pure data object holding MessageBytes, typically resulting from the parse of the Cookie header done by Cookies. The appendCookieValue static helper method is moved to a new class, SetCookieSupport, that Response uses when addCookie is called. Added: tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java (with props) Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Response.java?rev=1556328r1=1556327r2=1556328view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/Response.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Response.java Tue Jan 7 19:21:20 2014 @@ -49,7 +49,7 @@ import org.apache.tomcat.util.buf.CharCh import org.apache.tomcat.util.buf.UEncoder; import org.apache.tomcat.util.http.FastHttpDateFormat; import org.apache.tomcat.util.http.MimeHeaders; -import org.apache.tomcat.util.http.ServerCookie; +import org.apache.tomcat.util.http.SetCookieSupport; import org.apache.tomcat.util.http.parser.MediaTypeCache; import org.apache.tomcat.util.net.URL; import org.apache.tomcat.util.res.StringManager; @@ -913,21 +913,21 @@ public class Response AccessController.doPrivileged(new PrivilegedActionVoid() { @Override public Void run(){ -ServerCookie.appendCookieValue -(sb, cookie.getVersion(), cookie.getName(), - cookie.getValue(), cookie.getPath(), - cookie.getDomain(), cookie.getComment(), - cookie.getMaxAge(), cookie.getSecure(), - cookie.isHttpOnly()); +SetCookieSupport.appendCookieValue +(sb, cookie.getVersion(), cookie.getName(), +cookie.getValue(), cookie.getPath(), +cookie.getDomain(), cookie.getComment(), +cookie.getMaxAge(), cookie.getSecure(), +cookie.isHttpOnly()); return null; } }); } else { -ServerCookie.appendCookieValue -(sb, cookie.getVersion(), cookie.getName(), cookie.getValue(), - cookie.getPath(), cookie.getDomain(), cookie.getComment(), - cookie.getMaxAge(), cookie.getSecure(), - cookie.isHttpOnly()); +SetCookieSupport.appendCookieValue +(sb, cookie.getVersion(), cookie.getName(), cookie.getValue(), +cookie.getPath(), cookie.getDomain(), cookie.getComment(), +cookie.getMaxAge(), cookie.getSecure(), +cookie.isHttpOnly()); } return sb; } Modified: tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java?rev=1556328r1=1556327r2=1556328view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/ServerCookie.java Tue Jan 7 19:21:20 2014 @@ -17,12 +17,6 @@ package org.apache.tomcat.util.http; import java.io.Serializable; -import java.text.DateFormat; -import java.text.FieldPosition; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; -import java.util.TimeZone; import org.apache.tomcat.util.buf.MessageBytes; @@ -51,30 +45,9 @@ public class ServerCookie implements Ser private final MessageBytes comment=MessageBytes.newInstance(); private int version = 0; -// Other fields -private static final String OLD_COOKIE_PATTERN = -EEE, dd-MMM- HH:mm:ss z; -private static final ThreadLocalDateFormat OLD_COOKIE_FORMAT = -new ThreadLocalDateFormat() { -@Override -protected DateFormat initialValue() { -DateFormat df = -new SimpleDateFormat(OLD_COOKIE_PATTERN, Locale.US); -df.setTimeZone(TimeZone.getTimeZone(GMT)); -return df; -} -}; -private static final String ancientDate; +// Note: Servlet Spec = 3.0 only refers to Netscape and RFC2109
svn commit: r1556418 - in /tomcat/trunk/java/org/apache: catalina/connector/Response.java tomcat/util/http/SetCookieSupport.java
Author: jboynes Date: Wed Jan 8 01:10:34 2014 New Revision: 1556418 URL: http://svn.apache.org/r1556418 Log: Simplify interface to SetCookieSupport. Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Response.java?rev=1556418r1=1556417r2=1556418view=diff == --- tomcat/trunk/java/org/apache/catalina/connector/Response.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Response.java Wed Jan 8 01:10:34 2014 @@ -865,12 +865,12 @@ public class Response return; } -final StringBuffer sb = generateCookieString(cookie); +String header = generateCookieString(cookie); //if we reached here, no exception, cookie is valid // the header name is Set-Cookie for both old and v.1 ( RFC2109 ) // RFC2965 is not supported by browsers and the Servlet spec // asks for 2109. -addHeader(Set-Cookie, sb.toString()); +addHeader(Set-Cookie, header); } /** @@ -886,50 +886,38 @@ public class Response String name = cookie.getName(); final String headername = Set-Cookie; final String startsWith = name + =; -final StringBuffer sb = generateCookieString(cookie); +String header = generateCookieString(cookie); boolean set = false; MimeHeaders headers = coyoteResponse.getMimeHeaders(); int n = headers.size(); for (int i = 0; i n; i++) { if (headers.getName(i).toString().equals(headername)) { if (headers.getValue(i).toString().startsWith(startsWith)) { -headers.getValue(i).setString(sb.toString()); +headers.getValue(i).setString(header); set = true; } } } if (!set) { -addHeader(headername, sb.toString()); +addHeader(headername, header); } } -public StringBuffer generateCookieString(final Cookie cookie) { -final StringBuffer sb = new StringBuffer(); +public String generateCookieString(final Cookie cookie) { //web application code can receive a IllegalArgumentException //from the appendCookieValue invocation if (SecurityUtil.isPackageProtectionEnabled()) { -AccessController.doPrivileged(new PrivilegedActionVoid() { +return AccessController.doPrivileged(new PrivilegedActionString() { @Override -public Void run(){ -SetCookieSupport.appendCookieValue -(sb, cookie.getVersion(), cookie.getName(), -cookie.getValue(), cookie.getPath(), -cookie.getDomain(), cookie.getComment(), -cookie.getMaxAge(), cookie.getSecure(), -cookie.isHttpOnly()); -return null; +public String run(){ +return SetCookieSupport.generateHeader(cookie); } }); } else { -SetCookieSupport.appendCookieValue -(sb, cookie.getVersion(), cookie.getName(), cookie.getValue(), -cookie.getPath(), cookie.getDomain(), cookie.getComment(), -cookie.getMaxAge(), cookie.getSecure(), -cookie.isHttpOnly()); +return SetCookieSupport.generateHeader(cookie); } -return sb; } Modified: tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java?rev=1556418r1=1556417r2=1556418view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java Wed Jan 8 01:10:34 2014 @@ -23,6 +23,8 @@ import java.util.Date; import java.util.Locale; import java.util.TimeZone; +import javax.servlet.http.Cookie; + /** * Support class for generating Set-Cookie header values. */ @@ -45,7 +47,16 @@ public class SetCookieSupport { ancientDate = OLD_COOKIE_FORMAT.get().format(new Date(1)); } -public static void appendCookieValue( StringBuffer headerBuf, +public static String generateHeader(Cookie cookie) { +StringBuffer sb = new StringBuffer(); +appendCookieValue(sb, cookie.getVersion(), cookie.getName(), cookie.getValue(), +cookie.getPath
svn commit: r1556423 - /tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java
Author: jboynes Date: Wed Jan 8 01:47:40 2014 New Revision: 1556423 URL: http://svn.apache.org/r1556423 Log: Inline method call and eliminate an unneeded StringBuffer allocation. Modified: tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java Modified: tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java?rev=1556423r1=1556422r2=1556423view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java Wed Jan 8 01:47:40 2014 @@ -48,28 +48,11 @@ public class SetCookieSupport { } public static String generateHeader(Cookie cookie) { -StringBuffer sb = new StringBuffer(); -appendCookieValue(sb, cookie.getVersion(), cookie.getName(), cookie.getValue(), -cookie.getPath(), cookie.getDomain(), cookie.getComment(), -cookie.getMaxAge(), cookie.getSecure(), -cookie.isHttpOnly()); -return sb.toString(); -} -private static void appendCookieValue( StringBuffer headerBuf, - int version, - String name, - String value, - String path, - String domain, - String comment, - int maxAge, - boolean isSecure, - boolean isHttpOnly) -{ -StringBuffer buf = new StringBuffer(); +StringBuffer buf = new StringBuffer(); // can't use StringBuilder due to DateFormat + // Servlet implementation checks name -buf.append( name ); +buf.append(cookie.getName()); buf.append(=); // Servlet implementation does not check anything else @@ -82,8 +65,14 @@ public class SetCookieSupport { * Note that by checking for tokens we will also throw an exception if a * control character is encountered. */ + +String value = cookie.getValue(); +String path = cookie.getPath(); +String domain = cookie.getDomain(); +String comment = cookie.getComment(); + // Start by using the version we were asked for -int newVersion = version; +int newVersion = cookie.getVersion(); // If it is v0, check if we need to switch if (newVersion == 0 @@ -140,6 +129,7 @@ public class SetCookieSupport { } // Max-Age=secs ... or use old Expires format +int maxAge = cookie.getMaxAge(); if (maxAge = 0) { if (newVersion 0) { buf.append (; Max-Age=); @@ -155,9 +145,9 @@ public class SetCookieSupport { buf.append( ancientDate ); } else { OLD_COOKIE_FORMAT.get().format( -new Date(System.currentTimeMillis() + -maxAge*1000L), -buf, new FieldPosition(0)); +new Date(System.currentTimeMillis() + maxAge * 1000L), +buf, +new FieldPosition(0)); } } } @@ -169,15 +159,15 @@ public class SetCookieSupport { } // Secure -if (isSecure) { +if (cookie.getSecure()) { buf.append (; Secure); } // HttpOnly -if (isHttpOnly) { +if (cookie.isHttpOnly()) { buf.append(; HttpOnly); } -headerBuf.append(buf); +return buf.toString(); } /** - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1556427 - /tomcat/tc6.0.x/trunk/STATUS.txt
Author: jboynes Date: Wed Jan 8 02:35:04 2014 New Revision: 1556427 URL: http://svn.apache.org/r1556427 Log: votes Modified: tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1556427r1=1556426r2=1556427view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Wed Jan 8 02:35:04 2014 @@ -37,7 +37,7 @@ PATCHES PROPOSED TO BACKPORT: http://svn.apache.org/r1500065 (excluding tests) - original fix http://svn.apache.org/r1539176 (excluding tests) - required for following fix http://svn.apache.org/r1539177 (excluding tests) - fixes regression in original - +1: markt, schultz, remm + +1: markt, schultz, remm, jboynes -1: * Fix issue with Manager app and other apps that use i18n in the UI when a @@ -45,14 +45,14 @@ PATCHES PROPOSED TO BACKPORT: or Japanese. Port all the other improvements to the StringManager from trunk as well http://people.apache.org/~markt/patches/2013-12-17-webapp-locale-tc6.patch - +1: markt, remm + +1: markt, remm, jboynes +1: kkolinko (a typo in changelog: s/associated/associate/) -1: * Add support for limiting the size of chunk extensions when using chunked encoding. http://people.apache.org/~markt/patches/2013-12-17-chunk-extensions-tc6-v2.patch - +1: markt, kkolinko, remm + +1: markt, kkolinko, remm, jboynes -1: * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55749 @@ -75,7 +75,7 @@ PATCHES PROPOSED TO BACKPORT: being added. When actually making the commit, they will be copied from 7.0.x and amended to retain history. http://people.apache.org/~markt/patches/2013-12-19-javaee-xml-tc6-v1.patch - +1: markt, kkolinko + +1: markt, kkolinko, jboynes -1: * Back-port some XML processing improvements (part 1) @@ -83,7 +83,7 @@ PATCHES PROPOSED TO BACKPORT: Tomcat 7 (which meant re-ordering methods in places) to make it easier to compare 6.0.x code with 7.0.x code. http://people.apache.org/~markt/patches/2013-12-20-xml-prep-part1-tc6-v2.patch - +1: markt, remm + +1: markt, remm, jboynes +1: kkolinko: I do not like that you change the values of validation flags when STRICT_SERVLET_COMPLIANCE is set. This was a feature required for @@ -109,7 +109,7 @@ PATCHES PROPOSED TO BACKPORT: implementation is required. This is essentially a back-port of http://svn.apache.org/r1552306 http://people.apache.org/~markt/patches/2013-12-19-xml-prep-part2-tc6-v1.patch - +1: markt, kkolinko, remm + +1: markt, kkolinko, remm, jboynes -1: * Back-port some XML processing improvements (part 3) @@ -121,6 +121,8 @@ PATCHES PROPOSED TO BACKPORT: +1: markt, remm +1: kkolinko (Looks OK. I have not tested into what jar the new package goes and whether it requires an update to build.xml). + +1: jboynes (Looks OK, have not verified if schema references work when the + XSDs are still split between servlet/resources and jsp/resources). -1: * Back-port some XML processing improvements (part 4) @@ -145,13 +147,13 @@ PATCHES PROPOSED TO BACKPORT: * Avoid possible NPE when a content type with no charset is specified (Followup to r1548971) http://svn.apache.org/r1552805 - +1: markt, kkolinko, remm + +1: markt, kkolinko, remm, jboynes -1: * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55973 Fix processing of XML schemas when validation is enabled in Jasper http://svn.apache.org/r1556377 - +1: kkolinko + +1: kkolinko, jboynes -1: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1556434 - in /tomcat/trunk/java/org/apache/tomcat/util/http: CookieSupport.java SetCookieSupport.java
Author: jboynes Date: Wed Jan 8 03:22:13 2014 New Revision: 1556434 URL: http://svn.apache.org/r1556434 Log: Move methods only used by SetCookieSupport into that class. Modified: tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java Modified: tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java?rev=1556434r1=1556433r2=1556434view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java Wed Jan 8 03:22:13 2014 @@ -173,29 +173,6 @@ public final class CookieSupport { return V0_SEPARATOR_FLAGS[c]; } -public static boolean isV0Token(String value) { -if( value==null) { -return false; -} - -int i = 0; -int len = value.length(); - -if (alreadyQuoted(value)) { -i++; -len--; -} - -for (; i len; i++) { -char c = value.charAt(i); - -if (isV0Separator(c)) { -return true; -} -} -return false; -} - /** * Returns true if the byte is a separator as defined by V1 of the cookie * spec, RFC2109. @@ -213,36 +190,6 @@ public final class CookieSupport { return HTTP_SEPARATOR_FLAGS[c]; } -public static boolean isHttpToken(String value) { -if( value==null) { -return false; -} - -int i = 0; -int len = value.length(); - -if (alreadyQuoted(value)) { -i++; -len--; -} - -for (; i len; i++) { -char c = value.charAt(i); - -if (isHttpSeparator(c)) { -return true; -} -} -return false; -} - -public static boolean alreadyQuoted (String value) { -if (value==null || value.length() 2) { -return false; -} -return (value.charAt(0)=='\' value.charAt(value.length()-1)=='\'); -} - // - Constructor private CookieSupport() { Modified: tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java?rev=1556434r1=1556433r2=1556434view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/SetCookieSupport.java Wed Jan 8 03:22:13 2014 @@ -77,9 +77,9 @@ public class SetCookieSupport { // If it is v0, check if we need to switch if (newVersion == 0 (!CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 - CookieSupport.isHttpToken(value) || + isHttpToken(value) || CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 - CookieSupport.isV0Token(value))) { + isV0Token(value))) { // HTTP token in value - need to use v1 newVersion = 1; } @@ -91,18 +91,18 @@ public class SetCookieSupport { if (newVersion == 0 (!CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 - CookieSupport.isHttpToken(path) || + isHttpToken(path) || CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 - CookieSupport.isV0Token(path))) { + isV0Token(path))) { // HTTP token in path - need to use v1 newVersion = 1; } if (newVersion == 0 (!CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 - CookieSupport.isHttpToken(domain) || + isHttpToken(domain) || CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 - CookieSupport.isV0Token(domain))) { + isV0Token(domain))) { // HTTP token in domain - need to use v1 newVersion = 1; } @@ -178,13 +178,13 @@ public class SetCookieSupport { private static void maybeQuote (StringBuffer buf, String value) { if (value==null || value.length()==0) { buf.append(\\); -} else if (CookieSupport.alreadyQuoted(value)) { +} else if (alreadyQuoted(value)) { buf.append(''); buf.append(escapeDoubleQuotes(value,1,value.length()-1)); buf.append(''); -} else if (CookieSupport.isHttpToken(value) +} else if (isHttpToken(value) !CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 || -CookieSupport.isV0Token(value) +isV0Token
svn commit: r1556449 - in /tomcat/trunk/test/org/apache/tomcat/util/http: TestSetCookieSupport.java TestSetCookieSupportSeparatorsAllowed.java
Author: jboynes Date: Wed Jan 8 05:54:43 2014 New Revision: 1556449 URL: http://svn.apache.org/r1556449 Log: test cases for Set-Cookie generation Added: tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java (with props) tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupportSeparatorsAllowed.java (with props) Added: tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java?rev=1556449view=auto == --- tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java (added) +++ tomcat/trunk/test/org/apache/tomcat/util/http/TestSetCookieSupport.java Wed Jan 8 05:54:43 2014 @@ -0,0 +1,112 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.http; + +import javax.servlet.http.Cookie; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +public class TestSetCookieSupport { + +@Test +public void v0simpleCookie() { +Cookie cookie = new Cookie(foo, bar); +Assert.assertEquals(foo=bar, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v0NullValue() { +Cookie cookie = new Cookie(foo, null); +//Assert.assertEquals(foo=, SetCookieSupport.generateHeader(cookie)); +Assert.assertEquals(foo=\\, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v0QuotedValue() { +Cookie cookie = new Cookie(foo, \bar\); +Assert.assertEquals(foo=\bar\, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v0ValueContainsSemicolon() { +Cookie cookie = new Cookie(foo, a;b); +// should probably throw IAE? +Assert.assertEquals(foo=\a;b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v0ValueContainsComma() { +Cookie cookie = new Cookie(foo, a,b); +// should probably throw IAE? +Assert.assertEquals(foo=\a,b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v0ValueContainsSpace() { +Cookie cookie = new Cookie(foo, a b); +// should probably throw IAE? +Assert.assertEquals(foo=\a b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v0ValueContainsEquals() { +Cookie cookie = new Cookie(foo, a=b); +Assert.assertEquals(foo=\a=b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Test +public void v0ValueContainsQuote() { +Cookie cookie = new Cookie(foo, a\b); +//Assert.assertEquals(foo=a\b, SetCookieSupport.generateHeader(cookie)); +Assert.assertEquals(foo=\a\\\b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Ignore(bug 55975) +@Test +public void v0ValueContainsNonV0Separator() { +Cookie cookie = new Cookie(foo, a()@:\\\/[]?={}b); +// Assert.assertEquals(foo=a()@:\\\/[]?{}=b, SetCookieSupport.generateHeader(cookie)); +Assert.assertEquals(foo=\a()@,;:\\\/[]?={}b\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Ignore(bug 55975) +@Test +public void v0ValueContainsBackslash() { +Cookie cookie = new Cookie(foo, a\\b); +//Assert.assertEquals(foo=a\\b, SetCookieSupport.generateHeader(cookie)); +Assert.assertEquals(foo=\ab\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + + +@Ignore(bug 55975) +@Test +public void v0ValueContainsBackslashAtEnd() { +Cookie cookie = new Cookie(foo, a\\); +//Assert.assertEquals(foo=a\\, SetCookieSupport.generateHeader(cookie)); +Assert.assertEquals(foo=\a\; Version=1, SetCookieSupport.generateHeader(cookie)); +} + +@Ignore(bug 55975) +@Test +public void v0ValueContainsBackslashAndQuote() { +Cookie cookie = new Cookie(foo, a\b\\c); +//Assert.assertEquals(foo=a\b\\c, SetCookieSupport.generateHeader(cookie)); +Assert.assertEquals(foo=\a\\\bc\; Version
svn commit: r4009 - /dev/tomcat/taglibs/
Author: jboynes Date: Sun Dec 29 15:38:10 2013 New Revision: 4009 Log: Create staging directory for taglibs Added: dev/tomcat/taglibs/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r4009 - /dev/tomcat/taglibs/
Author: jboynes Date: Sun Dec 29 15:38:10 2013 New Revision: 4009 Log: Create staging directory for taglibs Added: dev/tomcat/taglibs/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r4010 - /dev/tomcat/taglibs/taglibs-standard-1.2.1/
Author: jboynes Date: Sun Dec 29 15:45:33 2013 New Revision: 4010 Log: Stage source release for taglibs-standard-1.2.1 Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip (with props) dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip == Binary file - no diff available. Propchange: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip -- svn:mime-type = application/octet-stream Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc Sun Dec 29 15:45:33 2013 @@ -0,0 +1,12 @@ +-BEGIN PGP SIGNATURE- +Version: GnuPG/MacGPG2 v2.0.20 (Darwin) +Comment: GPGTools - https://gpgtools.org + +iQEcBAABCgAGBQJShDnTAAoJEKVK0I6noCM8HWEH/RQgZgCLtwxnLEARtj8IMx8f +hWcAhPt+Lv75Yl1DscMdi9qvNiXKqDTUJKhPqsfR1lv7xrMLnVUoLur4GqzHYEEQ +eT7H/n+CfWdF4vg32g7C/Fn5ePnoacDw2aL2YhvCzjpfY/mppDK6UCAhp9w4pv6t +lCeQDiyVBvGHUODseD+w1V7uKF+WoOery4jm786xpfD/h9tH+8iFwfhffqkCjn2b +VaHZFbqSUME64zW19JLWDnvZYyR7p2zCuIgP71FvTp+3zFRi131F7+AksUbCzCg9 +WukpHhbpqMU75gR7qwD/AXjY4EMpiP9eic6VfOW0k7CKgNTMRlLSIYV/C4iohEk= +=MgYt +-END PGP SIGNATURE- Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +1e16062b9dd5b5d4f8b60e938b906070 \ No newline at end of file Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +445c048e15be7208518f83577dd36e7860265bc4 \ No newline at end of file Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +19b6a275024cfea7532fb2f1e79311fb \ No newline at end of file Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +849a6a93b3a0bd73eaa0fc09a17e93b8c49fc8b7 \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r4010 - /dev/tomcat/taglibs/taglibs-standard-1.2.1/
Author: jboynes Date: Sun Dec 29 15:45:33 2013 New Revision: 4010 Log: Stage source release for taglibs-standard-1.2.1 Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip (with props) dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip == Binary file - no diff available. Propchange: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip -- svn:mime-type = application/octet-stream Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc Sun Dec 29 15:45:33 2013 @@ -0,0 +1,12 @@ +-BEGIN PGP SIGNATURE- +Version: GnuPG/MacGPG2 v2.0.20 (Darwin) +Comment: GPGTools - https://gpgtools.org + +iQEcBAABCgAGBQJShDnTAAoJEKVK0I6noCM8HWEH/RQgZgCLtwxnLEARtj8IMx8f +hWcAhPt+Lv75Yl1DscMdi9qvNiXKqDTUJKhPqsfR1lv7xrMLnVUoLur4GqzHYEEQ +eT7H/n+CfWdF4vg32g7C/Fn5ePnoacDw2aL2YhvCzjpfY/mppDK6UCAhp9w4pv6t +lCeQDiyVBvGHUODseD+w1V7uKF+WoOery4jm786xpfD/h9tH+8iFwfhffqkCjn2b +VaHZFbqSUME64zW19JLWDnvZYyR7p2zCuIgP71FvTp+3zFRi131F7+AksUbCzCg9 +WukpHhbpqMU75gR7qwD/AXjY4EMpiP9eic6VfOW0k7CKgNTMRlLSIYV/C4iohEk= +=MgYt +-END PGP SIGNATURE- Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.md5 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +1e16062b9dd5b5d4f8b60e938b906070 \ No newline at end of file Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.asc.sha1 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +445c048e15be7208518f83577dd36e7860265bc4 \ No newline at end of file Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.md5 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +19b6a275024cfea7532fb2f1e79311fb \ No newline at end of file Added: dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 == --- dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 (added) +++ dev/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-1.2.1-source-release.zip.sha1 Sun Dec 29 15:45:33 2013 @@ -0,0 +1 @@ +849a6a93b3a0bd73eaa0fc09a17e93b8c49fc8b7 \ No newline at end of file - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1553387 - /tomcat/trunk/webapps/docs/changelog.xml
Author: jboynes Date: Wed Dec 25 14:52:10 2013 New Revision: 1553387 URL: http://svn.apache.org/r1553387 Log: fix typo Modified: tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1553387r1=1553386r2=1553387view=diff == --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Wed Dec 25 14:52:10 2013 @@ -192,7 +192,7 @@ removed. (jboynes) /scode fix -Chnage ordering of elements of JMX objects names so components are +Change ordering of elements of JMX objects names so components are grouped more logically in JConsole. Generally, components are now grouped by Host and then by Context. (markt) /fix - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r1553290 - in /tomcat/trunk: java/org/apache/tomcat/util/http/Cookies.java test/org/apache/tomcat/util/http/TestCookies.java webapps/docs/changelog.xml
Author: jboynes Date: Tue Dec 24 15:36:25 2013 New Revision: 1553290 URL: http://svn.apache.org/r1553290 Log: revert 1553187 Modified: tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java?rev=1553290r1=1553289r2=1553290view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java Tue Dec 24 15:36:25 2013 @@ -508,7 +508,14 @@ public final class Cookies { private static final int getTokenEndPosition(byte bytes[], int off, int end, int version, boolean isName){ int pos = off; -while (pos end allowInToken(bytes[pos], version, isName)) { +while (pos end +(!CookieSupport.isHttpSeparator((char)bytes[pos]) || + version == 0 +CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 +bytes[pos] != '=' +!CookieSupport.isV0Separator((char)bytes[pos]) || + !isName bytes[pos] == '=' + CookieSupport.ALLOW_EQUALS_IN_VALUE)) { pos++; } @@ -518,34 +525,6 @@ public final class Cookies { return pos; } -private static boolean allowInToken(byte b, int version, boolean isName) { -// byte is signed so cast into a positive int for comparisons -int octet = ((int)b) 0xff; - -// disallow all controls -if (octet 0x20 octet != 0x09 || octet = 0x7f octet 0xa0) { -throw new IllegalArgumentException( -Control character in cookie value or attribute.); -} - -// values 0xa0-0xff are allowed in V0 values, otherwise disallow -if (octet = 0x80) { -if (isName || version != 0) { -throw new IllegalArgumentException( -Control character in cookie value or attribute.); -} -return true; -} - -return !CookieSupport.isHttpSeparator((char) b) || -version == 0 -CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 -b != '=' -!CookieSupport.isV0Separator((char) b) || -!isName b == '=' -CookieSupport.ALLOW_EQUALS_IN_VALUE; -} - /** * Given a starting position after an initial quote character, this gets * the position of the end quote. This escapes anything after a '\' char Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java?rev=1553290r1=1553289r2=1553290view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java Tue Dec 24 15:36:25 2013 @@ -17,113 +17,9 @@ package org.apache.tomcat.util.http; -import java.nio.charset.StandardCharsets; - -import javax.servlet.http.Cookie; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; public class TestCookies { -private Cookies cookies; - -@Before -public void init() { -this.cookies = new Cookies(null); -} - -@Test -public void skipJsonInV0Value() { -process(bad={\v\:1,\x\:2}; a=b); -expect(makeCookie(a, b, 0)); -} - -@Test(expected = IllegalArgumentException.class) -public void disallow8bitInName() { -process(f\u00f6o=bar); -} - -@Test(expected = IllegalArgumentException.class) -public void disallowControlInName() { -process(f\010o=bar); -} - -@Test(expected = IllegalArgumentException.class) -public void disallow8BitControlInName() { -process(f\210o=bar); -} - -@Test -public void allow8BitInV0Value() { -process(foo=b\u00e1r); -expect(makeCookie(foo, b\u00e1r, 0)); -} - -@Test(expected = IllegalArgumentException.class) -public void disallow8bitInV1UnquotedValue() { -process($Version=1; foo=b\u00e1r); -} - -@Test -public void allow8bitInV1QuotedValue() { -process($Version=1; foo=\b\u00e1r\); -expect(makeCookie(foo, b\u00e1r, 1)); -} - -@Test(expected = IllegalArgumentException.class) -public void disallowControlInV0Value() { -process(foo=b\010r); -} - -@Test(expected = IllegalArgumentException.class) -public void disallow8BitControlInV0Value() { -process(foo=b\210r
svn commit: r1553187 - in /tomcat/trunk: java/org/apache/tomcat/util/http/Cookies.java test/org/apache/tomcat/util/http/TestCookies.java webapps/docs/changelog.xml
Author: jboynes Date: Mon Dec 23 19:15:35 2013 New Revision: 1553187 URL: http://svn.apache.org/r1553187 Log: fix #55917 by allowing 8-bit ISO-8859-1 characters in V0 cookie values Modified: tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java?rev=1553187r1=1553186r2=1553187view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/Cookies.java Mon Dec 23 19:15:35 2013 @@ -508,14 +508,7 @@ public final class Cookies { private static final int getTokenEndPosition(byte bytes[], int off, int end, int version, boolean isName){ int pos = off; -while (pos end -(!CookieSupport.isHttpSeparator((char)bytes[pos]) || - version == 0 -CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 -bytes[pos] != '=' -!CookieSupport.isV0Separator((char)bytes[pos]) || - !isName bytes[pos] == '=' - CookieSupport.ALLOW_EQUALS_IN_VALUE)) { +while (pos end allowInToken(bytes[pos], version, isName)) { pos++; } @@ -525,6 +518,34 @@ public final class Cookies { return pos; } +private static boolean allowInToken(byte b, int version, boolean isName) { +// byte is signed so cast into a positive int for comparisons +int octet = ((int)b) 0xff; + +// disallow all controls +if (octet 0x20 octet != 0x09 || octet = 0x7f octet 0xa0) { +throw new IllegalArgumentException( +Control character in cookie value or attribute.); +} + +// values 0xa0-0xff are allowed in V0 values, otherwise disallow +if (octet = 0x80) { +if (isName || version != 0) { +throw new IllegalArgumentException( +Control character in cookie value or attribute.); +} +return true; +} + +return !CookieSupport.isHttpSeparator((char) b) || +version == 0 +CookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0 +b != '=' +!CookieSupport.isV0Separator((char) b) || +!isName b == '=' +CookieSupport.ALLOW_EQUALS_IN_VALUE; +} + /** * Given a starting position after an initial quote character, this gets * the position of the end quote. This escapes anything after a '\' char Modified: tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java?rev=1553187r1=1553186r2=1553187view=diff == --- tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/http/TestCookies.java Mon Dec 23 19:15:35 2013 @@ -17,9 +17,113 @@ package org.apache.tomcat.util.http; +import java.nio.charset.StandardCharsets; + +import javax.servlet.http.Cookie; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; public class TestCookies { +private Cookies cookies; + +@Before +public void init() { +this.cookies = new Cookies(null); +} + +@Test +public void skipJsonInV0Value() { +process(bad={\v\:1,\x\:2}; a=b); +expect(makeCookie(a, b, 0)); +} + +@Test(expected = IllegalArgumentException.class) +public void disallow8bitInName() { +process(f\u00f6o=bar); +} + +@Test(expected = IllegalArgumentException.class) +public void disallowControlInName() { +process(f\010o=bar); +} + +@Test(expected = IllegalArgumentException.class) +public void disallow8BitControlInName() { +process(f\210o=bar); +} + +@Test +public void allow8BitInV0Value() { +process(foo=b\u00e1r); +expect(makeCookie(foo, b\u00e1r, 0)); +} + +@Test(expected = IllegalArgumentException.class) +public void disallow8bitInV1UnquotedValue() { +process($Version=1; foo=b\u00e1r); +} + +@Test +public void allow8bitInV1QuotedValue() { +process($Version=1; foo=\b\u00e1r\); +expect(makeCookie(foo, b\u00e1r, 1)); +} + +@Test(expected = IllegalArgumentException.class) +public void disallowControlInV0Value() { +process(foo=b\010r); +} + +@Test(expected = IllegalArgumentException.class) +public void
svn commit: r1545537 - in /tomcat/trunk/test: org/apache/jasper/compiler/TestJspDocumentParser.java webapp/valid.jspx webapp/valid.xsd
Author: jboynes Date: Tue Nov 26 04:30:45 2013 New Revision: 1545537 URL: http://svn.apache.org/r1545537 Log: add testcase to show problem with XSD validation of JSP documents Added: tomcat/trunk/test/webapp/valid.jspx (with props) tomcat/trunk/test/webapp/valid.xsd (with props) Modified: tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java Modified: tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java?rev=1545537r1=1545536r2=1545537view=diff == --- tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java (original) +++ tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java Tue Nov 26 04:30:45 2013 @@ -21,13 +21,21 @@ import java.io.File; import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; +import org.apache.catalina.Context; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.util.buf.ByteChunk; +import org.w3c.dom.Document; +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; public class TestJspDocumentParser extends TomcatBaseTest { @@ -111,4 +119,44 @@ public class TestJspDocumentParser exten /test/bug5/bug54821b.jspx, bc, null); Assert.assertEquals(HttpServletResponse.SC_OK, rc); } + +@Test +@Ignore +public void testSchemaValidation() throws Exception { +Tomcat tomcat = getTomcatInstance(); + +File appDir = new File(test/webapp); +// app dir is relative to server home +Context context = tomcat.addWebapp(null, /test, appDir.getAbsolutePath()); +context.setXmlValidationJspDoc(true); + +tomcat.start(); + +ByteChunk bc = new ByteChunk(); +String path = http://localhost:; + getPort() + /test/valid.jspx; +DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); +dbf.setNamespaceAware(true); +dbf.setValidating(true); +dbf.setFeature(http://apache.org/xml/features/validation/schema;, true); +DocumentBuilder db = dbf.newDocumentBuilder(); +db.setErrorHandler(new ErrorHandler() { +@Override +public void warning(SAXParseException exception) throws SAXException { +throw exception; +} + +@Override +public void error(SAXParseException exception) throws SAXException { +throw exception; +} + +@Override +public void fatalError(SAXParseException exception) throws SAXException { +throw exception; +} +}); +Document document = db.parse(path); +Assert.assertEquals(urn:valid, document.getDocumentElement().getNamespaceURI()); +Assert.assertEquals(root, document.getDocumentElement().getLocalName()); + } } Added: tomcat/trunk/test/webapp/valid.jspx URL: http://svn.apache.org/viewvc/tomcat/trunk/test/webapp/valid.jspx?rev=1545537view=auto == --- tomcat/trunk/test/webapp/valid.jspx (added) +++ tomcat/trunk/test/webapp/valid.jspx Tue Nov 26 04:30:45 2013 @@ -0,0 +1,22 @@ +!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the License); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an AS IS BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-- +root xmlns=urn:valid + xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; + xmlns:jsp=http://java.sun.com/JSP/Page; + xsi:schemaLocation=urn:valid valid.xsd +jsp:textHello World/jsp:text +/root \ No newline at end of file Propchange: tomcat/trunk/test/webapp/valid.jspx -- svn:eol-style = native Added: tomcat/trunk/test/webapp/valid.xsd URL: http://svn.apache.org/viewvc/tomcat/trunk/test/webapp/valid.xsd?rev=1545537view=auto
svn commit: r1545553 - in /tomcat/trunk: java/org/apache/jasper/compiler/JspDocumentParser.java java/org/apache/jasper/compiler/JspUtil.java test/org/apache/jasper/compiler/TestJspDocumentParser.java
Author: jboynes Date: Tue Nov 26 06:30:07 2013 New Revision: 1545553 URL: http://svn.apache.org/r1545553 Log: use an InputSource in JspDocumentParser to provide a base URI for resolution Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java tomcat/trunk/java/org/apache/jasper/compiler/JspUtil.java tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java?rev=1545553r1=1545552r2=1545553view=diff == --- tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java Tue Nov 26 06:30:07 2013 @@ -19,7 +19,6 @@ package org.apache.jasper.compiler; import java.io.CharArrayWriter; import java.io.FileNotFoundException; import java.io.IOException; -import java.io.InputStream; import java.util.Collection; import java.util.Iterator; @@ -171,27 +170,24 @@ class JspDocumentParser // Parse the input SAXParser saxParser = getSAXParser(validate, jspDocParser); -InputStream inStream = null; +InputSource source = JspUtil.getInputSource(path, jar, jspDocParser.ctxt); try { -inStream = JspUtil.getInputStream(path, jar, jspDocParser.ctxt); -saxParser.parse(new InputSource(inStream), jspDocParser); +saxParser.parse(source, jspDocParser); } catch (EnableDTDValidationException e) { saxParser = getSAXParser(true, jspDocParser); jspDocParser.isValidating = true; -if (inStream != null) { -try { -inStream.close(); -} catch (Exception any) { -} +try { +source.getByteStream().close(); +} catch (IOException e2) { +// ignore } -inStream = JspUtil.getInputStream(path, jar, jspDocParser.ctxt); -saxParser.parse(new InputSource(inStream), jspDocParser); +source = JspUtil.getInputSource(path, jar, jspDocParser.ctxt); +saxParser.parse(source, jspDocParser); } finally { -if (inStream != null) { -try { -inStream.close(); -} catch (Exception any) { -} +try { +source.getByteStream().close(); +} catch (IOException e) { +// ignore } } Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspUtil.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/JspUtil.java?rev=1545553r1=1545552r2=1545553view=diff == --- tomcat/trunk/java/org/apache/jasper/compiler/JspUtil.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/JspUtil.java Tue Nov 26 06:30:07 2013 @@ -28,6 +28,7 @@ import org.apache.jasper.JasperException import org.apache.jasper.JspCompilationContext; import org.apache.tomcat.util.scan.Jar; import org.xml.sax.Attributes; +import org.xml.sax.InputSource; /** * This class has all the utility method(s). Ideally should move all the bean @@ -664,6 +665,20 @@ public class JspUtil { return in; } +public static InputSource getInputSource(String fname, Jar jar, JspCompilationContext ctxt) +throws IOException { +InputSource source; +if (jar != null) { +String jarEntryName = fname.substring(1, fname.length()); +source = new InputSource(jar.getInputStream(jarEntryName)); +source.setSystemId(jar.getURL(jarEntryName)); +} else { +source = new InputSource(ctxt.getResourceAsStream(fname)); +source.setSystemId(ctxt.getResource(fname).toExternalForm()); +} +return source; +} + /** * Gets the fully-qualified class name of the tag handler corresponding to * the given tag file path. Modified: tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java?rev=1545553r1=1545552r2=1545553view=diff == --- tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java (original) +++ tomcat/trunk/test/org/apache/jasper/compiler/TestJspDocumentParser.java Tue Nov 26 06:30:07 2013 @@ -132,7 +132,6 @@ public class TestJspDocumentParser exten tomcat.start
svn commit: r1545558 - /tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java
Author: jboynes Date: Tue Nov 26 07:04:42 2013 New Revision: 1545558 URL: http://svn.apache.org/r1545558 Log: Convert JspDocumentParser to an DefaultHandler2 Added TODO on using JarFactory to resolve Tomcat-specific URLs returned by the Jar abstraction. Still need to figure how to do that. Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java?rev=1545558r1=1545557r2=1545558view=diff == --- tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java Tue Nov 26 07:04:42 2013 @@ -39,9 +39,8 @@ import org.xml.sax.Locator; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; -import org.xml.sax.ext.LexicalHandler; +import org.xml.sax.ext.DefaultHandler2; import org.xml.sax.helpers.AttributesImpl; -import org.xml.sax.helpers.DefaultHandler; /** * Class implementing a parser for a JSP document, that is, a JSP page in XML @@ -52,8 +51,8 @@ import org.xml.sax.helpers.DefaultHandle */ class JspDocumentParser -extends DefaultHandler -implements LexicalHandler, TagConstants { +extends DefaultHandler2 +implements TagConstants { private static final String LEXICAL_HANDLER_PROPERTY = http://xml.org/sax/properties/lexical-handler;; @@ -237,6 +236,15 @@ class JspDocumentParser } } +@Override +public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) +throws SAXException, IOException { +// TODO URLs returned by the Jar abstraction may be of the form jar:jar: which +// is not a URL that can be resolved by the JRE. This should use the JarFactory +// to construct and return a valid InputSource. +return null; +} + /* * Receives notification of the start of an element. * - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org