Use for-each. Use final.
diff --git a/compilers/eclipse/src/main/java/org/apache/commons/jci2/compilers/EclipseJavaCompiler.java b/compilers/eclipse/src/main/java/org/apache/commons/jci2/compilers/EclipseJavaCompiler.java
index 20ae3cf..f8fe7a7 100644
--- a/compilers/eclipse/src/main/java/org/apache/commons/jci2/compilers/EclipseJavaCompiler.java
+++ b/compilers/eclipse/src/main/java/org/apache/commons/jci2/compilers/EclipseJavaCompiler.java
@@ -81,7 +81,7 @@
             reader = pReader;
             clazzName = ConversionUtils.convertResourceToClassName(pSourceFile);
             fileName = pSourceFile;
-            int dot = clazzName.lastIndexOf('.');
+            final int dot = clazzName.lastIndexOf('.');
             if (dot > 0) {
                 typeName = clazzName.substring(dot + 1).toCharArray();
             } else {
@@ -221,8 +221,8 @@
 
             public NameEnvironmentAnswer findType( final char[] pTypeName, final char[][] pPackageName ) {
                 final StringBuilder result = new StringBuilder();
-                for (int i = 0; i < pPackageName.length; i++) {
-                    result.append(pPackageName[i]);
+                for (final char[] element : pPackageName) {
+                    result.append(element);
                     result.append('.');
                 }
 
@@ -330,7 +330,7 @@
                 return true;
             }
 
-            public boolean isPackage( char[][] parentPackageName, char[] pPackageName ) {
+            public boolean isPackage( final char[][] parentPackageName, final char[] pPackageName ) {
                 final StringBuilder result = new StringBuilder();
                 if (parentPackageName != null) {
                     for (int i = 0; i < parentPackageName.length; i++) {
@@ -358,7 +358,7 @@
         final ICompilerRequestor compilerRequestor = new ICompilerRequestor() {
             public void acceptResult( final CompilationResult pResult ) {
                 if (pResult.hasProblems()) {
-                    for (IProblem iproblem : pResult.getProblems()) {
+                    for (final IProblem iproblem : pResult.getProblems()) {
                         final CompilationProblem problem = new EclipseCompilationProblem(iproblem);
                         if (problemHandler != null) {
                             problemHandler.handle(problem);
@@ -368,7 +368,7 @@
                 }
                 if (!pResult.hasErrors()) {
                     final ClassFile[] clazzFiles = pResult.getClassFiles();
-                    for (ClassFile clazzFile : clazzFiles) {
+                    for (final ClassFile clazzFile : clazzFiles) {
                         final char[][] compoundName = clazzFile.getCompoundName();
                         final StringBuilder clazzName = new StringBuilder();
                         for (int j = 0; j < compoundName.length; j++) {
diff --git a/compilers/eclipse/src/test/java/org/apache/commons/jci2/compilers/EclipseJavaCompilerTestCase.java b/compilers/eclipse/src/test/java/org/apache/commons/jci2/compilers/EclipseJavaCompilerTestCase.java
index 444883f..822b4e1 100644
--- a/compilers/eclipse/src/test/java/org/apache/commons/jci2/compilers/EclipseJavaCompilerTestCase.java
+++ b/compilers/eclipse/src/test/java/org/apache/commons/jci2/compilers/EclipseJavaCompilerTestCase.java
@@ -35,7 +35,7 @@
     public void testAdditionalTopLevelClassCompile() throws Exception {
         try {
             super.testAdditionalTopLevelClassCompile();
-        } catch (AssertionFailedError e) {
+        } catch (final AssertionFailedError e) {
             if (e.getMessage().contains("The type AdditionalTopLevel collides")) {
                 System.err.println("WARNING: See JCI-59 - EclipseJavaCompile#isPackage() is not yet working correctly - ignoring the failure for now");
             } else {
diff --git a/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyCompilationProblem.java b/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyCompilationProblem.java
index 7a6b3af..d871b80 100755
--- a/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyCompilationProblem.java
+++ b/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyCompilationProblem.java
@@ -46,8 +46,8 @@
             error = true;
         }
         if (pMessage instanceof SyntaxErrorMessage) {
-            SyntaxErrorMessage syntaxErrorMessage = (SyntaxErrorMessage)pMessage;
-            SyntaxException syntaxException = syntaxErrorMessage.getCause();
+            final SyntaxErrorMessage syntaxErrorMessage = (SyntaxErrorMessage)pMessage;
+            final SyntaxException syntaxException = syntaxErrorMessage.getCause();
             message = syntaxException.getMessage();
             fileName = syntaxException.getSourceLocator();
             // FIXME: getStartLine() vs. getLine()
diff --git a/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyJavaCompiler.java b/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyJavaCompiler.java
index 6322093..7450791 100644
--- a/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyJavaCompiler.java
+++ b/compilers/groovy/src/main/java/org/apache/commons/jci2/compilers/GroovyJavaCompiler.java
@@ -87,7 +87,7 @@
             
             @SuppressWarnings("unchecked") // Groovy library is not yet generic
             final List<GroovyClass> classes = unit.getClasses();
-            for (GroovyClass clazz : classes) {
+            for (final GroovyClass clazz : classes) {
                 final byte[] bytes = clazz.getBytes();
                 pStore.write(ConversionUtils.convertClassToResourcePath(clazz.getName()), bytes);
             }
@@ -96,7 +96,7 @@
             @SuppressWarnings("unchecked") // Groovy library is not yet generic
             final Collection<WarningMessage> warnings = col.getWarnings();
             if (warnings != null) {
-                for (WarningMessage warning : warnings) {
+                for (final WarningMessage warning : warnings) {
                     final CompilationProblem problem = new GroovyCompilationProblem(warning); 
                     if (problemHandler != null) {
                         problemHandler.handle(problem);
@@ -108,7 +108,7 @@
             @SuppressWarnings("unchecked") // Groovy library is not yet generic
             final Collection<Message> errors = col.getErrors();
             if (errors != null) {
-                for (Message message : errors) {
+                for (final Message message : errors) {
                     final CompilationProblem problem = new GroovyCompilationProblem(message); 
                     if (problemHandler != null) {
                         problemHandler.handle(problem);
@@ -116,7 +116,7 @@
                     problems.add(problem);
                 }
             }
-        } catch (CompilationFailedException e) {
+        } catch (final CompilationFailedException e) {
             throw new RuntimeException("no expected");
         }
 
diff --git a/compilers/janino/src/main/java/org/apache/commons/jci2/compilers/JaninoJavaCompiler.java b/compilers/janino/src/main/java/org/apache/commons/jci2/compilers/JaninoJavaCompiler.java
index 8d38a05..9a5875c 100644
--- a/compilers/janino/src/main/java/org/apache/commons/jci2/compilers/JaninoJavaCompiler.java
+++ b/compilers/janino/src/main/java/org/apache/commons/jci2/compilers/JaninoJavaCompiler.java
@@ -190,9 +190,9 @@
         
         try {
             compiler.compile(resources);
-        } catch ( LocatedException e ) {
+        } catch ( final LocatedException e ) {
             problems.add(new JaninoCompilationProblem(e));
-        } catch ( IOException e ) {
+        } catch ( final IOException e ) {
             // low level problems reading or writing bytes
         	log.error("this error should have been cought before", e);
         }        
diff --git a/compilers/jsr199/src/main/java/org/apache/commons/jci2/compilers/Jsr199JavaCompiler.java b/compilers/jsr199/src/main/java/org/apache/commons/jci2/compilers/Jsr199JavaCompiler.java
index b71e8c6..25e7144 100644
--- a/compilers/jsr199/src/main/java/org/apache/commons/jci2/compilers/Jsr199JavaCompiler.java
+++ b/compilers/jsr199/src/main/java/org/apache/commons/jci2/compilers/Jsr199JavaCompiler.java
@@ -66,9 +66,9 @@
         }
 
         @Override
-        public CharSequence getCharContent(boolean encodingErrors) throws IOException {
+        public CharSequence getCharContent(final boolean encodingErrors) throws IOException {
             log.debug("getCharContent of " + name);
-            byte[] content = reader.getBytes(name);
+            final byte[] content = reader.getBytes(name);
             return new String(content);
         }
 
@@ -85,7 +85,7 @@
         }
 
         @Override
-        public boolean isNameCompatible(String simpleName, Kind kind) {
+        public boolean isNameCompatible(final String simpleName, final Kind kind) {
             log.debug("isNameCompatible " + simpleName + " " + kind);
             // return super.isNameCompatible(simpleName, kind);
             return true;
@@ -104,7 +104,7 @@
         }
 
         @Override
-        public Reader openReader(boolean arg0) throws IOException {
+        public Reader openReader(final boolean arg0) throws IOException {
             log.debug("openReader");
             return super.openReader(arg0);
         }
@@ -137,51 +137,51 @@
         public void flush() {
             log.debug("flush");
         }
-        public ClassLoader getClassLoader(JavaFileManager.Location location) {
+        public ClassLoader getClassLoader(final JavaFileManager.Location location) {
             log.debug("getClassLoader");
             return null;
         }
-        public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) {
+        public FileObject getFileForInput(final JavaFileManager.Location location, final String packageName, final String relativeName) {
             log.debug("getFileForInput");
             return null;
         }
-        public FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) {
+        public FileObject getFileForOutput(final JavaFileManager.Location location, final String packageName, final String relativeName, final FileObject sibling) {
             log.debug("getFileForOutput");
             return null;
         }
-        public JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) {
+        public JavaFileObject getJavaFileForInput(final JavaFileManager.Location location, final String className, final JavaFileObject.Kind kind) {
             log.debug("getJavaFileForInput");
             return null;
         }
-        public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) {
+        public JavaFileObject getJavaFileForOutput(final JavaFileManager.Location location, final String className, final JavaFileObject.Kind kind, final FileObject sibling) {
             log.debug("getJavaFileForOutput");
             return null;
         }
-        public int isSupportedOption(String option) {
+        public int isSupportedOption(final String option) {
             log.debug("isSupportedOption " + option);
             return 0;
         }
-        public boolean handleOption(String current, Iterator<String> remaining) {
+        public boolean handleOption(final String current, final Iterator<String> remaining) {
             log.debug("handleOption " + current);
             return false;
         }
-        public boolean hasLocation(JavaFileManager.Location location) {
+        public boolean hasLocation(final JavaFileManager.Location location) {
             log.debug("hasLocation " + location);
             return false;
         }
-        public String inferBinaryName(JavaFileManager.Location location, JavaFileObject file) {
-            String s = file.getName().replaceFirst(".java", ".class"); 
+        public String inferBinaryName(final JavaFileManager.Location location, final JavaFileObject file) {
+            final String s = file.getName().replaceFirst(".java", ".class"); 
             log.debug("inferBinaryName " + file.getName() + " -> " + s);
             return s;
         }
-        public Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) {
+        public Iterable<JavaFileObject> list(final JavaFileManager.Location location, final String packageName, final Set<JavaFileObject.Kind> kinds, final boolean recurse) {
             if (packageName.startsWith("java.")) {
                 return new ArrayList<JavaFileObject>();
             }
             log.debug("list " + location + packageName + kinds + recurse);
             return units;
         }
-        public boolean isSameFile(FileObject fileobject, FileObject fileobject1) {
+        public boolean isSameFile(final FileObject fileobject, final FileObject fileobject1) {
           return false;
         }
     }
@@ -196,11 +196,10 @@
         settings = pSettings;
     }
 
-    public CompilationResult compile( final String[] pResourcePaths, final ResourceReader pReader, final ResourceStore pStore, final ClassLoader classLoader, JavaCompilerSettings settings) {
+    public CompilationResult compile( final String[] pResourcePaths, final ResourceReader pReader, final ResourceStore pStore, final ClassLoader classLoader, final JavaCompilerSettings settings) {
 
         final Collection<JavaFileObject> units = new ArrayList<JavaFileObject>();
-        for (int i = 0; i < pResourcePaths.length; i++) {
-            final String sourcePath = pResourcePaths[i];
+        for (final String sourcePath : pResourcePaths) {
             log.debug("compiling " + sourcePath);
             units.add(new CompilationUnit(sourcePath, pReader));
         }
@@ -208,7 +207,7 @@
         JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
 
         if (compiler == null) {
-            ServiceLoader<javax.tools.JavaCompiler> loader = ServiceLoader.load(javax.tools.JavaCompiler.class);
+            final ServiceLoader<javax.tools.JavaCompiler> loader = ServiceLoader.load(javax.tools.JavaCompiler.class);
             compiler = loader.iterator().next();
         }
 
@@ -219,7 +218,7 @@
         final JavaFileManager fileManager = new JciJavaFileManager(units, pStore);
         final DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
 
-        CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, units);
+        final CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, units);
 
         if (task.call().booleanValue()) {
             log.debug("compiled");
diff --git a/compilers/rhino/src/main/java/org/apache/commons/jci2/compilers/RhinoJavaCompiler.java b/compilers/rhino/src/main/java/org/apache/commons/jci2/compilers/RhinoJavaCompiler.java
index f4f093e..7b477dd 100644
--- a/compilers/rhino/src/main/java/org/apache/commons/jci2/compilers/RhinoJavaCompiler.java
+++ b/compilers/rhino/src/main/java/org/apache/commons/jci2/compilers/RhinoJavaCompiler.java
@@ -72,7 +72,7 @@
         
         private final class ProblemCollector implements ErrorReporter {
 
-            public void error(String pMessage, String pFileName, int pLine, String pScript, int pColumn) {
+            public void error(final String pMessage, final String pFileName, final int pLine, final String pScript, final int pColumn) {
 
                 final CompilationProblem problem = new RhinoCompilationProblem(pMessage, pFileName, pLine, pScript, pColumn, true); 
 
@@ -83,7 +83,7 @@
                 problems.add(problem); 
             }
 
-            public void warning(String pMessage, String pFileName, int pLine, String pScript, int pColumn) {
+            public void warning(final String pMessage, final String pFileName, final int pLine, final String pScript, final int pColumn) {
 
                 final CompilationProblem problem = new RhinoCompilationProblem(pMessage, pFileName, pLine, pScript, pColumn, false); 
 
@@ -94,7 +94,7 @@
                 problems.add(problem); 
             }
 
-            public EvaluatorException runtimeError(String pMessage, String pFileName, int pLine, String pScript, int pColumn) {
+            public EvaluatorException runtimeError(final String pMessage, final String pFileName, final int pLine, final String pScript, final int pColumn) {
                 return new EvaluatorException(pMessage, pFileName, pLine, pScript, pColumn);
             }
         }
@@ -121,9 +121,9 @@
 
             try {
                 return compileClass(context, pName);
-            } catch( EvaluatorException e ) {
+            } catch( final EvaluatorException e ) {
                 throw new ClassNotFoundException(e.getMessage(), e);
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 throw new ClassNotFoundException(e.getMessage(), e);
             } finally {
                 Context.exit();
@@ -212,7 +212,7 @@
 
                 store.write(clazzName.replace('.', '/') + ".class", clazzBytes);
 
-                Class<?> c = loader.defineClass(clazzName, clazzBytes);
+                final Class<?> c = loader.defineClass(clazzName, clazzBytes);
                 loader.linkClass(c);
 
                 if (i == 0) {
@@ -224,7 +224,7 @@
             return clazz;
         }
 
-        private String getName(String s) {
+        private String getName(final String s) {
             final int i = s.lastIndexOf('/');
             if (i < 0) {
                 return s;
@@ -257,13 +257,13 @@
 
         final RhinoCompilingClassLoader cl = new RhinoCompilingClassLoader(pReader, pStore, pClassLoader);
 
-        for (int i = 0; i < pResourcePaths.length; i++) {
-            log.debug("compiling " + pResourcePaths[i]);
+        for (final String pResourcePath : pResourcePaths) {
+            log.debug("compiling " + pResourcePath);
             
-            final String clazzName = ConversionUtils.convertResourceToClassName(pResourcePaths[i]);
+            final String clazzName = ConversionUtils.convertResourceToClassName(pResourcePath);
             try {
                 cl.loadClass(clazzName);
-            } catch (ClassNotFoundException e) {
+            } catch (final ClassNotFoundException e) {
             }
         }
 
diff --git a/core/src/main/java/org/apache/commons/jci2/ReloadingClassLoader.java b/core/src/main/java/org/apache/commons/jci2/ReloadingClassLoader.java
index e664556..771c274 100644
--- a/core/src/main/java/org/apache/commons/jci2/ReloadingClassLoader.java
+++ b/core/src/main/java/org/apache/commons/jci2/ReloadingClassLoader.java
@@ -104,27 +104,27 @@
         delegate.clearAssertionStatus();
     }
     @Override
-    public URL getResource(String name) {
+    public URL getResource(final String name) {
         return delegate.getResource(name);
     }
     @Override
-    public InputStream getResourceAsStream(String name) {
+    public InputStream getResourceAsStream(final String name) {
         return delegate.getResourceAsStream(name);
     }
     @Override
-    public Class<?> loadClass(String name) throws ClassNotFoundException {
+    public Class<?> loadClass(final String name) throws ClassNotFoundException {
         return delegate.loadClass(name);
     }
     @Override
-    public void setClassAssertionStatus(String className, boolean enabled) {
+    public void setClassAssertionStatus(final String className, final boolean enabled) {
         delegate.setClassAssertionStatus(className, enabled);
     }
     @Override
-    public void setDefaultAssertionStatus(boolean enabled) {
+    public void setDefaultAssertionStatus(final boolean enabled) {
         delegate.setDefaultAssertionStatus(enabled);
     }
     @Override
-    public void setPackageAssertionStatus(String packageName, boolean enabled) {
+    public void setPackageAssertionStatus(final String packageName, final boolean enabled) {
         delegate.setPackageAssertionStatus(packageName, enabled);
     }
 }
diff --git a/core/src/main/java/org/apache/commons/jci2/compilers/CompilationResult.java b/core/src/main/java/org/apache/commons/jci2/compilers/CompilationResult.java
index ca22097..b48a680 100644
--- a/core/src/main/java/org/apache/commons/jci2/compilers/CompilationResult.java
+++ b/core/src/main/java/org/apache/commons/jci2/compilers/CompilationResult.java
@@ -38,7 +38,7 @@
         final Collection<CompilationProblem> errorsColl = new ArrayList<CompilationProblem>();
         final Collection<CompilationProblem> warningsColl = new ArrayList<CompilationProblem>();
 
-        for (CompilationProblem problem : pProblems) {
+        for (final CompilationProblem problem : pProblems) {
             if (problem.isError()) {
                 errorsColl.add(problem);
             } else {
diff --git a/core/src/main/java/org/apache/commons/jci2/compilers/JavaCompilerFactory.java b/core/src/main/java/org/apache/commons/jci2/compilers/JavaCompilerFactory.java
index 198eb74..1027fda 100644
--- a/core/src/main/java/org/apache/commons/jci2/compilers/JavaCompilerFactory.java
+++ b/core/src/main/java/org/apache/commons/jci2/compilers/JavaCompilerFactory.java
@@ -76,7 +76,7 @@
             try {
                 clazz = Class.forName(className);
                 classCache.put(className, clazz);
-            } catch (ClassNotFoundException e) {
+            } catch (final ClassNotFoundException e) {
                 clazz = null;
             }
         }
@@ -87,7 +87,7 @@
         
         try {
             return (JavaCompiler) clazz.newInstance();
-        } catch (Throwable t) {
+        } catch (final Throwable t) {
             return null;
         }
     }
diff --git a/core/src/main/java/org/apache/commons/jci2/listeners/CompilingListener.java b/core/src/main/java/org/apache/commons/jci2/listeners/CompilingListener.java
index ea62ae8..ca7b547 100644
--- a/core/src/main/java/org/apache/commons/jci2/listeners/CompilingListener.java
+++ b/core/src/main/java/org/apache/commons/jci2/listeners/CompilingListener.java
@@ -105,13 +105,13 @@
 
         final Collection<String> resourceNames = new ArrayList<String>();
         
-        for (File createdFile : created) {
+        for (final File createdFile : created) {
             if (createdFile.getName().endsWith(getSourceFileExtension())) {
                 resourceNames.add(getSourceNameFromFile(pObserver, createdFile));
             }
         }
         
-        for (File changedFile : changed) {
+        for (final File changedFile : changed) {
             if (changedFile.getName().endsWith(getSourceFileExtension())) {
                 resourceNames.add(getSourceNameFromFile(pObserver, changedFile));
             }
@@ -133,7 +133,7 @@
         log.debug("created:" + created.size() + " changed:" + changed.size() + " deleted:" + deleted.size() + " resources");
 
         if (deleted.size() > 0) {
-            for (File deletedFile : deleted) {
+            for (final File deletedFile : deleted) {
                 final String resourceName = ConversionUtils.getResourceNameFromFileName(ConversionUtils.relative(pObserver.getRootDirectory(), deletedFile));
                 
                 if (resourceName.endsWith(getSourceFileExtension())) {
@@ -170,8 +170,8 @@
             if (errors.length > 0) {
                 // FIXME: they need to be marked for re-compilation
                 // and then added as compileables again
-                for (int j = 0; j < resourcesToCompile.length; j++) {
-                    transactionalStore.remove(resourcesToCompile[j]);
+                for (final String element : resourcesToCompile) {
+                    transactionalStore.remove(element);
                 }
             }
             
diff --git a/core/src/main/java/org/apache/commons/jci2/listeners/ReloadingListener.java b/core/src/main/java/org/apache/commons/jci2/listeners/ReloadingListener.java
index 0675667..2c1ecd6 100644
--- a/core/src/main/java/org/apache/commons/jci2/listeners/ReloadingListener.java
+++ b/core/src/main/java/org/apache/commons/jci2/listeners/ReloadingListener.java
@@ -77,7 +77,7 @@
         log.debug("created:" + created.size() + " changed:" + changed.size() + " deleted:" + deleted.size() + " resources");
 
         if (deleted.size() > 0) {
-            for (File file : deleted) {
+            for (final File file : deleted) {
                 final String resourceName = ConversionUtils.getResourceNameFromFileName(ConversionUtils.relative(pObserver.getRootDirectory(), file));
                 store.remove(resourceName);
             }
@@ -85,7 +85,7 @@
         }
 
         if (created.size() > 0) {
-            for (File file : created) {
+            for (final File file : created) {
                 FileInputStream is = null;
                 try {
                     is = new FileInputStream(file);
@@ -101,7 +101,7 @@
         }
 
         if (changed.size() > 0) {
-            for (File file : changed) {
+            for (final File file : changed) {
                 FileInputStream is = null;
                 try {
                     is = new FileInputStream(file);
@@ -142,7 +142,7 @@
     }
 
     void notifyReloadNotificationListeners() {
-        for (ReloadNotificationListener listener : notificationListeners) {
+        for (final ReloadNotificationListener listener : notificationListeners) {
             log.debug("notifying listener " + listener);
 
             listener.handleNotification();
diff --git a/core/src/main/java/org/apache/commons/jci2/readers/FileResourceReader.java b/core/src/main/java/org/apache/commons/jci2/readers/FileResourceReader.java
index b285db7..aebe2a1 100644
--- a/core/src/main/java/org/apache/commons/jci2/readers/FileResourceReader.java
+++ b/core/src/main/java/org/apache/commons/jci2/readers/FileResourceReader.java
@@ -43,7 +43,7 @@
     public byte[] getBytes( final String pResourceName ) {
         try {
             return FileUtils.readFileToString(new File(root, pResourceName), "UTF-8").getBytes();
-        } catch(Exception e) {
+        } catch(final Exception e) {
             return null;
         }
     }
@@ -65,8 +65,8 @@
     private void list( final File pFile, final List<String> pFiles ) {
         if (pFile.isDirectory()) {
             final File[] directoryFiles = pFile.listFiles();
-            for (int i = 0; i < directoryFiles.length; i++) {
-                list(directoryFiles[i], pFiles);
+            for (final File directoryFile : directoryFiles) {
+                list(directoryFile, pFiles);
             }
         } else {
             pFiles.add(pFile.getAbsolutePath().substring(root.getAbsolutePath().length()+1));
diff --git a/core/src/main/java/org/apache/commons/jci2/stores/FileResourceStore.java b/core/src/main/java/org/apache/commons/jci2/stores/FileResourceStore.java
index 00b92b1..003bf17 100644
--- a/core/src/main/java/org/apache/commons/jci2/stores/FileResourceStore.java
+++ b/core/src/main/java/org/apache/commons/jci2/stores/FileResourceStore.java
@@ -48,7 +48,7 @@
             is = new FileInputStream(getFile(pResourceName));
             final byte[] data = IOUtils.toByteArray(is);
             return data;
-        } catch (Exception e) {
+        } catch (final Exception e) {
             return null;
         } finally {
             IOUtils.closeQuietly(is);
@@ -65,7 +65,7 @@
             }
             os = new FileOutputStream(file);
             os.write(pData);
-        } catch (Exception e) {
+        } catch (final Exception e) {
             // FIXME: now what?
         } finally {
             IOUtils.closeQuietly(os);
@@ -98,8 +98,8 @@
     private void list(final File pFile, final List<String> pFiles) {
         if (pFile.isDirectory()) {
             final File[] directoryFiles = pFile.listFiles();
-            for (int i=0; i < directoryFiles.length; i++) {
-                list(directoryFiles[i], pFiles);
+            for (final File directoryFile : directoryFiles) {
+                list(directoryFile, pFiles);
             }
         } else {
             pFiles.add(pFile.getAbsolutePath().substring(root.getAbsolutePath().length()+1));
diff --git a/core/src/main/java/org/apache/commons/jci2/stores/MemoryResourceStore.java b/core/src/main/java/org/apache/commons/jci2/stores/MemoryResourceStore.java
index eb50166..84f1d92 100644
--- a/core/src/main/java/org/apache/commons/jci2/stores/MemoryResourceStore.java
+++ b/core/src/main/java/org/apache/commons/jci2/stores/MemoryResourceStore.java
@@ -61,7 +61,7 @@
         }
         final List<String> names = new ArrayList<String>();
         
-        for (String name : store.keySet()) {
+        for (final String name : store.keySet()) {
             names.add(name);
         }
 
diff --git a/core/src/main/java/org/apache/commons/jci2/stores/ResourceStoreClassLoader.java b/core/src/main/java/org/apache/commons/jci2/stores/ResourceStoreClassLoader.java
index 175376f..0b8db35 100644
--- a/core/src/main/java/org/apache/commons/jci2/stores/ResourceStoreClassLoader.java
+++ b/core/src/main/java/org/apache/commons/jci2/stores/ResourceStoreClassLoader.java
@@ -42,7 +42,7 @@
     private Class<?> fastFindClass(final String name) {
         
         if (stores != null) {
-            for (ResourceStore store : stores) {
+            for (final ResourceStore store : stores) {
                 final byte[] clazzBytes = store.read(ConversionUtils.convertClassToResourcePath(name));
                 if (clazzBytes != null) {
                     log.debug(getId() + " found class: " + name  + " (" + clazzBytes.length + " bytes)");
@@ -55,7 +55,7 @@
     }
     
     @Override
-    protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
+    protected synchronized Class<?> loadClass(final String name, final boolean resolve) throws ClassNotFoundException {
         // log.debug(getId() + " looking for: " + name);
         Class<?> clazz = findLoadedClass(name);
 
diff --git a/core/src/test/java/org/apache/commons/jci2/CompilingClassLoaderTestCase.java b/core/src/test/java/org/apache/commons/jci2/CompilingClassLoaderTestCase.java
index 7d4bac2..566e216 100644
--- a/core/src/test/java/org/apache/commons/jci2/CompilingClassLoaderTestCase.java
+++ b/core/src/test/java/org/apache/commons/jci2/CompilingClassLoaderTestCase.java
@@ -51,10 +51,9 @@
 
         private final Log log = LogFactory.getLog(MockJavaCompiler.class);
 
-        public CompilationResult compile(String[] pResourcePaths, ResourceReader pReader, ResourceStore pStore, ClassLoader pClassLoader, JavaCompilerSettings pSettings ) {
+        public CompilationResult compile(final String[] pResourcePaths, final ResourceReader pReader, final ResourceStore pStore, final ClassLoader pClassLoader, final JavaCompilerSettings pSettings ) {
 
-            for (int i = 0; i < pResourcePaths.length; i++) {
-                final String resourcePath = pResourcePaths[i];
+            for (final String resourcePath : pResourcePaths) {
                 final byte[] resourceContent = pReader.getBytes(resourcePath);
 
                 log.debug("resource " + resourcePath + " = " + ((resourceContent!=null)?new String(resourceContent):null) );
@@ -65,7 +64,7 @@
 
                     try {
                         data = SimpleDump.dump(new String(resourceContent));
-                    } catch (Exception e) {
+                    } catch (final Exception e) {
                         throw new RuntimeException("cannot handle resource " + resourcePath, e);
                     }
 
@@ -73,7 +72,7 @@
 
                     try {
                         data = ExtendedDump.dump();
-                    } catch (Exception e) {
+                    } catch (final Exception e) {
                         throw new RuntimeException("cannot handle resource " + resourcePath, e);
                     }
 
@@ -90,15 +89,15 @@
             return new CompilationResult(new CompilationProblem[0]);
         }
 
-        public CompilationResult compile(String[] pResourcePaths, ResourceReader pReader, ResourceStore pStore, ClassLoader pClassLoader) {
+        public CompilationResult compile(final String[] pResourcePaths, final ResourceReader pReader, final ResourceStore pStore, final ClassLoader pClassLoader) {
             return compile(pResourcePaths, pReader, pStore, pClassLoader, null);
         }
 
-        public CompilationResult compile(String[] pResourcePaths, ResourceReader pReader, ResourceStore pStore) {
+        public CompilationResult compile(final String[] pResourcePaths, final ResourceReader pReader, final ResourceStore pStore) {
             return compile(pResourcePaths, pReader, pStore, null);
         }
 
-        public void setCompilationProblemHandler(CompilationProblemHandler pHandler) {
+        public void setCompilationProblemHandler(final CompilationProblemHandler pHandler) {
         }
 
         public JavaCompilerSettings createDefaultSettings() {
diff --git a/core/src/test/java/org/apache/commons/jci2/ReloadingClassLoaderRemoveTestCase.java b/core/src/test/java/org/apache/commons/jci2/ReloadingClassLoaderRemoveTestCase.java
index b79fe69..8879017 100644
--- a/core/src/test/java/org/apache/commons/jci2/ReloadingClassLoaderRemoveTestCase.java
+++ b/core/src/test/java/org/apache/commons/jci2/ReloadingClassLoaderRemoveTestCase.java
@@ -34,10 +34,10 @@
     private final Log log = LogFactory.getLog(ReloadingClassLoaderRemoveTestCase.class);
     
     private final byte[] clazzSimpleA;
-    private MemoryResourceStore store1 = new MemoryResourceStore();
-    private MemoryResourceStore store2 = new MemoryResourceStore();
-    private MemoryResourceStore store3 = new MemoryResourceStore();
-    private MemoryResourceStore store4 = new MemoryResourceStore();
+    private final MemoryResourceStore store1 = new MemoryResourceStore();
+    private final MemoryResourceStore store2 = new MemoryResourceStore();
+    private final MemoryResourceStore store3 = new MemoryResourceStore();
+    private final MemoryResourceStore store4 = new MemoryResourceStore();
 
     public ReloadingClassLoaderRemoveTestCase() throws Exception {
         clazzSimpleA = SimpleDump.dump("SimpleA");
@@ -60,7 +60,7 @@
      * Bug: The While loop in the removeResourceStore() throws an ArrayOutOfBoundsException
      */
     public void testRemoveStoreNotFoundClassLoaderNoStores() {
-        ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
+        final ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
         checkRemoveResourceStore("No ResourceStore", loader, store1, false);
     }
 
@@ -71,7 +71,7 @@
      * Bug: The While loop in the removeResourceStore() throws an ArrayOutOfBoundsException
      */
     public void testRemoveStoreNotFoundClassLoaderHasStores() {
-        ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
+        final ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
         loader.addResourceStore(store1);
         loader.addResourceStore(store2);
         checkRemoveResourceStore("Has ResourceStore", loader, store3, false);
@@ -86,7 +86,7 @@
      *      array is too large.
      */
     public void testRemoveStoresOne() {
-        ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
+        final ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
         loader.addResourceStore(store1);
         loader.addResourceStore(store2);
         loader.addResourceStore(store3);
@@ -113,7 +113,7 @@
      *      ArrayIndexOutOfBoundsException (??not sure why??)
      */
     public void testRemoveStoresTwo() {
-        ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
+        final ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
         loader.addResourceStore(store1);
         loader.addResourceStore(store2);
         loader.addResourceStore(store3);
@@ -140,7 +140,7 @@
      *      and copies store3 and store2 to their same positions
      */
     public void testRemoveStoresThree() {
-        ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
+        final ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
         loader.addResourceStore(store1);
         loader.addResourceStore(store2);
         loader.addResourceStore(store3);
@@ -167,7 +167,7 @@
      *      ArrayIndexOutOfBoundsException because the length to copy is -1
      */
     public void testRemoveStoresFour() {
-        ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
+        final ReloadingClassLoader loader = new ReloadingClassLoader(getClass().getClassLoader());
         loader.addResourceStore(store1);
         loader.addResourceStore(store2);
         loader.addResourceStore(store3);
@@ -199,37 +199,37 @@
     public void testLoadClassAfterResourceStoreRemoved() {
 
         // Create a class loader & add resource store
-        ReloadingClassLoader loader = new ReloadingClassLoader(this.getClass().getClassLoader());
-        MemoryResourceStore store = new MemoryResourceStore();
+        final ReloadingClassLoader loader = new ReloadingClassLoader(this.getClass().getClassLoader());
+        final MemoryResourceStore store = new MemoryResourceStore();
         loader.addResourceStore(store);
 
         // Check "jci2.Simple" class can't be loaded
         try {
             loader.loadClass("jci2.Simple").newInstance();
             fail("Success loadClass[1]");
-        } catch(ClassNotFoundException e) {
+        } catch(final ClassNotFoundException e) {
             // expected not found
-        } catch(Exception e) {
+        } catch(final Exception e) {
             log.error(e);
             fail("Error loadClass[1]: " + e);
         }
 
         // Add "jci2.Simple" class to the resource store
-        String toStringValue = "FooBar";
+        final String toStringValue = "FooBar";
         try {
-            byte[] classBytes = SimpleDump.dump(toStringValue);
+            final byte[] classBytes = SimpleDump.dump(toStringValue);
             store.write("jci2/Simple.class", classBytes);
-        } catch(Exception e) {
+        } catch(final Exception e) {
             log.error(e);
             fail("Error adding class to store: " + e);
         }
 
         // Check "jci2.Simple" class can now be loaded
         try {
-            Object simple2 = loader.loadClass("jci2.Simple").newInstance();
+            final Object simple2 = loader.loadClass("jci2.Simple").newInstance();
             assertNotNull("Found loadClass[2]",  simple2);        
             assertEquals("toString loadClass[2]",  toStringValue, simple2.toString());        
-        } catch(Exception e) {
+        } catch(final Exception e) {
             log.error(e);
             fail("Error loadClass[2]: " + e);
         }
@@ -241,9 +241,9 @@
         try {
             loader.loadClass("jci2.Simple").newInstance();
             fail("Success loadClass[3]");
-        } catch(ClassNotFoundException e) {
+        } catch(final ClassNotFoundException e) {
             // expected not found
-        } catch(Exception e) {
+        } catch(final Exception e) {
             log.error(e);
             fail("Error loadClass[3]: " + e);
         }
@@ -253,10 +253,10 @@
     /**
      * Check removing a ResourceStore from ReloadingClassLoader
      */
-    private void checkRemoveResourceStore(String label, ReloadingClassLoader loader, ResourceStore store, boolean expected) {
+    private void checkRemoveResourceStore(final String label, final ReloadingClassLoader loader, final ResourceStore store, final boolean expected) {
         try {
             assertEquals(label, expected, loader.removeResourceStore(store));
-        } catch(Exception e) {
+        } catch(final Exception e) {
             log.error(label, e);
             fail(label + " failed: " + e);
         }
diff --git a/core/src/test/java/org/apache/commons/jci2/classes/ExtendedDump.java b/core/src/test/java/org/apache/commons/jci2/classes/ExtendedDump.java
index 81f28bb..6f3688f 100644
--- a/core/src/test/java/org/apache/commons/jci2/classes/ExtendedDump.java
+++ b/core/src/test/java/org/apache/commons/jci2/classes/ExtendedDump.java
@@ -27,7 +27,7 @@
 
     public static byte[] dump() throws Exception {
 
-        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
+        final ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
         MethodVisitor mv;
 
         cw.visit(V1_4, ACC_PUBLIC + ACC_SUPER, "jci2/Extended", null, "jci2/Simple", null);
@@ -37,13 +37,13 @@
         {
             mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
             mv.visitCode();
-            Label l0 = new Label();
+            final Label l0 = new Label();
             mv.visitLabel(l0);
             mv.visitLineNumber(3, l0);
             mv.visitVarInsn(ALOAD, 0);
             mv.visitMethodInsn(INVOKESPECIAL, "jci2/Simple", "<init>", "()V");
             mv.visitInsn(RETURN);
-            Label l1 = new Label();
+            final Label l1 = new Label();
             mv.visitLabel(l1);
             mv.visitLocalVariable("this", "Ljci/Extended;", null, l0, l1, 0);
             mv.visitMaxs(1, 1);
@@ -52,7 +52,7 @@
         {
             mv = cw.visitMethod(ACC_PUBLIC, "toString", "()Ljava/lang/String;", null, null);
             mv.visitCode();
-            Label l0 = new Label();
+            final Label l0 = new Label();
             mv.visitLabel(l0);
             mv.visitLineNumber(6, l0);
             mv.visitTypeInsn(NEW, "java/lang/StringBuffer");
@@ -64,7 +64,7 @@
             mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuffer", "append", "(Ljava/lang/String;)Ljava/lang/StringBuffer;");
             mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/StringBuffer", "toString", "()Ljava/lang/String;");
             mv.visitInsn(ARETURN);
-            Label l1 = new Label();
+            final Label l1 = new Label();
             mv.visitLabel(l1);
             mv.visitLocalVariable("this", "Ljci/Extended;", null, l0, l1, 0);
             mv.visitMaxs(3, 1);
diff --git a/core/src/test/java/org/apache/commons/jci2/classes/SimpleDump.java b/core/src/test/java/org/apache/commons/jci2/classes/SimpleDump.java
index 42d623d..43afad7 100644
--- a/core/src/test/java/org/apache/commons/jci2/classes/SimpleDump.java
+++ b/core/src/test/java/org/apache/commons/jci2/classes/SimpleDump.java
@@ -26,7 +26,7 @@
 
     public static byte[] dump( final String to ) throws Exception {
 
-        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
+        final ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
         MethodVisitor mv;
 
         cw.visit(V1_4, ACC_PUBLIC + ACC_SUPER, "jci2/Simple", null, "java/lang/Object", null);
@@ -36,13 +36,13 @@
         {
             mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
             mv.visitCode();
-            Label l0 = new Label();
+            final Label l0 = new Label();
             mv.visitLabel(l0);
             mv.visitLineNumber(3, l0);
             mv.visitVarInsn(ALOAD, 0);
             mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
             mv.visitInsn(RETURN);
-            Label l1 = new Label();
+            final Label l1 = new Label();
             mv.visitLabel(l1);
             mv.visitLocalVariable("this", "Ljci/Simple;", null, l0, l1, 0);
             mv.visitMaxs(1, 1);
@@ -51,12 +51,12 @@
         {
             mv = cw.visitMethod(ACC_PUBLIC, "toString", "()Ljava/lang/String;", null, null);
             mv.visitCode();
-            Label l0 = new Label();
+            final Label l0 = new Label();
             mv.visitLabel(l0);
             mv.visitLineNumber(6, l0);
             mv.visitLdcInsn(to);
             mv.visitInsn(ARETURN);
-            Label l1 = new Label();
+            final Label l1 = new Label();
             mv.visitLabel(l1);
             mv.visitLocalVariable("this", "Ljci/Simple;", null, l0, l1, 0);
             mv.visitMaxs(1, 1);
diff --git a/core/src/test/java/org/apache/commons/jci2/compilers/AbstractCompilerTestCase.java b/core/src/test/java/org/apache/commons/jci2/compilers/AbstractCompilerTestCase.java
index 6b1d7e1..f5f1788 100644
--- a/core/src/test/java/org/apache/commons/jci2/compilers/AbstractCompilerTestCase.java
+++ b/core/src/test/java/org/apache/commons/jci2/compilers/AbstractCompilerTestCase.java
@@ -343,7 +343,7 @@
     public final String toString( final CompilationProblem[] pProblems ) {
         final StringBuilder sb = new StringBuilder();
 
-        for (CompilationProblem problem : pProblems) {
+        for (final CompilationProblem problem : pProblems) {
             sb.append(problem.getMessage()).append(", ");
         }
 
diff --git a/examples/src/main/java/org/apache/commons/jci2/examples/commandline/CommandlineCompiler.java b/examples/src/main/java/org/apache/commons/jci2/examples/commandline/CommandlineCompiler.java
index 596f19f..f79d713 100644
--- a/examples/src/main/java/org/apache/commons/jci2/examples/commandline/CommandlineCompiler.java
+++ b/examples/src/main/java/org/apache/commons/jci2/examples/commandline/CommandlineCompiler.java
@@ -46,7 +46,7 @@
  */
 public final class CommandlineCompiler {
     
-    public static void main( String[] args ) throws Exception {
+    public static void main( final String[] args ) throws Exception {
 
         final Options options = new Options();
 
@@ -115,7 +115,7 @@
         final JavaCompilerSettings settings = compiler.createDefaultSettings();
 
 
-        for (Iterator it = cmd.iterator(); it.hasNext();) {
+        for (final Iterator it = cmd.iterator(); it.hasNext();) {
             final Option option = (Option) it.next();
             if ("classpath".equals(option.getOpt())) {
                 final String[] values = option.getValues();
@@ -175,8 +175,8 @@
         
         final String[] resource = cmd.getArgs();
         
-        for (int i = 0; i < resource.length; i++) {
-            System.out.println("compiling " + resource[i]);
+        for (final String element : resource) {
+            System.out.println("compiling " + element);
         }
         
         final CompilationResult result = compiler.compile(resource, reader, store, classloader);
diff --git a/examples/src/main/java/org/apache/commons/jci2/examples/configuration/ConfigurationReloading.java b/examples/src/main/java/org/apache/commons/jci2/examples/configuration/ConfigurationReloading.java
index 5e2498e..a580572 100644
--- a/examples/src/main/java/org/apache/commons/jci2/examples/configuration/ConfigurationReloading.java
+++ b/examples/src/main/java/org/apache/commons/jci2/examples/configuration/ConfigurationReloading.java
@@ -38,7 +38,7 @@
 
     private final FilesystemAlterationMonitor fam = new FilesystemAlterationMonitor();
 
-    private void run(String[] args) {
+    private void run(final String[] args) {
 
         final File configFile = new File("some.properties");
 
@@ -47,7 +47,7 @@
         final Collection<Configurable> configurables = new ArrayList<Configurable>();
 
         final FilesystemAlterationListener listener = new FileChangeListener() {
-            public void onStop(FilesystemAlterationObserver pObserver) {
+            public void onStop(final FilesystemAlterationObserver pObserver) {
                 super.onStop(pObserver);
 
                 if (hasChanged()) {
@@ -61,16 +61,16 @@
 
                         System.out.println("Notifying about configuration change " + configFile);
 
-                        for (Configurable configurable : configurables) {
+                        for (final Configurable configurable : configurables) {
                             configurable.configure(props);
                         }
 
-                    } catch (Exception e) {
+                    } catch (final Exception e) {
                         System.err.println("Failed to load configuration " + configFile);
                     } finally {
                     	try {
 							is.close();
-						} catch (IOException e) {
+						} catch (final IOException e) {
 						}
                     }
 
@@ -86,12 +86,12 @@
         while(true) {
             try {
                 Thread.sleep(1000);
-            } catch (InterruptedException e) {
+            } catch (final InterruptedException e) {
             }
         }
     }
 
-    public static void main(String[] args) {
+    public static void main(final String[] args) {
         new ConfigurationReloading().run(args);
     }
 }
diff --git a/examples/src/main/java/org/apache/commons/jci2/examples/configuration/Something.java b/examples/src/main/java/org/apache/commons/jci2/examples/configuration/Something.java
index af8eb46..cfddfd6 100644
--- a/examples/src/main/java/org/apache/commons/jci2/examples/configuration/Something.java
+++ b/examples/src/main/java/org/apache/commons/jci2/examples/configuration/Something.java
@@ -21,7 +21,7 @@
 
 public class Something implements Configurable {
 
-    public void configure( Properties properties ) throws ConfigurationException {
+    public void configure( final Properties properties ) throws ConfigurationException {
         System.out.println("Configuration changed");
     }
 
diff --git a/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspGenerator.java b/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspGenerator.java
index 4e533a1..11706ce 100644
--- a/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspGenerator.java
+++ b/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspGenerator.java
@@ -38,7 +38,7 @@
         final StringBuilder sb = new StringBuilder();
         final char[] input = s.toCharArray();
 
-        for (char c : input) {
+        for (final char c : input) {
             if (c == '"') {
                 sb.append('\\');
             }
@@ -106,7 +106,7 @@
             char[] watch = open;
             int w = 0;
             while(true) {
-                int c = input.read();
+                final int c = input.read();
 
                 if (c < 0) {
                     break;
@@ -156,12 +156,12 @@
 
             return outputStream.toByteArray();
 
-        } catch (IOException e) {
+        } catch (final IOException e) {
             return null;
         } finally {
             try {
 				output.close();
-			} catch (IOException e) {
+			} catch (final IOException e) {
 			}        	
         }
     }
diff --git a/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspReader.java b/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspReader.java
index 3ba1da4..cd7849c 100644
--- a/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspReader.java
+++ b/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/JspReader.java
@@ -36,7 +36,7 @@
     }
 
 
-    public byte[] getBytes( String pResourceName ) {
+    public byte[] getBytes( final String pResourceName ) {
 
         final byte[] bytes = sources.get(pResourceName);
 
@@ -47,7 +47,7 @@
         return reader.getBytes(pResourceName);
     }
 
-    public boolean isAvailable( String pResourceName ) {
+    public boolean isAvailable( final String pResourceName ) {
 
         if (sources.containsKey(pResourceName)) {
             return true;
diff --git a/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/ServerPageServlet.java b/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/ServerPageServlet.java
index d7a156b..a1dac71 100644
--- a/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/ServerPageServlet.java
+++ b/examples/src/main/java/org/apache/commons/jci2/examples/serverpages/ServerPageServlet.java
@@ -84,7 +84,7 @@
                 super.onStop();
 
                 boolean reload = false;
-                for (String clazzName : newClasses) {
+                for (final String clazzName : newClasses) {
                     try {
                         final Class clazz = classloader.loadClass(clazzName);
 
@@ -98,7 +98,7 @@
                         newServletsByClassname.put(clazzName, servlet);
 
                         reload = true;
-                    } catch(Exception e) {
+                    } catch(final Exception e) {
                         log("", e);
                     }
                 }
@@ -109,7 +109,7 @@
                 }
             }
 
-            public void write(String pResourceName, byte[] pResourceData) {
+            public void write(final String pResourceName, final byte[] pResourceData) {
                 super.write(pResourceName, pResourceData);
 
                 if (pResourceName.endsWith(".class")) {
@@ -128,14 +128,14 @@
             private final Map<String, byte[]> sources = new HashMap<String, byte[]>();
             private final Set<String> resourceToCompile = new HashSet<String>();
 
-            public void onStart(FilesystemAlterationObserver pObserver) {
+            public void onStart(final FilesystemAlterationObserver pObserver) {
                 super.onStart(pObserver);
 
                 resourceToCompile.clear();
             }
 
 
-            public void onFileChange(File pFile) {
+            public void onFileChange(final File pFile) {
                 if (pFile.getName().endsWith(".jsp")) {
                     final String resourceName = ConversionUtils.stripExtension(getSourceNameFromFile(observer, pFile)) + ".java";
 
@@ -149,7 +149,7 @@
             }
 
 
-            public void onFileCreate(File pFile) {
+            public void onFileCreate(final File pFile) {
                 if (pFile.getName().endsWith(".jsp")) {
                     final String resourceName = ConversionUtils.stripExtension(getSourceNameFromFile(observer, pFile)) + ".java";
 
@@ -163,7 +163,7 @@
             }
 
 
-            public String[] getResourcesToCompile(FilesystemAlterationObserver pObserver) {
+            public String[] getResourcesToCompile(final FilesystemAlterationObserver pObserver) {
                 // we only want to compile the jsp pages
                 final String[] resourceNames = new String[resourceToCompile.size()];
                 resourceToCompile.toArray(resourceNames);
@@ -184,12 +184,12 @@
 
     private String convertRequestToServletClassname( final HttpServletRequest request ) {
 
-        String path = request.getPathInfo().substring(1);
+        final String path = request.getPathInfo().substring(1);
 
         return ConversionUtils.stripExtension(path).replace('/', '.');
     }
 
-    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+    protected void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
 
         log("Request " + request.getRequestURI());
 
@@ -204,7 +204,7 @@
 
             out.append("<html><body>");
 
-            for (CompilationProblem problem : errors) {
+            for (final CompilationProblem problem : errors) {
                 out.append(problem.toString()).append("<br/>").append('\n');
             }
 
diff --git a/fam/src/main/java/org/apache/commons/jci2/listeners/AbstractFilesystemAlterationListener.java b/fam/src/main/java/org/apache/commons/jci2/listeners/AbstractFilesystemAlterationListener.java
index cec2c18..22cf842 100644
--- a/fam/src/main/java/org/apache/commons/jci2/listeners/AbstractFilesystemAlterationListener.java
+++ b/fam/src/main/java/org/apache/commons/jci2/listeners/AbstractFilesystemAlterationListener.java
@@ -180,7 +180,7 @@
                 if (!pSignal.triggered) {
                     try {
                         pSignal.wait(1000);
-                    } catch (InterruptedException e) {
+                    } catch (final InterruptedException e) {
                     }
 
                     if (++i > pSecondsTimeout) {
diff --git a/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitor.java b/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitor.java
index d05fb50..6ee8f9f 100644
--- a/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitor.java
+++ b/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitor.java
@@ -62,7 +62,7 @@
         if (thread != null) {
             try {
                 thread.join(delay);
-            } catch (InterruptedException e) {
+            } catch (final InterruptedException e) {
             }
         }
     }
@@ -98,7 +98,7 @@
    
     public void removeListener( final FilesystemAlterationListener pListener ) {
         synchronized (observersLock) {
-            for (FilesystemAlterationObserver observer : observers.values()) {
+            for (final FilesystemAlterationObserver observer : observers.values()) {
                 observer.removeListener(pListener);
                 // FIXME: remove observer if there are no listeners?
             }
@@ -121,7 +121,7 @@
         
         while (running) {
 
-            for (FilesystemAlterationObserver observer : observers.values()) {
+            for (final FilesystemAlterationObserver observer : observers.values()) {
                 observer.checkAndNotify();
             }
 
diff --git a/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationObserverImpl.java b/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationObserverImpl.java
index 0bc471a..bc4dd54 100644
--- a/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationObserverImpl.java
+++ b/fam/src/main/java/org/apache/commons/jci2/monitor/FilesystemAlterationObserverImpl.java
@@ -122,7 +122,7 @@
 
             final MonitorFile[] files = file.listFiles();
             final Set<Entry> deleted = new HashSet<Entry>(children.values());
-            for (MonitorFile f : files) {
+            for (final MonitorFile f : files) {
                 final String name = f.getName();
                 final Entry entry = children.get(name);
                 if (entry != null) {
@@ -143,7 +143,7 @@
 
             // the ones not found on disk anymore
 
-            for (Entry entry : deleted) {
+            for (final Entry entry : deleted) {
                 entry.deleteChildrenAndNotify();
                 children.remove(entry.getName());
             }
@@ -151,7 +151,7 @@
 
 
         private void deleteChildrenAndNotify() {
-            for (Entry entry : children.values()) {
+            for (final Entry entry : children.values()) {
                 entry.deleteChildrenAndNotify();
             }
             children.clear();
@@ -255,51 +255,51 @@
 
     private void notifyOnStart() {
         log.debug("onStart " + rootEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onStart(this);
         }
     }
     private void notifyOnStop() {
         log.debug("onStop " + rootEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onStop(this);
         }
     }
 
     private void notifyOnFileCreate( final Entry pEntry ) {
         log.debug("onFileCreate " + pEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onFileCreate(((MonitorFileImpl)pEntry.getFile()).file );
         }
     }
     private void notifyOnFileChange( final Entry pEntry ) {
         log.debug("onFileChange " + pEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onFileChange(((MonitorFileImpl)pEntry.getFile()).file );
         }
     }
     private void notifyOnFileDelete( final Entry pEntry ) {
         log.debug("onFileDelete " + pEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onFileDelete(((MonitorFileImpl)pEntry.getFile()).file );
         }
     }
 
     private void notifyOnDirectoryCreate( final Entry pEntry ) {
         log.debug("onDirectoryCreate " + pEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onDirectoryCreate(((MonitorFileImpl)pEntry.getFile()).file );
         }
     }
     private void notifyOnDirectoryChange( final Entry pEntry ) {
         log.debug("onDirectoryChange " + pEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onDirectoryChange(((MonitorFileImpl)pEntry.getFile()).file );
         }
     }
     private void notifyOnDirectoryDelete( final Entry pEntry ) {
         log.debug("onDirectoryDelete " + pEntry);
-        for (FilesystemAlterationListener listener : listeners) {
+        for (final FilesystemAlterationListener listener : listeners) {
             listener.onDirectoryDelete(((MonitorFileImpl)pEntry.getFile()).file );
         }
     }
diff --git a/fam/src/test/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitorTestCase.java b/fam/src/test/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitorTestCase.java
index 972dcab..1270bcc 100644
--- a/fam/src/test/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitorTestCase.java
+++ b/fam/src/test/java/org/apache/commons/jci2/monitor/FilesystemAlterationMonitorTestCase.java
@@ -182,7 +182,7 @@
     	try {
         	listener.waitForFirstCheck();
         	fail("should be an timeout");
-        } catch(Exception e) {
+        } catch(final Exception e) {
         	assertEquals("timeout", e.getMessage());
         }
 
@@ -191,7 +191,7 @@
         try {
         	listener.waitForEvent();
         	fail("should be an timeout");
-        } catch(Exception e) {
+        } catch(final Exception e) {
         	assertEquals("timeout", e.getMessage());
         }
         
@@ -200,7 +200,7 @@
         try {
         	listener.waitForCheck();
         	fail("should be an timeout");
-        } catch(Exception e) {
+        } catch(final Exception e) {
         	assertEquals("timeout", e.getMessage());
         }
     
@@ -341,12 +341,12 @@
         fam.setInterval(interval);
 
         listener.waitForCheck();
-        long t1 = System.currentTimeMillis();
+        final long t1 = System.currentTimeMillis();
 
         listener.waitForCheck();
-        long t2 = System.currentTimeMillis();
+        final long t2 = System.currentTimeMillis();
         
-        long diff = t2-t1;
+        final long diff = t2-t1;
         
         // interval should be at around the same interval
         assertTrue("the interval was set to " + interval + " but the time difference was " + diff, (diff > (interval-50)) && (diff < (interval+50)));