You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tc...@apache.org on 2007/09/09 02:42:16 UTC

svn commit: r573936 - in /commons/proper/jci/trunk: core/src/main/java/org/apache/commons/jci/ core/src/main/java/org/apache/commons/jci/compilers/ core/src/main/java/org/apache/commons/jci/readers/ core/src/main/java/org/apache/commons/jci/stores/ cor...

Author: tcurdt
Date: Sat Sep  8 17:42:15 2007
New Revision: 573936

URL: http://svn.apache.org/viewvc?rev=573936&view=rev
Log:
improving code coverage,
fixing problems reported by findbugs


Modified:
    commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/ReloadingClassLoader.java
    commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/compilers/CompilationResult.java
    commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/readers/MemoryResourceReader.java
    commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java
    commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/utils/ConversionUtils.java
    commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/readers/ResourceReaderTestCase.java
    commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/stores/ResourceStoreTestCase.java
    commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/configuration/ConfigurationReloading.java
    commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/JspGenerator.java
    commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/ServerPageServlet.java
    commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java
    commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationObserverImpl.java
    commons/proper/jci/trunk/fam/src/test/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitorTestCase.java

Modified: commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/ReloadingClassLoader.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/ReloadingClassLoader.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/ReloadingClassLoader.java (original)
+++ commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/ReloadingClassLoader.java Sat Sep  8 17:42:15 2007
@@ -58,7 +58,7 @@
             stores = newStores;
             delegate = new ResourceStoreClassLoader(parent, stores);            
             return true;
-        } catch ( final Exception e ) {
+        } catch ( final RuntimeException e ) {
             log.error("could not add resource store " + pStore);
         }
         return false;

Modified: commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/compilers/CompilationResult.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/compilers/CompilationResult.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/compilers/CompilationResult.java (original)
+++ commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/compilers/CompilationResult.java Sat Sep  8 17:42:15 2007
@@ -55,10 +55,14 @@
     }
     
     public CompilationProblem[] getErrors() {
-        return errors;
+    	final CompilationProblem[] res = new CompilationProblem[errors.length];
+    	System.arraycopy(errors, 0, res, 0, res.length);
+        return res;
     }
 
     public CompilationProblem[] getWarnings() {
-        return warnings;
+    	final CompilationProblem[] res = new CompilationProblem[warnings.length];
+    	System.arraycopy(warnings, 0, res, 0, res.length);
+        return res;
     }
 }

