You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@apache.org on 2001/04/25 22:30:46 UTC
cvs commit: jakarta-tomcat-4.0/tester/src/tester/org/apache/tester Resources06.java
craigmcc 01/04/25 13:30:45
Modified: catalina/src/share/org/apache/catalina/util ResourceSet.java
tester/src/tester/org/apache/tester Resources06.java
Log:
Add a test to ensure that the Set returned by ServletContext.getResourcePaths()
is immutable -- which it wasn't, so fix that too.
Revision Changes Path
1.2 +57 -3 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/ResourceSet.java
Index: ResourceSet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/ResourceSet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ResourceSet.java 2000/10/21 13:25:33 1.1
+++ ResourceSet.java 2001/04/25 20:30:37 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/ResourceSet.java,v 1.1 2000/10/21 13:25:33 craigmcc Exp $
- * $Revision: 1.1 $
- * $Date: 2000/10/21 13:25:33 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/ResourceSet.java,v 1.2 2001/04/25 20:30:37 craigmcc Exp $
+ * $Revision: 1.2 $
+ * $Date: 2001/04/25 20:30:37 $
*
* ====================================================================
*
@@ -78,7 +78,7 @@
* is not locked.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2000/10/21 13:25:33 $
+ * @version $Revision: 1.2 $ $Date: 2001/04/25 20:30:37 $
*/
public final class ResourceSet extends HashSet {
@@ -173,6 +173,60 @@
*/
private static final StringManager sm =
StringManager.getManager("org.apache.catalina.util");
+
+
+ // --------------------------------------------------------- Public Methods
+
+
+ /**
+ * Add the specified element to this set if it is not already present.
+ * Return <code>true</code> if the element was added.
+ *
+ * @param o The object to be added
+ *
+ * @exception IllegalStateException if this ResourceSet is locked
+ */
+ public boolean add(Object o) {
+
+ if (locked)
+ throw new IllegalStateException
+ (sm.getString("resourceSet.locked"));
+ return (super.add(o));
+
+ }
+
+
+ /**
+ * Remove all of the elements from this set.
+ *
+ * @exception IllegalStateException if this ResourceSet is locked
+ */
+ public void clear() {
+
+ if (locked)
+ throw new IllegalStateException
+ (sm.getString("resourceSet.locked"));
+ super.clear();
+
+ }
+
+
+ /**
+ * Remove the given element from this set if it is present.
+ * Return <code>true</code> if the element was removed.
+ *
+ * @param o The object to be removed
+ *
+ * @exception IllegalStateException if this ResourceSet is locked
+ */
+ public boolean remove(Object o) {
+
+ if (locked)
+ throw new IllegalStateException
+ (sm.getString("resourceSet.locked"));
+ return (super.remove(o));
+
+ }
}
1.2 +31 -1 jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/Resources06.java
Index: Resources06.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/Resources06.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Resources06.java 2001/04/25 03:12:03 1.1
+++ Resources06.java 2001/04/25 20:30:42 1.2
@@ -73,7 +73,7 @@
* found in order to pass.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.1 $ $Date: 2001/04/25 03:12:03 $
+ * @version $Revision: 1.2 $ $Date: 2001/04/25 20:30:42 $
*/
public class Resources06 extends HttpServlet {
@@ -125,6 +125,7 @@
// Request the set of resources in the specified path
StaticLogger.write("Processing path '" + path + "'");
+ String first = null;
Set set = getServletContext().getResourcePaths(path);
if (set == null) {
sb.append(" No resources returned/");
@@ -135,6 +136,8 @@
Iterator resources = set.iterator();
while (resources.hasNext()) {
String resource = (String) resources.next();
+ if (first == null)
+ first = resource;
StaticLogger.write("Found resource '" + resource + "'");
for (int i = 0; i < paths.length; i++) {
if (paths[i].equals(resource)) {
@@ -158,6 +161,33 @@
sb.append(" times/");
}
}
+
+ // Verify that the returned set is immutable
+ try {
+ String newElement = "NEW FOO";
+ set.add(newElement);
+ if (set.contains(newElement))
+ sb.append(" Set allowed add()/");
+ } catch (Throwable t) {
+ ;
+ }
+ try {
+ if (first != null) {
+ set.remove(first);
+ if (!set.contains(first))
+ sb.append(" Set allowed remove()/");
+ }
+ } catch (Throwable t) {
+ ;
+ }
+ try {
+ set.clear();
+ if (set.size() == 0)
+ sb.append(" Set allowed clear()/");
+ } catch (Throwable t) {
+ ;
+ }
+
// Report any failures we have encountered
if (sb.length() > 0) {