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) {