Modified: commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/readers/MemoryResourceReader.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/readers/MemoryResourceReader.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/readers/MemoryResourceReader.java (original)
+++ commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/readers/MemoryResourceReader.java Sat Sep  8 17:42:15 2007
@@ -27,7 +27,7 @@
  */
 public class MemoryResourceReader implements ResourceReader {
     
-    private Map resources;
+    private Map resources = null;
 
     public boolean isAvailable( final String pResourceName ) {
         if (resources == null) {

Modified: commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java (original)
+++ commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/stores/ResourceStoreClassLoader.java Sat Sep  8 17:42:15 2007
@@ -34,7 +34,9 @@
 
     public ResourceStoreClassLoader( final ClassLoader pParent, final ResourceStore[] pStores ) {
         super(pParent);
-        stores = pStores;
+        
+        stores = new ResourceStore[pStores.length]; 
+        System.arraycopy(pStores, 0, stores, 0, stores.length);	
     }
 
     private Class fastFindClass(final String name) {

Modified: commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/utils/ConversionUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/utils/ConversionUtils.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/utils/ConversionUtils.java (original)
+++ commons/proper/jci/trunk/core/src/main/java/org/apache/commons/jci/utils/ConversionUtils.java Sat Sep  8 17:42:15 2007
@@ -18,6 +18,7 @@
 package org.apache.commons.jci.utils;
 
 import java.io.File;
+import java.util.Locale;
 
 /**
  * Mainly common path manipultation helper methods
@@ -57,7 +58,7 @@
     }
 
     public static String toJavaCasing(final String pName) {
-        final char[] name = pName.toLowerCase().toCharArray();
+        final char[] name = pName.toLowerCase(Locale.US).toCharArray();
         name[0] = Character.toUpperCase(name[0]);
         return new String(name);
     }

Modified: commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/readers/ResourceReaderTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/readers/ResourceReaderTestCase.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/readers/ResourceReaderTestCase.java (original)
+++ commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/readers/ResourceReaderTestCase.java Sat Sep  8 17:42:15 2007
@@ -34,15 +34,19 @@
         final MemoryResourceReader reader = new MemoryResourceReader();
         reader.add("test", "test".getBytes());
         checkRead(reader);
+        reader.remove(null);
+        assertTrue(reader.isAvailable("test"));
+        reader.remove("test");
+        assertFalse(reader.isAvailable("test"));
     }
 
     private void checkRead( final ResourceReader reader ) throws Exception {
         assertTrue(reader.isAvailable("test"));
         final byte[] content = reader.getBytes("test");
         assertTrue(content != null);
-        assertTrue("test".equals(new String(content)));        
+        assertEquals("test", new String(content));        
 
-        assertTrue(!reader.isAvailable("bla"));
+        assertFalse(reader.isAvailable("bla"));
         assertTrue(reader.getBytes("bla") == null);
     }
 }

Modified: commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/stores/ResourceStoreTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/stores/ResourceStoreTestCase.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/stores/ResourceStoreTestCase.java (original)
+++ commons/proper/jci/trunk/core/src/test/java/org/apache/commons/jci/stores/ResourceStoreTestCase.java Sat Sep  8 17:42:15 2007
@@ -37,9 +37,13 @@
         checkRemove(new FileResourceStore(directory));
     }
 
-    public void testTransactionalFileResourceStore() {
+    public void testTransactionalFileResourceStore() {    	
         checkReadWrite(new TransactionalResourceStore(new FileResourceStore(directory)));
         checkRemove(new TransactionalResourceStore(new FileResourceStore(directory)));
+        
+        final ResourceStore rs = new FileResourceStore(directory);
+        final TransactionalResourceStore trs = new TransactionalResourceStore(rs);
+        assertEquals(rs.toString(), trs.toString());
     }
 
     private void checkReadWrite( final ResourceStore pStore ) {

Modified: commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/configuration/ConfigurationReloading.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/configuration/ConfigurationReloading.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/configuration/ConfigurationReloading.java (original)
+++ commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/configuration/ConfigurationReloading.java Sat Sep  8 17:42:15 2007
@@ -19,6 +19,8 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -53,9 +55,10 @@
                     System.out.println("Configuration change detected " + configFile);
 
                     final Properties props = new Properties();
+                    InputStream is = null; 
                     try {
-
-                        props.load(new FileInputStream(configFile));
+                    	is = new FileInputStream(configFile);
+                        props.load(is);
 
                         System.out.println("Notifying about configuration change " + configFile);
 
@@ -66,6 +69,11 @@
 
                     } catch (Exception e) {
                         System.err.println("Failed to load configuration " + configFile);
+                    } finally {
+                    	try {
+							is.close();
+						} catch (IOException e) {
+						}
                     }
 
                 }

Modified: commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/JspGenerator.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/JspGenerator.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/JspGenerator.java (original)
+++ commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/JspGenerator.java Sat Sep  8 17:42:15 2007
@@ -68,10 +68,11 @@
 
     public byte[] generateJavaSource( final  String pResourceName, final File pFile ) {
 
+    	final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        final Writer output = new OutputStreamWriter(outputStream);
+
         try {
-            final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
             final Reader input = new InputStreamReader(new FileInputStream(pFile));
-            final Writer output = new OutputStreamWriter(outputStream);
 
             final int p = pResourceName.lastIndexOf('/');
 
@@ -154,12 +155,15 @@
             output.append("  }").append('\n');
             output.append("}").append('\n');
 
-
-            output.close();
-
             return outputStream.toByteArray();
+
         } catch (IOException e) {
             return null;
+        } finally {
+            try {
+				output.close();
+			} catch (IOException e) {
+			}        	
         }
     }
 

Modified: commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/ServerPageServlet.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/ServerPageServlet.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/ServerPageServlet.java (original)
+++ commons/proper/jci/trunk/examples/src/main/java/org/apache/commons/jci/examples/serverpages/ServerPageServlet.java Sat Sep  8 17:42:15 2007
@@ -56,8 +56,8 @@
     private static final long serialVersionUID = 1L;
 
     private final ReloadingClassLoader classloader = new ReloadingClassLoader(ServerPageServlet.class.getClassLoader());
-    private FilesystemAlterationMonitor fam;
-    private CompilingListener jspListener; 
+    private FilesystemAlterationMonitor fam = null;
+    private CompilingListener jspListener = null; 
 
     private Map servletsByClassname = new HashMap();
 

Modified: commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java (original)
+++ commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitor.java Sat Sep  8 17:42:15 2007
@@ -39,7 +39,7 @@
     private final Object observersLock = new Object();
     private Map observers = Collections.unmodifiableMap(new HashMap());    
     private long delay = 3000;
-    private Thread thread;
+    private Thread thread = null;
 
     private volatile boolean running = true;
         

Modified: commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationObserverImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationObserverImpl.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationObserverImpl.java (original)
+++ commons/proper/jci/trunk/fam/src/main/java/org/apache/commons/jci/monitor/FilesystemAlterationObserverImpl.java Sat Sep  8 17:42:15 2007
@@ -321,16 +321,18 @@
     }
 
     
-    public synchronized void checkAndNotify() {
-        if (listeners.length == 0) {
-            return;
-        }
-
-        notifyOnStart();
-        
-        checkEntries();
-        
-        notifyOnStop();
+    public void checkAndNotify() {
+    	synchronized(listenersSet) {
+	        if (listeners.length == 0) {
+	            return;
+	        }
+	
+	        notifyOnStart();
+	        
+	        checkEntries();
+	        
+	        notifyOnStop();
+    	}
     }
 
     
@@ -338,29 +340,38 @@
         return rootDirectory;
     }
 
-    public synchronized void addListener( final FilesystemAlterationListener pListener ) {
-        if (listenersSet.add(pListener)) {
-            createArrayFromSet();
-        }
-    }
-
-    public synchronized void removeListener( final FilesystemAlterationListener pListener ) {
-        if (listenersSet.remove(pListener)) {
-            createArrayFromSet();
-        }
+    public void addListener( final FilesystemAlterationListener pListener ) {
+    	synchronized(listenersSet) {
+	        if (listenersSet.add(pListener)) {
+	            listeners = createArrayFromSet();
+	        }
+    	}
+    }
+
+    public void removeListener( final FilesystemAlterationListener pListener ) {
+    	synchronized(listenersSet) {
+	        if (listenersSet.remove(pListener)) {
+	            listeners = createArrayFromSet();
+	        }
+    	}
     }
 
-    private void createArrayFromSet() {
+    private FilesystemAlterationListener[] createArrayFromSet() {
         final FilesystemAlterationListener[] newListeners = new FilesystemAlterationListener[listenersSet.size()];
         listenersSet.toArray(newListeners);
-        listeners = newListeners;
+        return newListeners;
     }
 
     public FilesystemAlterationListener[] getListeners() {
-        return listeners;
+    	synchronized(listenersSet) {
+        	final FilesystemAlterationListener[] res = new FilesystemAlterationListener[listeners.length];
+        	System.arraycopy(listeners, 0, res, 0, res.length);
+            return res;
+    	}    	
     }
 
-
+    /*
+     
     public static void main( String[] args ) {
         final FilesystemAlterationObserverImpl observer = new FilesystemAlterationObserverImpl(new File(args[0]));
         while(true) {
@@ -371,4 +382,6 @@
             }
         }
     }
+
+    */
 }

Modified: commons/proper/jci/trunk/fam/src/test/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitorTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/jci/trunk/fam/src/test/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitorTestCase.java?rev=573936&r1=573935&r2=573936&view=diff
==============================================================================
--- commons/proper/jci/trunk/fam/src/test/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitorTestCase.java (original)
+++ commons/proper/jci/trunk/fam/src/test/java/org/apache/commons/jci/monitor/FilesystemAlterationMonitorTestCase.java Sat Sep  8 17:42:15 2007
@@ -147,20 +147,23 @@
         listener = new MyFilesystemAlterationListener();
         
         fam.addListener(directory, listener);
-        assertTrue(fam.getListenersFor(directory).length == 1);
+        assertEquals(1, fam.getListenersFor(directory).length);
         
         fam.addListener(directory, listener); 
-        assertTrue(fam.getListenersFor(directory).length == 1);
-    }
+        assertEquals(1, fam.getListenersFor(directory).length);
+        
+        fam.removeListener(listener);
+        assertEquals(0, fam.getListenersFor(directory).length);
+}
 
     public void testDirectoryDoublication() throws Exception {
         fam = new FilesystemAlterationMonitor();
 
         fam.addListener(directory, new MyFilesystemAlterationListener()); 
-        assertTrue(fam.getListenersFor(directory).length == 1);
+        assertEquals(1, fam.getListenersFor(directory).length);
         
         fam.addListener(directory, new MyFilesystemAlterationListener()); 
-        assertTrue(fam.getListenersFor(directory).length == 2);
+        assertEquals(2, fam.getListenersFor(directory).length);
     }
 
     public void testCreateFileDetection() throws Exception {
@@ -170,9 +173,39 @@
         
         listener.waitForCheck();
         
-        assertTrue(listener.getCreatedFiles().size() == 1);
+        assertEquals(1, listener.getCreatedFiles().size());
+        
+        stop();
+    }
+
+    public void testTimeout() throws Exception {
+    	listener = new MyFilesystemAlterationListener();
+    	
+    	try {
+        	listener.waitForFirstCheck();
+        	fail("should be an timeout");
+        } catch(Exception e) {
+        	assertEquals("timeout", e.getMessage());
+        }
+
+        start();
+
+        try {
+        	listener.waitForEvent();
+        	fail("should be an timeout");
+        } catch(Exception e) {
+        	assertEquals("timeout", e.getMessage());
+        }
         
         stop();
+
+        try {
+        	listener.waitForCheck();
+        	fail("should be an timeout");
+        } catch(Exception e) {
+        	assertEquals("timeout", e.getMessage());
+        }
+    
     }
 
     public void testCreateDirectoryDetection() throws Exception {
@@ -182,7 +215,7 @@
         
         listener.waitForCheck();
         
-        assertTrue(listener.getCreatedDirectories().size() == 1);
+        assertEquals(1, listener.getCreatedDirectories().size());
         
         stop();
     }
@@ -194,14 +227,15 @@
         
         listener.waitForCheck();
         
-        assertTrue(listener.getCreatedFiles().size() == 1);
+        assertEquals(1, listener.getCreatedFiles().size());
+        assertEquals(0, listener.getChangedDirectories().size());
         
         file.delete();
         assertTrue(!file.exists());
 
         listener.waitForCheck();
         
-        assertTrue(listener.getDeletedFiles().size() == 1);
+        assertEquals(1, listener.getDeletedFiles().size());
         
         stop();        
     }
@@ -238,7 +272,7 @@
         
         listener.waitForCheck();
         
-        assertTrue(listener.getCreatedFiles().size() == 1);
+        assertEquals(1, listener.getCreatedFiles().size());
 
         delay();
 
@@ -246,7 +280,7 @@
 
         listener.waitForCheck();
         
-        assertTrue(listener.getChangedFiles().size() == 1);
+        assertEquals(1, listener.getChangedFiles().size());
         
         stop();
     }