You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/11/21 03:10:06 UTC

[commons-fileupload] branch master updated: Use final.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-fileupload.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ff8ba4  Use final.
8ff8ba4 is described below

commit 8ff8ba4f19b16d404ed24c53e6e6afe3d25f0e4a
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Nov 20 22:10:01 2020 -0500

    Use final.
---
 .../commons/fileupload2/DefaultFileItem.java       |   6 +-
 .../fileupload2/DefaultFileItemFactory.java        |  10 +-
 .../apache/commons/fileupload2/DiskFileUpload.java |  14 +--
 .../org/apache/commons/fileupload2/FileUpload.java |   4 +-
 .../apache/commons/fileupload2/FileUploadBase.java | 120 ++++++++++-----------
 .../commons/fileupload2/FileUploadException.java   |   6 +-
 .../fileupload2/InvalidFileNameException.java      |   2 +-
 .../commons/fileupload2/MultipartStream.java       |  74 ++++++-------
 .../commons/fileupload2/ParameterParser.java       |  28 ++---
 .../commons/fileupload2/disk/DiskFileItem.java     |  38 +++----
 .../fileupload2/disk/DiskFileItemFactory.java      |  18 ++--
 .../fileupload2/impl/FileItemIteratorImpl.java     |  34 +++---
 .../fileupload2/impl/FileItemStreamImpl.java       |  14 +--
 .../impl/FileSizeLimitExceededException.java       |   8 +-
 .../fileupload2/impl/FileUploadIOException.java    |   2 +-
 .../fileupload2/impl/IOFileUploadException.java    |   2 +-
 .../impl/InvalidContentTypeException.java          |   4 +-
 .../commons/fileupload2/impl/SizeException.java    |   2 +-
 .../impl/SizeLimitExceededException.java           |   4 +-
 .../fileupload2/impl/UnknownSizeException.java     |   2 +-
 .../fileupload2/jaksrvlt/JakSrvltFileCleaner.java  |  10 +-
 .../fileupload2/jaksrvlt/JakSrvltFileUpload.java   |  10 +-
 .../jaksrvlt/JakSrvltRequestContext.java           |   4 +-
 .../fileupload2/portlet/PortletFileUpload.java     |  10 +-
 .../fileupload2/portlet/PortletRequestContext.java |   4 +-
 .../fileupload2/servlet/FileCleanerCleanup.java    |  10 +-
 .../fileupload2/servlet/ServletFileUpload.java     |  10 +-
 .../fileupload2/servlet/ServletRequestContext.java |   4 +-
 .../fileupload2/util/FileItemHeadersImpl.java      |  14 +--
 .../fileupload2/util/LimitedInputStream.java       |   8 +-
 .../apache/commons/fileupload2/util/Streams.java   |  20 ++--
 .../fileupload2/util/mime/Base64Decoder.java       |   6 +-
 .../commons/fileupload2/util/mime/MimeUtility.java |  40 +++----
 .../fileupload2/util/mime/ParseException.java      |   2 +-
 .../util/mime/QuotedPrintableDecoder.java          |  16 +--
 .../fileupload2/util/mime/RFC2231Utility.java      |  28 ++---
 .../commons/fileupload2/DefaultFileItemTest.java   |  74 ++++++-------
 .../fileupload2/DiskFileItemSerializeTest.java     |  64 +++++------
 .../commons/fileupload2/DiskFileUploadTest.java    |  12 +--
 .../commons/fileupload2/FileItemHeadersTest.java   |   4 +-
 .../apache/commons/fileupload2/FileUploadTest.java |  82 +++++++-------
 .../fileupload2/HttpServletRequestFactory.java     |   8 +-
 .../fileupload2/MockHttpServletRequest.java        |  38 +++----
 .../commons/fileupload2/MultipartStreamTest.java   |  20 ++--
 .../commons/fileupload2/ParameterParserTest.java   |  20 ++--
 .../commons/fileupload2/ProgressListenerTest.java  |  26 ++---
 .../org/apache/commons/fileupload2/SizesTest.java  |  42 ++++----
 .../apache/commons/fileupload2/StreamingTest.java  |  68 ++++++------
 .../java/org/apache/commons/fileupload2/Util.java  |  10 +-
 .../jaksrvlt/JakSrvltFileUploadTest.java           |  24 ++---
 .../jaksrvlt/MockJakSrvltHttpRequest.java          |  50 ++++-----
 .../portlet/MockPortletActionRequest.java          |  26 ++---
 .../fileupload2/portlet/PortletFileUploadTest.java |   8 +-
 .../fileupload2/servlet/ServletFileUploadTest.java |  24 ++---
 .../util/mime/Base64DecoderTestCase.java           |  20 ++--
 .../fileupload2/util/mime/MimeUtilityTestCase.java |   2 +-
 .../util/mime/QuotedPrintableDecoderTestCase.java  |  20 ++--
 .../util/mime/RFC2231UtilityTestCase.java          |  16 +--
 58 files changed, 623 insertions(+), 623 deletions(-)

diff --git a/src/main/java/org/apache/commons/fileupload2/DefaultFileItem.java b/src/main/java/org/apache/commons/fileupload2/DefaultFileItem.java
index 186614e..3e55865 100644
--- a/src/main/java/org/apache/commons/fileupload2/DefaultFileItem.java
+++ b/src/main/java/org/apache/commons/fileupload2/DefaultFileItem.java
@@ -61,9 +61,9 @@ public class DefaultFileItem
      * @deprecated 1.1 Use {@code DiskFileItem} instead.
      */
     @Deprecated
-    public DefaultFileItem(String fieldName, String contentType,
-            boolean isFormField, String fileName, int sizeThreshold,
-            File repository) {
+    public DefaultFileItem(final String fieldName, final String contentType,
+            final boolean isFormField, final String fileName, final int sizeThreshold,
+            final File repository) {
         super(fieldName, contentType, isFormField, fileName, sizeThreshold,
                 repository);
     }
diff --git a/src/main/java/org/apache/commons/fileupload2/DefaultFileItemFactory.java b/src/main/java/org/apache/commons/fileupload2/DefaultFileItemFactory.java
index e176161..5c9d34a 100644
--- a/src/main/java/org/apache/commons/fileupload2/DefaultFileItemFactory.java
+++ b/src/main/java/org/apache/commons/fileupload2/DefaultFileItemFactory.java
@@ -67,7 +67,7 @@ public class DefaultFileItemFactory extends DiskFileItemFactory {
      * @deprecated 1.1 Use {@code DiskFileItemFactory} instead.
      */
     @Deprecated
-    public DefaultFileItemFactory(int sizeThreshold, File repository) {
+    public DefaultFileItemFactory(final int sizeThreshold, final File repository) {
         super(sizeThreshold, repository);
     }
 
@@ -92,10 +92,10 @@ public class DefaultFileItemFactory extends DiskFileItemFactory {
     @Override
     @Deprecated
     public FileItem createItem(
-            String fieldName,
-            String contentType,
-            boolean isFormField,
-            String fileName
+            final String fieldName,
+            final String contentType,
+            final boolean isFormField,
+            final String fileName
             ) {
         return new DefaultFileItem(fieldName, contentType,
                 isFormField, fileName, getSizeThreshold(), getRepository());
diff --git a/src/main/java/org/apache/commons/fileupload2/DiskFileUpload.java b/src/main/java/org/apache/commons/fileupload2/DiskFileUpload.java
index cf45a3c..0cd617b 100644
--- a/src/main/java/org/apache/commons/fileupload2/DiskFileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/DiskFileUpload.java
@@ -73,7 +73,7 @@ public class DiskFileUpload
      * @deprecated 1.1 Use {@code FileUpload} instead.
      */
     @Deprecated
-    public DiskFileUpload(DefaultFileItemFactory fileItemFactory) {
+    public DiskFileUpload(final DefaultFileItemFactory fileItemFactory) {
         this.fileItemFactory = fileItemFactory;
     }
 
@@ -103,7 +103,7 @@ public class DiskFileUpload
      */
     @Override
     @Deprecated
-    public void setFileItemFactory(FileItemFactory factory) {
+    public void setFileItemFactory(final FileItemFactory factory) {
         this.fileItemFactory = (DefaultFileItemFactory) factory;
     }
 
@@ -132,7 +132,7 @@ public class DiskFileUpload
      * @deprecated 1.1 Use {@code DiskFileItemFactory} instead.
      */
     @Deprecated
-    public void setSizeThreshold(int sizeThreshold) {
+    public void setSizeThreshold(final int sizeThreshold) {
         fileItemFactory.setSizeThreshold(sizeThreshold);
     }
 
@@ -162,7 +162,7 @@ public class DiskFileUpload
      * @deprecated 1.1 Use {@code DiskFileItemFactory} instead.
      */
     @Deprecated
-    public void setRepositoryPath(String repositoryPath) {
+    public void setRepositoryPath(final String repositoryPath) {
         fileItemFactory.setRepository(new File(repositoryPath));
     }
 
@@ -187,9 +187,9 @@ public class DiskFileUpload
      * @deprecated 1.1 Use {@code ServletFileUpload} instead.
      */
     @Deprecated
-    public List<FileItem> parseRequest(HttpServletRequest req,
-                                            int sizeThreshold,
-                                            long sizeMax, String path)
+    public List<FileItem> parseRequest(final HttpServletRequest req,
+                                            final int sizeThreshold,
+                                            final long sizeMax, final String path)
         throws FileUploadException {
         setSizeThreshold(sizeThreshold);
         setSizeMax(sizeMax);
diff --git a/src/main/java/org/apache/commons/fileupload2/FileUpload.java b/src/main/java/org/apache/commons/fileupload2/FileUpload.java
index caf895e..4d565be 100644
--- a/src/main/java/org/apache/commons/fileupload2/FileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileUpload.java
@@ -61,7 +61,7 @@ public class FileUpload
      * @see #FileUpload()
      * @param fileItemFactory The factory to use for creating file items.
      */
-    public FileUpload(FileItemFactory fileItemFactory) {
+    public FileUpload(final FileItemFactory fileItemFactory) {
         this.fileItemFactory = fileItemFactory;
     }
 
@@ -83,7 +83,7 @@ public class FileUpload
      * @param factory The factory class for new file items.
      */
     @Override
-    public void setFileItemFactory(FileItemFactory factory) {
+    public void setFileItemFactory(final FileItemFactory factory) {
         this.fileItemFactory = factory;
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/FileUploadBase.java b/src/main/java/org/apache/commons/fileupload2/FileUploadBase.java
index deae585..934e2aa 100644
--- a/src/main/java/org/apache/commons/fileupload2/FileUploadBase.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileUploadBase.java
@@ -71,8 +71,8 @@ public abstract class FileUploadBase {
      * @return {@code true} if the request is multipart;
      *         {@code false} otherwise.
      */
-    public static final boolean isMultipartContent(RequestContext ctx) {
-        String contentType = ctx.getContentType();
+    public static final boolean isMultipartContent(final RequestContext ctx) {
+        final String contentType = ctx.getContentType();
         if (contentType == null) {
             return false;
         }
@@ -94,7 +94,7 @@ public abstract class FileUploadBase {
      * @deprecated 1.1 Use the method on {@code ServletFileUpload} instead.
      */
     @Deprecated
-    public static boolean isMultipartContent(HttpServletRequest req) {
+    public static boolean isMultipartContent(final HttpServletRequest req) {
         return ServletFileUpload.isMultipartContent(req);
     }
 
@@ -214,7 +214,7 @@ public abstract class FileUploadBase {
      * @see #getSizeMax()
      *
      */
-    public void setSizeMax(long sizeMax) {
+    public void setSizeMax(final long sizeMax) {
         this.sizeMax = sizeMax;
     }
 
@@ -236,7 +236,7 @@ public abstract class FileUploadBase {
      * @see #getFileSizeMax()
      * @param fileSizeMax Maximum size of a single uploaded file.
      */
-    public void setFileSizeMax(long fileSizeMax) {
+    public void setFileSizeMax(final long fileSizeMax) {
         this.fileSizeMax = fileSizeMax;
     }
 
@@ -260,7 +260,7 @@ public abstract class FileUploadBase {
      *
      * @param encoding The encoding used to read part headers.
      */
-    public void setHeaderEncoding(String encoding) {
+    public void setHeaderEncoding(final String encoding) {
         headerEncoding = encoding;
     }
 
@@ -281,7 +281,7 @@ public abstract class FileUploadBase {
      * @deprecated 1.1 Use {@link ServletFileUpload#parseRequest(HttpServletRequest)} instead.
      */
     @Deprecated
-    public List<FileItem> parseRequest(HttpServletRequest req)
+    public List<FileItem> parseRequest(final HttpServletRequest req)
     throws FileUploadException {
         return parseRequest(new ServletRequestContext(req));
     }
@@ -302,11 +302,11 @@ public abstract class FileUploadBase {
      *   error while communicating with the client or a problem while
      *   storing the uploaded content.
      */
-    public FileItemIterator getItemIterator(RequestContext ctx)
+    public FileItemIterator getItemIterator(final RequestContext ctx)
     throws FileUploadException, IOException {
         try {
             return new FileItemIteratorImpl(this, ctx);
-        } catch (FileUploadIOException e) {
+        } catch (final FileUploadIOException e) {
             // unwrap encapsulated SizeException
             throw (FileUploadException) e.getCause();
         }
@@ -324,26 +324,26 @@ public abstract class FileUploadBase {
      * @throws FileUploadException if there are problems reading/parsing
      *                             the request or storing files.
      */
-    public List<FileItem> parseRequest(RequestContext ctx)
+    public List<FileItem> parseRequest(final RequestContext ctx)
             throws FileUploadException {
-        List<FileItem> items = new ArrayList<FileItem>();
+        final List<FileItem> items = new ArrayList<FileItem>();
         boolean successful = false;
         try {
-            FileItemIterator iter = getItemIterator(ctx);
-            FileItemFactory fileItemFactory = Objects.requireNonNull(getFileItemFactory(), "No FileItemFactory has been set.");
+            final FileItemIterator iter = getItemIterator(ctx);
+            final FileItemFactory fileItemFactory = Objects.requireNonNull(getFileItemFactory(), "No FileItemFactory has been set.");
             final byte[] buffer = new byte[Streams.DEFAULT_BUFFER_SIZE];
             while (iter.hasNext()) {
                 final FileItemStream item = iter.next();
                 // Don't use getName() here to prevent an InvalidFileNameException.
                 final String fileName = ((FileItemStreamImpl) item).getName();
-                FileItem fileItem = fileItemFactory.createItem(item.getFieldName(), item.getContentType(),
+                final FileItem fileItem = fileItemFactory.createItem(item.getFieldName(), item.getContentType(),
                                                    item.isFormField(), fileName);
                 items.add(fileItem);
                 try {
                     Streams.copy(item.openStream(), fileItem.getOutputStream(), true, buffer);
-                } catch (FileUploadIOException e) {
+                } catch (final FileUploadIOException e) {
                     throw (FileUploadException) e.getCause();
-                } catch (IOException e) {
+                } catch (final IOException e) {
                     throw new IOFileUploadException(format("Processing of %s request failed. %s",
                                                            MULTIPART_FORM_DATA, e.getMessage()), e);
                 }
@@ -352,16 +352,16 @@ public abstract class FileUploadBase {
             }
             successful = true;
             return items;
-        } catch (FileUploadException e) {
+        } catch (final FileUploadException e) {
             throw e;
-        } catch (IOException e) {
+        } catch (final IOException e) {
             throw new FileUploadException(e.getMessage(), e);
         } finally {
             if (!successful) {
-                for (FileItem fileItem : items) {
+                for (final FileItem fileItem : items) {
                     try {
                         fileItem.delete();
-                    } catch (Exception ignored) {
+                    } catch (final Exception ignored) {
                         // ignored TODO perhaps add to tracker delete failure list somehow?
                     }
                 }
@@ -382,13 +382,13 @@ public abstract class FileUploadBase {
      *
      * @since 1.3
      */
-    public Map<String, List<FileItem>> parseParameterMap(RequestContext ctx)
+    public Map<String, List<FileItem>> parseParameterMap(final RequestContext ctx)
             throws FileUploadException {
         final List<FileItem> items = parseRequest(ctx);
         final Map<String, List<FileItem>> itemsMap = new HashMap<String, List<FileItem>>(items.size());
 
-        for (FileItem fileItem : items) {
-            String fieldName = fileItem.getFieldName();
+        for (final FileItem fileItem : items) {
+            final String fieldName = fileItem.getFieldName();
             List<FileItem> mappedItems = itemsMap.get(fieldName);
 
             if (mappedItems == null) {
@@ -412,12 +412,12 @@ public abstract class FileUploadBase {
      *
      * @return The boundary, as a byte array.
      */
-    public byte[] getBoundary(String contentType) {
-        ParameterParser parser = new ParameterParser();
+    public byte[] getBoundary(final String contentType) {
+        final ParameterParser parser = new ParameterParser();
         parser.setLowerCaseNames(true);
         // Parameter parser can handle null input
-        Map<String, String> params = parser.parse(contentType, new char[] {';', ','});
-        String boundaryStr = params.get("boundary");
+        final Map<String, String> params = parser.parse(contentType, new char[] {';', ','});
+        final String boundaryStr = params.get("boundary");
 
         if (boundaryStr == null) {
             return null;
@@ -425,7 +425,7 @@ public abstract class FileUploadBase {
         byte[] boundary;
         try {
             boundary = boundaryStr.getBytes("ISO-8859-1");
-        } catch (UnsupportedEncodingException e) {
+        } catch (final UnsupportedEncodingException e) {
             boundary = boundaryStr.getBytes(); // Intentionally falls back to default charset
         }
         return boundary;
@@ -441,7 +441,7 @@ public abstract class FileUploadBase {
      * @deprecated 1.2.1 Use {@link #getFileName(FileItemHeaders)}.
      */
     @Deprecated
-    protected String getFileName(Map<String, String> headers) {
+    protected String getFileName(final Map<String, String> headers) {
         return getFileName(getHeader(headers, CONTENT_DISPOSITION));
     }
 
@@ -453,7 +453,7 @@ public abstract class FileUploadBase {
      *
      * @return The file name for the current {@code encapsulation}.
      */
-    public String getFileName(FileItemHeaders headers) {
+    public String getFileName(final FileItemHeaders headers) {
         return getFileName(headers.getHeader(CONTENT_DISPOSITION));
     }
 
@@ -462,15 +462,15 @@ public abstract class FileUploadBase {
      * @param pContentDisposition The content-disposition headers value.
      * @return The file name
      */
-    private String getFileName(String pContentDisposition) {
+    private String getFileName(final String pContentDisposition) {
         String fileName = null;
         if (pContentDisposition != null) {
-            String cdl = pContentDisposition.toLowerCase(Locale.ENGLISH);
+            final String cdl = pContentDisposition.toLowerCase(Locale.ENGLISH);
             if (cdl.startsWith(FORM_DATA) || cdl.startsWith(ATTACHMENT)) {
-                ParameterParser parser = new ParameterParser();
+                final ParameterParser parser = new ParameterParser();
                 parser.setLowerCaseNames(true);
                 // Parameter parser can handle null input
-                Map<String, String> params = parser.parse(pContentDisposition, ';');
+                final Map<String, String> params = parser.parse(pContentDisposition, ';');
                 if (params.containsKey("filename")) {
                     fileName = params.get("filename");
                     if (fileName != null) {
@@ -495,7 +495,7 @@ public abstract class FileUploadBase {
      *
      * @return The field name for the current {@code encapsulation}.
      */
-    public String getFieldName(FileItemHeaders headers) {
+    public String getFieldName(final FileItemHeaders headers) {
         return getFieldName(headers.getHeader(CONTENT_DISPOSITION));
     }
 
@@ -505,14 +505,14 @@ public abstract class FileUploadBase {
      * @param pContentDisposition The content-dispositions header value.
      * @return The field jake
      */
-    private String getFieldName(String pContentDisposition) {
+    private String getFieldName(final String pContentDisposition) {
         String fieldName = null;
         if (pContentDisposition != null
                 && pContentDisposition.toLowerCase(Locale.ENGLISH).startsWith(FORM_DATA)) {
-            ParameterParser parser = new ParameterParser();
+            final ParameterParser parser = new ParameterParser();
             parser.setLowerCaseNames(true);
             // Parameter parser can handle null input
-            Map<String, String> params = parser.parse(pContentDisposition, ';');
+            final Map<String, String> params = parser.parse(pContentDisposition, ';');
             fieldName = params.get("name");
             if (fieldName != null) {
                 fieldName = fieldName.trim();
@@ -531,7 +531,7 @@ public abstract class FileUploadBase {
      * @deprecated 1.2.1 Use {@link #getFieldName(FileItemHeaders)}.
      */
     @Deprecated
-    protected String getFieldName(Map<String, String> headers) {
+    protected String getFieldName(final Map<String, String> headers) {
         return getFieldName(getHeader(headers, CONTENT_DISPOSITION));
     }
 
@@ -550,8 +550,8 @@ public abstract class FileUploadBase {
      *   internally created instances of {@link FileItem}.
      */
     @Deprecated
-    protected FileItem createItem(Map<String, String> headers,
-                                  boolean isFormField)
+    protected FileItem createItem(final Map<String, String> headers,
+                                  final boolean isFormField)
         throws FileUploadException {
         return getFileItemFactory().createItem(getFieldName(headers),
                 getHeader(headers, CONTENT_TYPE),
@@ -571,21 +571,21 @@ public abstract class FileUploadBase {
      *
      * @return A {@code Map} containing the parsed HTTP request headers.
      */
-    public FileItemHeaders getParsedHeaders(String headerPart) {
+    public FileItemHeaders getParsedHeaders(final String headerPart) {
         final int len = headerPart.length();
-        FileItemHeadersImpl headers = newFileItemHeaders();
+        final FileItemHeadersImpl headers = newFileItemHeaders();
         int start = 0;
         for (;;) {
             int end = parseEndOfLine(headerPart, start);
             if (start == end) {
                 break;
             }
-            StringBuilder header = new StringBuilder(headerPart.substring(start, end));
+            final StringBuilder header = new StringBuilder(headerPart.substring(start, end));
             start = end + 2;
             while (start < len) {
                 int nonWs = start;
                 while (nonWs < len) {
-                    char c = headerPart.charAt(nonWs);
+                    final char c = headerPart.charAt(nonWs);
                     if (c != ' '  &&  c != '\t') {
                         break;
                     }
@@ -626,13 +626,13 @@ public abstract class FileUploadBase {
      * @deprecated 1.2.1 Use {@link #getParsedHeaders(String)}
      */
     @Deprecated
-    protected Map<String, String> parseHeaders(String headerPart) {
-        FileItemHeaders headers = getParsedHeaders(headerPart);
-        Map<String, String> result = new HashMap<String, String>();
-        for (Iterator<String> iter = headers.getHeaderNames();  iter.hasNext();) {
-            String headerName = iter.next();
-            Iterator<String> iter2 = headers.getHeaders(headerName);
-            StringBuilder headerValue = new StringBuilder(iter2.next());
+    protected Map<String, String> parseHeaders(final String headerPart) {
+        final FileItemHeaders headers = getParsedHeaders(headerPart);
+        final Map<String, String> result = new HashMap<String, String>();
+        for (final Iterator<String> iter = headers.getHeaderNames();  iter.hasNext();) {
+            final String headerName = iter.next();
+            final Iterator<String> iter2 = headers.getHeaders(headerName);
+            final StringBuilder headerValue = new StringBuilder(iter2.next());
             while (iter2.hasNext()) {
                 headerValue.append(",").append(iter2.next());
             }
@@ -649,10 +649,10 @@ public abstract class FileUploadBase {
      * @return Index of the \r\n sequence, which indicates
      *   end of line.
      */
-    private int parseEndOfLine(String headerPart, int end) {
+    private int parseEndOfLine(final String headerPart, final int end) {
         int index = end;
         for (;;) {
-            int offset = headerPart.indexOf('\r', index);
+            final int offset = headerPart.indexOf('\r', index);
             if (offset == -1  ||  offset + 1 >= headerPart.length()) {
                 throw new IllegalStateException(
                     "Expected headers to be terminated by an empty line.");
@@ -669,14 +669,14 @@ public abstract class FileUploadBase {
      * @param headers String with all headers.
      * @param header Map where to store the current header.
      */
-    private void parseHeaderLine(FileItemHeadersImpl headers, String header) {
+    private void parseHeaderLine(final FileItemHeadersImpl headers, final String header) {
         final int colonOffset = header.indexOf(':');
         if (colonOffset == -1) {
             // This header line is malformed, skip it.
             return;
         }
-        String headerName = header.substring(0, colonOffset).trim();
-        String headerValue =
+        final String headerName = header.substring(0, colonOffset).trim();
+        final String headerValue =
             header.substring(header.indexOf(':') + 1).trim();
         headers.addHeader(headerName, headerValue);
     }
@@ -693,8 +693,8 @@ public abstract class FileUploadBase {
      * @deprecated 1.2.1 Use {@link FileItemHeaders#getHeader(String)}.
      */
     @Deprecated
-    protected final String getHeader(Map<String, String> headers,
-            String name) {
+    protected final String getHeader(final Map<String, String> headers,
+            final String name) {
         return headers.get(name.toLowerCase(Locale.ENGLISH));
     }
 
@@ -712,7 +712,7 @@ public abstract class FileUploadBase {
      *
      * @param pListener The progress listener, if any. Defaults to null.
      */
-    public void setProgressListener(ProgressListener pListener) {
+    public void setProgressListener(final ProgressListener pListener) {
         listener = pListener;
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/FileUploadException.java b/src/main/java/org/apache/commons/fileupload2/FileUploadException.java
index 6301a97..a945c17 100644
--- a/src/main/java/org/apache/commons/fileupload2/FileUploadException.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileUploadException.java
@@ -61,7 +61,7 @@ public class FileUploadException extends IOException {
      * @param msg The exceptions detail message.
      * @param cause The exceptions cause.
      */
-    public FileUploadException(String msg, Throwable cause) {
+    public FileUploadException(final String msg, final Throwable cause) {
         super(msg);
         this.cause = cause;
     }
@@ -72,7 +72,7 @@ public class FileUploadException extends IOException {
      * @param stream {@code PrintStream} to use for output
      */
     @Override
-    public void printStackTrace(PrintStream stream) {
+    public void printStackTrace(final PrintStream stream) {
         super.printStackTrace(stream);
         if (cause != null) {
             stream.println("Caused by:");
@@ -87,7 +87,7 @@ public class FileUploadException extends IOException {
      * @param writer {@code PrintWriter} to use for output
      */
     @Override
-    public void printStackTrace(PrintWriter writer) {
+    public void printStackTrace(final PrintWriter writer) {
         super.printStackTrace(writer);
         if (cause != null) {
             writer.println("Caused by:");
diff --git a/src/main/java/org/apache/commons/fileupload2/InvalidFileNameException.java b/src/main/java/org/apache/commons/fileupload2/InvalidFileNameException.java
index 9ffb7ea..51eeda0 100644
--- a/src/main/java/org/apache/commons/fileupload2/InvalidFileNameException.java
+++ b/src/main/java/org/apache/commons/fileupload2/InvalidFileNameException.java
@@ -45,7 +45,7 @@ public class InvalidFileNameException extends RuntimeException {
      * @param pName The file name causing the exception.
      * @param pMessage A human readable error message.
      */
-    public InvalidFileNameException(String pName, String pMessage) {
+    public InvalidFileNameException(final String pName, final String pMessage) {
         super(pMessage);
         name = pName;
     }
diff --git a/src/main/java/org/apache/commons/fileupload2/MultipartStream.java b/src/main/java/org/apache/commons/fileupload2/MultipartStream.java
index a143912..3011628 100644
--- a/src/main/java/org/apache/commons/fileupload2/MultipartStream.java
+++ b/src/main/java/org/apache/commons/fileupload2/MultipartStream.java
@@ -116,7 +116,7 @@ public class MultipartStream {
          * @param pListener The listener to invoke.
          * @param pContentLength The expected content length.
          */
-        public ProgressNotifier(ProgressListener pListener, long pContentLength) {
+        public ProgressNotifier(final ProgressListener pListener, final long pContentLength) {
             listener = pListener;
             contentLength = pContentLength;
         }
@@ -126,7 +126,7 @@ public class MultipartStream {
          *
          * @param pBytes Number of bytes, which have been read.
          */
-        void noteBytesRead(int pBytes) {
+        void noteBytesRead(final int pBytes) {
             /* Indicates, that the given number of bytes have been read from
              * the input stream.
              */
@@ -297,7 +297,7 @@ public class MultipartStream {
      * ProgressNotifier)}.
      */
     @Deprecated
-    public MultipartStream(InputStream input, byte[] boundary, int bufSize) {
+    public MultipartStream(final InputStream input, final byte[] boundary, final int bufSize) {
         this(input, boundary, bufSize, null);
     }
 
@@ -320,10 +320,10 @@ public class MultipartStream {
      *
      * @since 1.3.1
      */
-    public MultipartStream(InputStream input,
-            byte[] boundary,
-            int bufSize,
-            ProgressNotifier pNotifier) {
+    public MultipartStream(final InputStream input,
+            final byte[] boundary,
+            final int bufSize,
+            final ProgressNotifier pNotifier) {
 
         if (boundary == null) {
             throw new IllegalArgumentException("boundary may not be null");
@@ -366,9 +366,9 @@ public class MultipartStream {
      *
      * @see #MultipartStream(InputStream, byte[], int, ProgressNotifier)
      */
-    public MultipartStream(InputStream input,
-            byte[] boundary,
-            ProgressNotifier pNotifier) {
+    public MultipartStream(final InputStream input,
+            final byte[] boundary,
+            final ProgressNotifier pNotifier) {
         this(input, boundary, DEFAULT_BUFSIZE, pNotifier);
     }
 
@@ -383,8 +383,8 @@ public class MultipartStream {
      *  ProgressNotifier)}.
      */
     @Deprecated
-    public MultipartStream(InputStream input,
-            byte[] boundary) {
+    public MultipartStream(final InputStream input,
+            final byte[] boundary) {
         this(input, boundary, DEFAULT_BUFSIZE, null);
     }
 
@@ -408,7 +408,7 @@ public class MultipartStream {
      *
      * @param encoding The encoding used to read part headers.
      */
-    public void setHeaderEncoding(String encoding) {
+    public void setHeaderEncoding(final String encoding) {
         headerEncoding = encoding;
     }
 
@@ -450,7 +450,7 @@ public class MultipartStream {
      */
     public boolean readBoundary()
             throws FileUploadIOException, MalformedStreamException {
-        byte[] marker = new byte[2];
+        final byte[] marker = new byte[2];
         boolean nextChunk = false;
 
         head += boundaryLength;
@@ -475,10 +475,10 @@ public class MultipartStream {
                 throw new MalformedStreamException(
                 "Unexpected characters follow a boundary");
             }
-        } catch (FileUploadIOException e) {
+        } catch (final FileUploadIOException e) {
             // wraps a SizeException, re-throw as it will be unwrapped later
             throw e;
-        } catch (IOException e) {
+        } catch (final IOException e) {
             throw new MalformedStreamException("Stream ended unexpectedly");
         }
         return nextChunk;
@@ -503,7 +503,7 @@ public class MultipartStream {
      *                                  has a different length than the one
      *                                  being currently parsed.
      */
-    public void setBoundary(byte[] boundary)
+    public void setBoundary(final byte[] boundary)
             throws IllegalBoundaryException {
         if (boundary.length != boundaryLength - BOUNDARY_PREFIX.length) {
             throw new IllegalBoundaryException(
@@ -558,15 +558,15 @@ public class MultipartStream {
         int i = 0;
         byte b;
         // to support multi-byte characters
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         int size = 0;
         while (i < HEADER_SEPARATOR.length) {
             try {
                 b = readByte();
-            } catch (FileUploadIOException e) {
+            } catch (final FileUploadIOException e) {
                 // wraps a SizeException, re-throw as it will be unwrapped later
                 throw e;
-            } catch (IOException e) {
+            } catch (final IOException e) {
                 throw new MalformedStreamException("Stream ended unexpectedly");
             }
             if (++size > HEADER_PART_SIZE_MAX) {
@@ -586,7 +586,7 @@ public class MultipartStream {
         if (headerEncoding != null) {
             try {
                 headers = baos.toString(headerEncoding);
-            } catch (UnsupportedEncodingException e) {
+            } catch (final UnsupportedEncodingException e) {
                 // Fall back to platform default if specified encoding is not
                 // supported.
                 headers = baos.toString();
@@ -617,7 +617,7 @@ public class MultipartStream {
      * @throws MalformedStreamException if the stream ends unexpectedly.
      * @throws IOException              if an i/o error occurs.
      */
-    public int readBodyData(OutputStream output)
+    public int readBodyData(final OutputStream output)
             throws MalformedStreamException, IOException {
         return (int) Streams.copy(newInputStream(), output, false); // N.B. Streams.copy closes the input stream
     }
@@ -666,7 +666,7 @@ public class MultipartStream {
             // Read boundary - if succeeded, the stream contains an
             // encapsulation.
             return readBoundary();
-        } catch (MalformedStreamException e) {
+        } catch (final MalformedStreamException e) {
             return false;
         } finally {
             // Restore delimiter.
@@ -689,9 +689,9 @@ public class MultipartStream {
      * @return {@code true} if {@code count} first bytes in arrays
      *         {@code a} and {@code b} are equal.
      */
-    public static boolean arrayequals(byte[] a,
-            byte[] b,
-            int count) {
+    public static boolean arrayequals(final byte[] a,
+            final byte[] b,
+            final int count) {
         for (int i = 0; i < count; i++) {
             if (a[i] != b[i]) {
                 return false;
@@ -710,8 +710,8 @@ public class MultipartStream {
      * @return The position of byte found, counting from beginning of the
      *         {@code buffer}, or {@code -1} if not found.
      */
-    protected int findByte(byte value,
-            int pos) {
+    protected int findByte(final byte value,
+            final int pos) {
         for (int i = pos; i < tail; i++) {
             if (buffer[i] == value) {
                 return i;
@@ -771,7 +771,7 @@ public class MultipartStream {
          *
          * @param message The detail message.
          */
-        public MalformedStreamException(String message) {
+        public MalformedStreamException(final String message) {
             super(message);
         }
 
@@ -800,7 +800,7 @@ public class MultipartStream {
          *
          * @param message The detail message.
          */
-        public IllegalBoundaryException(String message) {
+        public IllegalBoundaryException(final String message) {
             super(message);
         }
 
@@ -899,7 +899,7 @@ public class MultipartStream {
                 return -1;
             }
             ++total;
-            int b = buffer[head++];
+            final int b = buffer[head++];
             if (b >= 0) {
                 return b;
             }
@@ -917,7 +917,7 @@ public class MultipartStream {
          * @throws IOException An I/O error occurred.
          */
         @Override
-        public int read(byte[] b, int off, int len) throws IOException {
+        public int read(final byte[] b, final int off, final int len) throws IOException {
             if (closed) {
                 throw new FileItemStream.ItemSkippedException();
             }
@@ -955,7 +955,7 @@ public class MultipartStream {
          *   (hard close)
          * @throws IOException An I/O error occurred.
          */
-        public void close(boolean pCloseUnderlying) throws IOException {
+        public void close(final boolean pCloseUnderlying) throws IOException {
             if (closed) {
                 return;
             }
@@ -986,7 +986,7 @@ public class MultipartStream {
          * @throws IOException An I/O error occurred.
          */
         @Override
-        public long skip(long bytes) throws IOException {
+        public long skip(final long bytes) throws IOException {
             if (closed) {
                 throw new FileItemStream.ItemSkippedException();
             }
@@ -997,7 +997,7 @@ public class MultipartStream {
                     return 0;
                 }
             }
-            long res = Math.min(av, bytes);
+            final long res = Math.min(av, bytes);
             head += res;
             return res;
         }
@@ -1022,7 +1022,7 @@ public class MultipartStream {
             tail = pad;
 
             for (;;) {
-                int bytesRead = input.read(buffer, tail, bufSize - tail);
+                final int bytesRead = input.read(buffer, tail, bufSize - tail);
                 if (bytesRead == -1) {
                     // The last pad amount is left in the buffer.
                     // Boundary can't be in there so signal an error
@@ -1036,7 +1036,7 @@ public class MultipartStream {
                 tail += bytesRead;
 
                 findSeparator();
-                int av = available();
+                final int av = available();
 
                 if (av > 0 || pos != -1) {
                     return av;
diff --git a/src/main/java/org/apache/commons/fileupload2/ParameterParser.java b/src/main/java/org/apache/commons/fileupload2/ParameterParser.java
index 237fc5e..5ed867f 100644
--- a/src/main/java/org/apache/commons/fileupload2/ParameterParser.java
+++ b/src/main/java/org/apache/commons/fileupload2/ParameterParser.java
@@ -92,7 +92,7 @@ public class ParameterParser {
      *               {@code false} otherwise.
      * @return the token
      */
-    private String getToken(boolean quoted) {
+    private String getToken(final boolean quoted) {
         // Trim leading white spaces
         while ((i1 < i2) && (Character.isWhitespace(chars[i1]))) {
             i1++;
@@ -125,9 +125,9 @@ public class ParameterParser {
      * @return {@code true} if the character is present in the array of
      *   characters, {@code false} otherwise.
      */
-    private boolean isOneOf(char ch, final char[] charray) {
+    private boolean isOneOf(final char ch, final char[] charray) {
         boolean result = false;
-        for (char element : charray) {
+        for (final char element : charray) {
             if (ch == element) {
                 result = true;
                 break;
@@ -212,7 +212,7 @@ public class ParameterParser {
      * converted to lower case when name/value pairs are parsed.
      * {@code false} otherwise.
      */
-    public void setLowerCaseNames(boolean b) {
+    public void setLowerCaseNames(final boolean b) {
         this.lowerCaseNames = b;
     }
 
@@ -226,15 +226,15 @@ public class ParameterParser {
      *
      * @return a map of name/value pairs
      */
-    public Map<String, String> parse(final String str, char[] separators) {
+    public Map<String, String> parse(final String str, final char[] separators) {
         if (separators == null || separators.length == 0) {
             return new HashMap<String, String>();
         }
         char separator = separators[0];
         if (str != null) {
             int idx = str.length();
-            for (char separator2 : separators) {
-                int tmp = str.indexOf(separator2);
+            for (final char separator2 : separators) {
+                final int tmp = str.indexOf(separator2);
                 if (tmp != -1 && tmp < idx) {
                     idx = tmp;
                     separator = separator2;
@@ -253,7 +253,7 @@ public class ParameterParser {
      *
      * @return a map of name/value pairs
      */
-    public Map<String, String> parse(final String str, char separator) {
+    public Map<String, String> parse(final String str, final char separator) {
         if (str == null) {
             return new HashMap<String, String>();
         }
@@ -270,7 +270,7 @@ public class ParameterParser {
      *
      * @return a map of name/value pairs
      */
-    public Map<String, String> parse(final char[] charArray, char separator) {
+    public Map<String, String> parse(final char[] charArray, final char separator) {
         if (charArray == null) {
             return new HashMap<String, String>();
         }
@@ -291,14 +291,14 @@ public class ParameterParser {
      */
     public Map<String, String> parse(
         final char[] charArray,
-        int offset,
-        int length,
-        char separator) {
+        final int offset,
+        final int length,
+        final char separator) {
 
         if (charArray == null) {
             return new HashMap<String, String>();
         }
-        HashMap<String, String> params = new HashMap<String, String>();
+        final HashMap<String, String> params = new HashMap<String, String>();
         this.chars = charArray;
         this.pos = offset;
         this.len = length;
@@ -318,7 +318,7 @@ public class ParameterParser {
                     try {
                         paramValue = RFC2231Utility.hasEncodedValue(paramName) ? RFC2231Utility.decodeText(paramValue)
                                 : MimeUtility.decodeText(paramValue);
-                    } catch (UnsupportedEncodingException e) {
+                    } catch (final UnsupportedEncodingException e) {
                         // let's keep the original value in this case
                     }
                 }
diff --git a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
index 539802f..c0fc938 100644
--- a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
+++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
@@ -177,9 +177,9 @@ public class DiskFileItem
      *                      which files will be created, should the item size
      *                      exceed the threshold.
      */
-    public DiskFileItem(String fieldName,
-            String contentType, boolean isFormField, String fileName,
-            int sizeThreshold, File repository) {
+    public DiskFileItem(final String fieldName,
+            final String contentType, final boolean isFormField, final String fileName,
+            final int sizeThreshold, final File repository) {
         this.fieldName = fieldName;
         this.contentType = contentType;
         this.isFormField = isFormField;
@@ -232,10 +232,10 @@ public class DiskFileItem
      *         not defined.
      */
     public String getCharSet() {
-        ParameterParser parser = new ParameterParser();
+        final ParameterParser parser = new ParameterParser();
         parser.setLowerCaseNames(true);
         // Parameter parser can handle null input
-        Map<String, String> params = parser.parse(getContentType(), ';');
+        final Map<String, String> params = parser.parse(getContentType(), ';');
         return params.get("charset");
     }
 
@@ -311,7 +311,7 @@ public class DiskFileItem
         try {
             fis = new FileInputStream(dfos.getFile());
             IOUtils.readFully(fis, fileData);
-        } catch (IOException e) {
+        } catch (final IOException e) {
             fileData = null;
         } finally {
             IOUtils.closeQuietly(fis);
@@ -349,14 +349,14 @@ public class DiskFileItem
      */
     @Override
     public String getString() {
-        byte[] rawdata = get();
+        final byte[] rawdata = get();
         String charset = getCharSet();
         if (charset == null) {
             charset = defaultCharset;
         }
         try {
             return new String(rawdata, charset);
-        } catch (UnsupportedEncodingException e) {
+        } catch (final UnsupportedEncodingException e) {
             return new String(rawdata);
         }
     }
@@ -382,7 +382,7 @@ public class DiskFileItem
      * @throws Exception if an error occurs.
      */
     @Override
-    public void write(File file) throws Exception {
+    public void write(final File file) throws Exception {
         if (isInMemory()) {
             FileOutputStream fout = null;
             try {
@@ -393,7 +393,7 @@ public class DiskFileItem
                 IOUtils.closeQuietly(fout);
             }
         } else {
-            File outputFile = getStoreLocation();
+            final File outputFile = getStoreLocation();
             if (outputFile != null) {
                 // Save the length of the file
                 size = outputFile.length();
@@ -430,7 +430,7 @@ public class DiskFileItem
     @Override
     public void delete() {
         cachedContent = null;
-        File outputFile = getStoreLocation();
+        final File outputFile = getStoreLocation();
         if (outputFile != null && !isInMemory() && outputFile.exists()) {
             outputFile.delete();
         }
@@ -459,7 +459,7 @@ public class DiskFileItem
      *
      */
     @Override
-    public void setFieldName(String fieldName) {
+    public void setFieldName(final String fieldName) {
         this.fieldName = fieldName;
     }
 
@@ -489,7 +489,7 @@ public class DiskFileItem
      *
      */
     @Override
-    public void setFormField(boolean state) {
+    public void setFormField(final boolean state) {
         isFormField = state;
     }
 
@@ -506,7 +506,7 @@ public class DiskFileItem
     public OutputStream getOutputStream()
         throws IOException {
         if (dfos == null) {
-            File outputFile = getTempFile();
+            final File outputFile = getTempFile();
             dfos = new DeferredFileOutputStream(sizeThreshold, outputFile);
         }
         return dfos;
@@ -547,7 +547,7 @@ public class DiskFileItem
         if (dfos == null || dfos.isInMemory()) {
             return;
         }
-        File outputFile = dfos.getFile();
+        final File outputFile = dfos.getFile();
 
         if (outputFile != null && outputFile.exists()) {
             outputFile.delete();
@@ -573,7 +573,7 @@ public class DiskFileItem
                 tempDir = new File(System.getProperty("java.io.tmpdir"));
             }
 
-            String tempFileName = format("upload_%s_%s.tmp", UID, getUniqueId());
+            final String tempFileName = format("upload_%s_%s.tmp", UID, getUniqueId());
 
             tempFile = new File(tempDir, tempFileName);
         }
@@ -590,7 +590,7 @@ public class DiskFileItem
      */
     private static String getUniqueId() {
         final int limit = 100000000;
-        int current = COUNTER.getAndIncrement();
+        final int current = COUNTER.getAndIncrement();
         String id = Integer.toString(current);
 
         // If you manage to get more than 100 million of ids, you'll
@@ -627,7 +627,7 @@ public class DiskFileItem
      * @param pHeaders The file items headers.
      */
     @Override
-    public void setHeaders(FileItemHeaders pHeaders) {
+    public void setHeaders(final FileItemHeaders pHeaders) {
         headers = pHeaders;
     }
 
@@ -645,7 +645,7 @@ public class DiskFileItem
      * parameter is provided by the sender.
      * @param charset the default charset
      */
-    public void setDefaultCharset(String charset) {
+    public void setDefaultCharset(final String charset) {
         defaultCharset = charset;
     }
 }
diff --git a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java
index 3091121..5ca244f 100644
--- a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java
+++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java
@@ -121,7 +121,7 @@ public class DiskFileItemFactory implements FileItemFactory {
      *                      which files will be created, should the item size
      *                      exceed the threshold.
      */
-    public DiskFileItemFactory(int sizeThreshold, File repository) {
+    public DiskFileItemFactory(final int sizeThreshold, final File repository) {
         this.sizeThreshold = sizeThreshold;
         this.repository = repository;
     }
@@ -150,7 +150,7 @@ public class DiskFileItemFactory implements FileItemFactory {
      * @see #getRepository()
      *
      */
-    public void setRepository(File repository) {
+    public void setRepository(final File repository) {
         this.repository = repository;
     }
 
@@ -174,7 +174,7 @@ public class DiskFileItemFactory implements FileItemFactory {
      * @see #getSizeThreshold()
      *
      */
-    public void setSizeThreshold(int sizeThreshold) {
+    public void setSizeThreshold(final int sizeThreshold) {
         this.sizeThreshold = sizeThreshold;
     }
 
@@ -195,12 +195,12 @@ public class DiskFileItemFactory implements FileItemFactory {
      * @return The newly created file item.
      */
     @Override
-    public FileItem createItem(String fieldName, String contentType,
-            boolean isFormField, String fileName) {
-        DiskFileItem result = new DiskFileItem(fieldName, contentType,
+    public FileItem createItem(final String fieldName, final String contentType,
+            final boolean isFormField, final String fileName) {
+        final DiskFileItem result = new DiskFileItem(fieldName, contentType,
                 isFormField, fileName, sizeThreshold, repository);
         result.setDefaultCharset(defaultCharset);
-        FileCleaningTracker tracker = getFileCleaningTracker();
+        final FileCleaningTracker tracker = getFileCleaningTracker();
         if (tracker != null) {
             tracker.track(result.getTempFile(), result);
         }
@@ -226,7 +226,7 @@ public class DiskFileItemFactory implements FileItemFactory {
      *   which will from now on track the created files, or null
      *   (default), to disable tracking.
      */
-    public void setFileCleaningTracker(FileCleaningTracker pTracker) {
+    public void setFileCleaningTracker(final FileCleaningTracker pTracker) {
         fileCleaningTracker = pTracker;
     }
 
@@ -244,7 +244,7 @@ public class DiskFileItemFactory implements FileItemFactory {
      * parameter is provided by the sender.
      * @param pCharset the default charset
      */
-    public void setDefaultCharset(String pCharset) {
+    public void setDefaultCharset(final String pCharset) {
         defaultCharset = pCharset;
     }
 }
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/FileItemIteratorImpl.java b/src/main/java/org/apache/commons/fileupload2/impl/FileItemIteratorImpl.java
index f774099..810cfdb 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/FileItemIteratorImpl.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/FileItemIteratorImpl.java
@@ -55,7 +55,7 @@ public class FileItemIteratorImpl implements FileItemIterator {
 	}
 
 	@Override
-	public void setSizeMax(long sizeMax) {
+	public void setSizeMax(final long sizeMax) {
 		this.sizeMax = sizeMax;
 	}
 
@@ -65,7 +65,7 @@ public class FileItemIteratorImpl implements FileItemIterator {
 	}
 
 	@Override
-	public void setFileSizeMax(long fileSizeMax) {
+	public void setFileSizeMax(final long fileSizeMax) {
 		this.fileSizeMax = fileSizeMax;
 	}
 
@@ -119,7 +119,7 @@ public class FileItemIteratorImpl implements FileItemIterator {
      *   parsing the request.
      * @throws IOException An I/O error occurred.
      */
-    public FileItemIteratorImpl(FileUploadBase fileUploadBase, RequestContext requestContext)
+    public FileItemIteratorImpl(final FileUploadBase fileUploadBase, final RequestContext requestContext)
         throws FileUploadException, IOException {
         this.fileUploadBase = fileUploadBase;
         sizeMax = fileUploadBase.getSizeMax();
@@ -129,9 +129,9 @@ public class FileItemIteratorImpl implements FileItemIterator {
         findNextItem();
     }
 
-    protected void init(FileUploadBase fileUploadBase, RequestContext pRequestContext)
+    protected void init(final FileUploadBase fileUploadBase, final RequestContext pRequestContext)
             throws FileUploadException, IOException {
-        String contentType = ctx.getContentType();
+        final String contentType = ctx.getContentType();
         if ((null == contentType)
                 || (!contentType.toLowerCase(Locale.ENGLISH).startsWith(FileUploadBase.MULTIPART))) {
             throw new InvalidContentTypeException(
@@ -160,9 +160,9 @@ public class FileItemIteratorImpl implements FileItemIterator {
             // N.B. this is eventually closed in MultipartStream processing
             input = new LimitedInputStream(ctx.getInputStream(), sizeMax) {
                 @Override
-                protected void raiseError(long pSizeMax, long pCount)
+                protected void raiseError(final long pSizeMax, final long pCount)
                         throws IOException {
-                    FileUploadException ex = new SizeLimitExceededException(
+                    final FileUploadException ex = new SizeLimitExceededException(
                     format("the request was rejected because its size (%s) exceeds the configured maximum (%s)",
                             Long.valueOf(pCount), Long.valueOf(pSizeMax)),
                            pCount, pSizeMax);
@@ -187,7 +187,7 @@ public class FileItemIteratorImpl implements FileItemIterator {
         progressNotifier = new MultipartStream.ProgressNotifier(fileUploadBase.getProgressListener(), requestSize);
         try {
             multiPartStream = new MultipartStream(input, multiPartBoundary, progressNotifier);
-        } catch (IllegalArgumentException iae) {
+        } catch (final IllegalArgumentException iae) {
             IOUtils.closeQuietly(input); // avoid possible resource leak
             throw new InvalidContentTypeException(
                     format("The boundary specified in the %s header is too long", FileUploadBase.CONTENT_TYPE), iae);
@@ -235,23 +235,23 @@ public class FileItemIteratorImpl implements FileItemIterator {
                 currentFieldName = null;
                 continue;
             }
-            FileItemHeaders headers = fileUploadBase.getParsedHeaders(multi.readHeaders());
+            final FileItemHeaders headers = fileUploadBase.getParsedHeaders(multi.readHeaders());
             if (currentFieldName == null) {
                 // We're parsing the outer multipart
-                String fieldName = fileUploadBase.getFieldName(headers);
+                final String fieldName = fileUploadBase.getFieldName(headers);
                 if (fieldName != null) {
-                    String subContentType = headers.getHeader(FileUploadBase.CONTENT_TYPE);
+                    final String subContentType = headers.getHeader(FileUploadBase.CONTENT_TYPE);
                     if (subContentType != null
                             &&  subContentType.toLowerCase(Locale.ENGLISH)
                                     .startsWith(FileUploadBase.MULTIPART_MIXED)) {
                         currentFieldName = fieldName;
                         // Multiple files associated with this field name
-                        byte[] subBoundary = fileUploadBase.getBoundary(subContentType);
+                        final byte[] subBoundary = fileUploadBase.getBoundary(subContentType);
                         multi.setBoundary(subBoundary);
                         skipPreamble = true;
                         continue;
                     }
-                    String fileName = fileUploadBase.getFileName(headers);
+                    final String fileName = fileUploadBase.getFileName(headers);
                     currentItem = new FileItemStreamImpl(this, fileName,
                             fieldName, headers.getHeader(FileUploadBase.CONTENT_TYPE),
                             fileName == null, getContentLength(headers));
@@ -261,7 +261,7 @@ public class FileItemIteratorImpl implements FileItemIterator {
                     return true;
                 }
             } else {
-                String fileName = fileUploadBase.getFileName(headers);
+                final String fileName = fileUploadBase.getFileName(headers);
                 if (fileName != null) {
                     currentItem = new FileItemStreamImpl(this, fileName,
                             currentFieldName,
@@ -277,10 +277,10 @@ public class FileItemIteratorImpl implements FileItemIterator {
         }
     }
 
-    private long getContentLength(FileItemHeaders pHeaders) {
+    private long getContentLength(final FileItemHeaders pHeaders) {
         try {
             return Long.parseLong(pHeaders.getHeader(FileUploadBase.CONTENT_LENGTH));
-        } catch (Exception e) {
+        } catch (final Exception e) {
             return -1;
         }
     }
@@ -305,7 +305,7 @@ public class FileItemIteratorImpl implements FileItemIterator {
         }
         try {
             return findNextItem();
-        } catch (FileUploadIOException e) {
+        } catch (final FileUploadIOException e) {
             // unwrap encapsulated SizeException
             throw (FileUploadException) e.getCause();
         }
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java b/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java
index 1d3ec52..bbf5064 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java
@@ -85,9 +85,9 @@ public class FileItemStreamImpl implements FileItemStream {
      * @throws IOException Creating the file item failed.
      * @throws FileUploadException Parsing the incoming data stream failed.
      */
-    public FileItemStreamImpl(FileItemIteratorImpl pFileItemIterator, String pName, String pFieldName,
-            String pContentType, boolean pFormField,
-            long pContentLength) throws FileUploadException, IOException {
+    public FileItemStreamImpl(final FileItemIteratorImpl pFileItemIterator, final String pName, final String pFieldName,
+            final String pContentType, final boolean pFormField,
+            final long pContentLength) throws FileUploadException, IOException {
     	fileItemIteratorImpl = pFileItemIterator;
         name = pName;
         fieldName = pFieldName;
@@ -97,7 +97,7 @@ public class FileItemStreamImpl implements FileItemStream {
         if (fileSizeMax != -1) { // Check if limit is already exceeded
             if (pContentLength != -1
                     && pContentLength > fileSizeMax) {
-                FileSizeLimitExceededException e =
+                final FileSizeLimitExceededException e =
                         new FileSizeLimitExceededException(
                                 format("The field %s exceeds its maximum permitted size of %s bytes.",
                                         fieldName, Long.valueOf(fileSizeMax)),
@@ -113,10 +113,10 @@ public class FileItemStreamImpl implements FileItemStream {
         if (fileSizeMax != -1) {
             istream = new LimitedInputStream(istream, fileSizeMax) {
                 @Override
-                protected void raiseError(long pSizeMax, long pCount)
+                protected void raiseError(final long pSizeMax, final long pCount)
                         throws IOException {
                     itemStream.close(true);
-                    FileSizeLimitExceededException e =
+                    final FileSizeLimitExceededException e =
                         new FileSizeLimitExceededException(
                             format("The field %s exceeds its maximum permitted size of %s bytes.",
                                    fieldName, Long.valueOf(pSizeMax)),
@@ -219,7 +219,7 @@ public class FileItemStreamImpl implements FileItemStream {
      * @param pHeaders The items header object
      */
     @Override
-    public void setHeaders(FileItemHeaders pHeaders) {
+    public void setHeaders(final FileItemHeaders pHeaders) {
         headers = pHeaders;
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/FileSizeLimitExceededException.java b/src/main/java/org/apache/commons/fileupload2/impl/FileSizeLimitExceededException.java
index cb40016..07af386 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/FileSizeLimitExceededException.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/FileSizeLimitExceededException.java
@@ -45,8 +45,8 @@ public class FileSizeLimitExceededException
      * @param actual    The actual request size.
      * @param permitted The maximum permitted request size.
      */
-    public FileSizeLimitExceededException(String message, long actual,
-            long permitted) {
+    public FileSizeLimitExceededException(final String message, final long actual,
+            final long permitted) {
         super(message, actual, permitted);
     }
 
@@ -66,7 +66,7 @@ public class FileSizeLimitExceededException
      *
      * @param pFileName the file name of the item, which caused the exception.
      */
-    public void setFileName(String pFileName) {
+    public void setFileName(final String pFileName) {
         fileName = pFileName;
     }
 
@@ -87,7 +87,7 @@ public class FileSizeLimitExceededException
      * @param pFieldName the field name of the item,
      *        which caused the exception.
      */
-    public void setFieldName(String pFieldName) {
+    public void setFieldName(final String pFieldName) {
         fieldName = pFieldName;
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/FileUploadIOException.java b/src/main/java/org/apache/commons/fileupload2/impl/FileUploadIOException.java
index 6c97a60..5a06a81 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/FileUploadIOException.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/FileUploadIOException.java
@@ -44,7 +44,7 @@ public class FileUploadIOException extends IOException {
      *
      * @param pCause The exceptions cause, if any, or null.
      */
-    public FileUploadIOException(FileUploadException pCause) {
+    public FileUploadIOException(final FileUploadException pCause) {
         // We're not doing super(pCause) cause of 1.3 compatibility.
         cause = pCause;
     }
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/IOFileUploadException.java b/src/main/java/org/apache/commons/fileupload2/impl/IOFileUploadException.java
index de7b44d..fa63df2 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/IOFileUploadException.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/IOFileUploadException.java
@@ -43,7 +43,7 @@ public class IOFileUploadException extends FileUploadException {
      * @param pMsg The detail message.
      * @param pException The exceptions cause.
      */
-    public IOFileUploadException(String pMsg, IOException pException) {
+    public IOFileUploadException(final String pMsg, final IOException pException) {
         super(pMsg);
         cause = pException;
     }
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/InvalidContentTypeException.java b/src/main/java/org/apache/commons/fileupload2/impl/InvalidContentTypeException.java
index 7215348..f367ecd 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/InvalidContentTypeException.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/InvalidContentTypeException.java
@@ -42,7 +42,7 @@ public class InvalidContentTypeException
      *
      * @param message The detail message.
      */
-    public InvalidContentTypeException(String message) {
+    public InvalidContentTypeException(final String message) {
         super(message);
     }
 
@@ -55,7 +55,7 @@ public class InvalidContentTypeException
      *
      * @since 1.3.1
      */
-    public InvalidContentTypeException(String msg, Throwable cause) {
+    public InvalidContentTypeException(final String msg, final Throwable cause) {
         super(msg, cause);
     }
 }
\ No newline at end of file
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/SizeException.java b/src/main/java/org/apache/commons/fileupload2/impl/SizeException.java
index d030c30..b5970d7 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/SizeException.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/SizeException.java
@@ -46,7 +46,7 @@ abstract class SizeException extends FileUploadException {
      * @param actual The actual number of bytes in the request.
      * @param permitted The requests size limit, in bytes.
      */
-    protected SizeException(String message, long actual, long permitted) {
+    protected SizeException(final String message, final long actual, final long permitted) {
         super(message);
         this.actual = actual;
         this.permitted = permitted;
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/SizeLimitExceededException.java b/src/main/java/org/apache/commons/fileupload2/impl/SizeLimitExceededException.java
index efd5d0b..f4d9f24 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/SizeLimitExceededException.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/SizeLimitExceededException.java
@@ -35,8 +35,8 @@ public class SizeLimitExceededException
      * @param actual    The actual request size.
      * @param permitted The maximum permitted request size.
      */
-    public SizeLimitExceededException(String message, long actual,
-            long permitted) {
+    public SizeLimitExceededException(final String message, final long actual,
+            final long permitted) {
         super(message, actual, permitted);
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/impl/UnknownSizeException.java b/src/main/java/org/apache/commons/fileupload2/impl/UnknownSizeException.java
index 9b8cd1a..b94e10d 100644
--- a/src/main/java/org/apache/commons/fileupload2/impl/UnknownSizeException.java
+++ b/src/main/java/org/apache/commons/fileupload2/impl/UnknownSizeException.java
@@ -48,7 +48,7 @@ public class UnknownSizeException
      *
      * @param message The detail message.
      */
-    public UnknownSizeException(String message) {
+    public UnknownSizeException(final String message) {
         super(message);
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileCleaner.java b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileCleaner.java
index 1aeb6a5..3686bd1 100644
--- a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileCleaner.java
+++ b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileCleaner.java
@@ -45,7 +45,7 @@ public class JakSrvltFileCleaner implements ServletContextListener {
      * @return The contexts tracker
      */
     public static FileCleaningTracker
-            getFileCleaningTracker(ServletContext pServletContext) {
+            getFileCleaningTracker(final ServletContext pServletContext) {
         return (FileCleaningTracker)
             pServletContext.getAttribute(FILE_CLEANING_TRACKER_ATTRIBUTE);
     }
@@ -57,8 +57,8 @@ public class JakSrvltFileCleaner implements ServletContextListener {
      * @param pServletContext The servlet context to modify
      * @param pTracker The tracker to set
      */
-    public static void setFileCleaningTracker(ServletContext pServletContext,
-            FileCleaningTracker pTracker) {
+    public static void setFileCleaningTracker(final ServletContext pServletContext,
+            final FileCleaningTracker pTracker) {
         pServletContext.setAttribute(FILE_CLEANING_TRACKER_ATTRIBUTE, pTracker);
     }
 
@@ -70,7 +70,7 @@ public class JakSrvltFileCleaner implements ServletContextListener {
      *   {@link #setFileCleaningTracker(ServletContext, FileCleaningTracker)}.
      */
     @Override
-    public void contextInitialized(ServletContextEvent sce) {
+    public void contextInitialized(final ServletContextEvent sce) {
         setFileCleaningTracker(sce.getServletContext(),
                 new FileCleaningTracker());
     }
@@ -83,7 +83,7 @@ public class JakSrvltFileCleaner implements ServletContextListener {
      *     {@link #getFileCleaningTracker(ServletContext)}.
      */
     @Override
-    public void contextDestroyed(ServletContextEvent sce) {
+    public void contextDestroyed(final ServletContextEvent sce) {
         getFileCleaningTracker(sce.getServletContext()).exitWhenFinished();
     }
 }
diff --git a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUpload.java b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUpload.java
index de3acd6..c1e3db6 100644
--- a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUpload.java
@@ -62,7 +62,7 @@ public class JakSrvltFileUpload extends FileUpload {
      *         {@code false} otherwise.
      */
     public static final boolean isMultipartContent(
-            HttpServletRequest request) {
+            final HttpServletRequest request) {
         if (!POST_METHOD.equalsIgnoreCase(request.getMethod())) {
             return false;
         }
@@ -88,7 +88,7 @@ public class JakSrvltFileUpload extends FileUpload {
      * @see FileUpload#FileUpload()
      * @param fileItemFactory The factory to use for creating file items.
      */
-    public JakSrvltFileUpload(FileItemFactory fileItemFactory) {
+    public JakSrvltFileUpload(final FileItemFactory fileItemFactory) {
         super(fileItemFactory);
     }
 
@@ -106,7 +106,7 @@ public class JakSrvltFileUpload extends FileUpload {
      * @throws FileUploadException if there are problems reading/parsing
      *                             the request or storing files.
      */
-    public List<FileItem> parseRequest(HttpServletRequest request) throws FileUploadException {
+    public List<FileItem> parseRequest(final HttpServletRequest request) throws FileUploadException {
         return parseRequest(new JakSrvltRequestContext(request));
     }
 
@@ -123,7 +123,7 @@ public class JakSrvltFileUpload extends FileUpload {
      *
      * @since 1.3
      */
-    public Map<String, List<FileItem>> parseParameterMap(HttpServletRequest request)
+    public Map<String, List<FileItem>> parseParameterMap(final HttpServletRequest request)
             throws FileUploadException {
         return parseParameterMap(new JakSrvltRequestContext(request));
     }
@@ -144,7 +144,7 @@ public class JakSrvltFileUpload extends FileUpload {
      *   error while communicating with the client or a problem while
      *   storing the uploaded content.
      */
-    public FileItemIterator getItemIterator(HttpServletRequest request)
+    public FileItemIterator getItemIterator(final HttpServletRequest request)
     throws FileUploadException, IOException {
         return super.getItemIterator(new JakSrvltRequestContext(request));
     }
diff --git a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java
index c89b8e2..0c91bfb 100644
--- a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java
+++ b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java
@@ -48,7 +48,7 @@ public class JakSrvltRequestContext implements UploadContext {
      *
      * @param request The request to which this context applies.
      */
-    public JakSrvltRequestContext(HttpServletRequest request) {
+    public JakSrvltRequestContext(final HttpServletRequest request) {
         this.request = request;
     }
 
@@ -97,7 +97,7 @@ public class JakSrvltRequestContext implements UploadContext {
         long size;
         try {
             size = Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH));
-        } catch (NumberFormatException e) {
+        } catch (final NumberFormatException e) {
             size = request.getContentLength();
         }
         return size;
diff --git a/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java b/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java
index 439c2eb..70909dc 100644
--- a/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java
@@ -59,7 +59,7 @@ public class PortletFileUpload extends FileUpload {
      * @return {@code true} if the request is multipart;
      *         {@code false} otherwise.
      */
-    public static final boolean isMultipartContent(ActionRequest request) {
+    public static final boolean isMultipartContent(final ActionRequest request) {
         return FileUploadBase.isMultipartContent(
                 new PortletRequestContext(request));
     }
@@ -83,7 +83,7 @@ public class PortletFileUpload extends FileUpload {
      * @see FileUpload#FileUpload()
      * @param fileItemFactory The factory to use for creating file items.
      */
-    public PortletFileUpload(FileItemFactory fileItemFactory) {
+    public PortletFileUpload(final FileItemFactory fileItemFactory) {
         super(fileItemFactory);
     }
 
@@ -101,7 +101,7 @@ public class PortletFileUpload extends FileUpload {
      * @throws FileUploadException if there are problems reading/parsing
      *                             the request or storing files.
      */
-    public List<FileItem> parseRequest(ActionRequest request)
+    public List<FileItem> parseRequest(final ActionRequest request)
             throws FileUploadException {
         return parseRequest(new PortletRequestContext(request));
     }
@@ -119,7 +119,7 @@ public class PortletFileUpload extends FileUpload {
      *
      * @since 1.3
      */
-    public Map<String, List<FileItem>> parseParameterMap(ActionRequest request)
+    public Map<String, List<FileItem>> parseParameterMap(final ActionRequest request)
             throws FileUploadException {
         return parseParameterMap(new PortletRequestContext(request));
     }
@@ -140,7 +140,7 @@ public class PortletFileUpload extends FileUpload {
      *   error while communicating with the client or a problem while
      *   storing the uploaded content.
      */
-    public FileItemIterator getItemIterator(ActionRequest request)
+    public FileItemIterator getItemIterator(final ActionRequest request)
             throws FileUploadException, IOException {
         return super.getItemIterator(new PortletRequestContext(request));
     }
diff --git a/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java b/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java
index eb6ba64..1610956 100644
--- a/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java
+++ b/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java
@@ -49,7 +49,7 @@ public class PortletRequestContext implements UploadContext {
      *
      * @param request The request to which this context applies.
      */
-    public PortletRequestContext(ActionRequest request) {
+    public PortletRequestContext(final ActionRequest request) {
         this.request = request;
     }
 
@@ -99,7 +99,7 @@ public class PortletRequestContext implements UploadContext {
         long size;
         try {
             size = Long.parseLong(request.getProperty(FileUploadBase.CONTENT_LENGTH));
-        } catch (NumberFormatException e) {
+        } catch (final NumberFormatException e) {
             size = request.getContentLength();
         }
         return size;
diff --git a/src/main/java/org/apache/commons/fileupload2/servlet/FileCleanerCleanup.java b/src/main/java/org/apache/commons/fileupload2/servlet/FileCleanerCleanup.java
index 72a4af6..e5ee1b0 100644
--- a/src/main/java/org/apache/commons/fileupload2/servlet/FileCleanerCleanup.java
+++ b/src/main/java/org/apache/commons/fileupload2/servlet/FileCleanerCleanup.java
@@ -44,7 +44,7 @@ public class FileCleanerCleanup implements ServletContextListener {
      * @return The contexts tracker
      */
     public static FileCleaningTracker
-            getFileCleaningTracker(ServletContext pServletContext) {
+            getFileCleaningTracker(final ServletContext pServletContext) {
         return (FileCleaningTracker)
             pServletContext.getAttribute(FILE_CLEANING_TRACKER_ATTRIBUTE);
     }
@@ -56,8 +56,8 @@ public class FileCleanerCleanup implements ServletContextListener {
      * @param pServletContext The servlet context to modify
      * @param pTracker The tracker to set
      */
-    public static void setFileCleaningTracker(ServletContext pServletContext,
-            FileCleaningTracker pTracker) {
+    public static void setFileCleaningTracker(final ServletContext pServletContext,
+            final FileCleaningTracker pTracker) {
         pServletContext.setAttribute(FILE_CLEANING_TRACKER_ATTRIBUTE, pTracker);
     }
 
@@ -69,7 +69,7 @@ public class FileCleanerCleanup implements ServletContextListener {
      *   {@link #setFileCleaningTracker(ServletContext, FileCleaningTracker)}.
      */
     @Override
-    public void contextInitialized(ServletContextEvent sce) {
+    public void contextInitialized(final ServletContextEvent sce) {
         setFileCleaningTracker(sce.getServletContext(),
                 new FileCleaningTracker());
     }
@@ -82,7 +82,7 @@ public class FileCleanerCleanup implements ServletContextListener {
      *     {@link #getFileCleaningTracker(ServletContext)}.
      */
     @Override
-    public void contextDestroyed(ServletContextEvent sce) {
+    public void contextDestroyed(final ServletContextEvent sce) {
         getFileCleaningTracker(sce.getServletContext()).exitWhenFinished();
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/servlet/ServletFileUpload.java b/src/main/java/org/apache/commons/fileupload2/servlet/ServletFileUpload.java
index 8118817..cabc4ca 100644
--- a/src/main/java/org/apache/commons/fileupload2/servlet/ServletFileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/servlet/ServletFileUpload.java
@@ -62,7 +62,7 @@ public class ServletFileUpload extends FileUpload {
      *         {@code false} otherwise.
      */
     public static final boolean isMultipartContent(
-            HttpServletRequest request) {
+            final HttpServletRequest request) {
         if (!POST_METHOD.equalsIgnoreCase(request.getMethod())) {
             return false;
         }
@@ -88,7 +88,7 @@ public class ServletFileUpload extends FileUpload {
      * @see FileUpload#FileUpload()
      * @param fileItemFactory The factory to use for creating file items.
      */
-    public ServletFileUpload(FileItemFactory fileItemFactory) {
+    public ServletFileUpload(final FileItemFactory fileItemFactory) {
         super(fileItemFactory);
     }
 
@@ -107,7 +107,7 @@ public class ServletFileUpload extends FileUpload {
      *                             the request or storing files.
      */
     @Override
-    public List<FileItem> parseRequest(HttpServletRequest request)
+    public List<FileItem> parseRequest(final HttpServletRequest request)
     throws FileUploadException {
         return parseRequest(new ServletRequestContext(request));
     }
@@ -125,7 +125,7 @@ public class ServletFileUpload extends FileUpload {
      *
      * @since 1.3
      */
-    public Map<String, List<FileItem>> parseParameterMap(HttpServletRequest request)
+    public Map<String, List<FileItem>> parseParameterMap(final HttpServletRequest request)
             throws FileUploadException {
         return parseParameterMap(new ServletRequestContext(request));
     }
@@ -146,7 +146,7 @@ public class ServletFileUpload extends FileUpload {
      *   error while communicating with the client or a problem while
      *   storing the uploaded content.
      */
-    public FileItemIterator getItemIterator(HttpServletRequest request)
+    public FileItemIterator getItemIterator(final HttpServletRequest request)
     throws FileUploadException, IOException {
         return super.getItemIterator(new ServletRequestContext(request));
     }
diff --git a/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java b/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java
index 2d25664..8c009d6 100644
--- a/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java
+++ b/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java
@@ -48,7 +48,7 @@ public class ServletRequestContext implements UploadContext {
      *
      * @param request The request to which this context applies.
      */
-    public ServletRequestContext(HttpServletRequest request) {
+    public ServletRequestContext(final HttpServletRequest request) {
         this.request = request;
     }
 
@@ -97,7 +97,7 @@ public class ServletRequestContext implements UploadContext {
         long size;
         try {
             size = Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH));
-        } catch (NumberFormatException e) {
+        } catch (final NumberFormatException e) {
             size = request.getContentLength();
         }
         return size;
diff --git a/src/main/java/org/apache/commons/fileupload2/util/FileItemHeadersImpl.java b/src/main/java/org/apache/commons/fileupload2/util/FileItemHeadersImpl.java
index 4dfc8ef..b6f48eb 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/FileItemHeadersImpl.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/FileItemHeadersImpl.java
@@ -49,9 +49,9 @@ public class FileItemHeadersImpl implements FileItemHeaders, Serializable {
      * {@inheritDoc}
      */
     @Override
-    public String getHeader(String name) {
-        String nameLower = name.toLowerCase(Locale.ENGLISH);
-        List<String> headerValueList = headerNameToValueListMap.get(nameLower);
+    public String getHeader(final String name) {
+        final String nameLower = name.toLowerCase(Locale.ENGLISH);
+        final List<String> headerValueList = headerNameToValueListMap.get(nameLower);
         if (null == headerValueList) {
             return null;
         }
@@ -70,8 +70,8 @@ public class FileItemHeadersImpl implements FileItemHeaders, Serializable {
      * {@inheritDoc}
      */
     @Override
-    public Iterator<String> getHeaders(String name) {
-        String nameLower = name.toLowerCase(Locale.ENGLISH);
+    public Iterator<String> getHeaders(final String name) {
+        final String nameLower = name.toLowerCase(Locale.ENGLISH);
         List<String> headerValueList = headerNameToValueListMap.get(nameLower);
         if (null == headerValueList) {
             headerValueList = Collections.emptyList();
@@ -85,8 +85,8 @@ public class FileItemHeadersImpl implements FileItemHeaders, Serializable {
      * @param name name of this header
      * @param value value of this header
      */
-    public synchronized void addHeader(String name, String value) {
-        String nameLower = name.toLowerCase(Locale.ENGLISH);
+    public synchronized void addHeader(final String name, final String value) {
+        final String nameLower = name.toLowerCase(Locale.ENGLISH);
         List<String> headerValueList = headerNameToValueListMap.get(nameLower);
         if (null == headerValueList) {
             headerValueList = new ArrayList<String>();
diff --git a/src/main/java/org/apache/commons/fileupload2/util/LimitedInputStream.java b/src/main/java/org/apache/commons/fileupload2/util/LimitedInputStream.java
index ccc162f..a5cffca 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/LimitedInputStream.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/LimitedInputStream.java
@@ -48,7 +48,7 @@ public abstract class LimitedInputStream extends FilterInputStream implements Cl
      * @param pSizeMax The limit; no more than this number of bytes
      *   shall be returned by the source stream.
      */
-    public LimitedInputStream(InputStream inputStream, long pSizeMax) {
+    public LimitedInputStream(final InputStream inputStream, final long pSizeMax) {
         super(inputStream);
         sizeMax = pSizeMax;
     }
@@ -96,7 +96,7 @@ public abstract class LimitedInputStream extends FilterInputStream implements Cl
      */
     @Override
     public int read() throws IOException {
-        int res = super.read();
+        final int res = super.read();
         if (res != -1) {
             count++;
             checkLimit();
@@ -128,8 +128,8 @@ public abstract class LimitedInputStream extends FilterInputStream implements Cl
      * @see        java.io.FilterInputStream#in
      */
     @Override
-    public int read(byte[] b, int off, int len) throws IOException {
-        int res = super.read(b, off, len);
+    public int read(final byte[] b, final int off, final int len) throws IOException {
+        final int res = super.read(b, off, len);
         if (res > 0) {
             count += res;
             checkLimit();
diff --git a/src/main/java/org/apache/commons/fileupload2/util/Streams.java b/src/main/java/org/apache/commons/fileupload2/util/Streams.java
index cd66b86..a5c1cfb 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/Streams.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/Streams.java
@@ -63,7 +63,7 @@ public final class Streams {
      * @return Number of bytes, which have been copied.
      * @throws IOException An I/O error occurred.
      */
-    public static long copy(InputStream inputStream, OutputStream outputStream, boolean closeOutputStream)
+    public static long copy(final InputStream inputStream, final OutputStream outputStream, final boolean closeOutputStream)
             throws IOException {
         return copy(inputStream, outputStream, closeOutputStream, new byte[DEFAULT_BUFFER_SIZE]);
     }
@@ -86,16 +86,16 @@ public final class Streams {
      * @return Number of bytes, which have been copied.
      * @throws IOException An I/O error occurred.
      */
-    public static long copy(InputStream inputStream,
-            OutputStream outputStream, boolean closeOutputStream,
-            byte[] buffer)
+    public static long copy(final InputStream inputStream,
+            final OutputStream outputStream, final boolean closeOutputStream,
+            final byte[] buffer)
     throws IOException {
         OutputStream out = outputStream;
         InputStream in = inputStream;
         try {
             long total = 0;
             for (;;) {
-                int res = in.read(buffer);
+                final int res = in.read(buffer);
                 if (res == -1) {
                     break;
                 }
@@ -136,8 +136,8 @@ public final class Streams {
      * @return The streams contents, as a string.
      * @throws IOException An I/O error occurred.
      */
-    public static String asString(InputStream inputStream) throws IOException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    public static String asString(final InputStream inputStream) throws IOException {
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         copy(inputStream, baos, true);
         return baos.toString();
     }
@@ -155,7 +155,7 @@ public final class Streams {
      */
     public static String asString(final InputStream inputStream, final String encoding)
     		throws IOException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         copy(inputStream, baos, true);
         return baos.toString(encoding);
     }
@@ -170,12 +170,12 @@ public final class Streams {
      * @return Unmodified file name, if valid.
      * @throws InvalidFileNameException The file name was found to be invalid.
      */
-    public static String checkFileName(String fileName) {
+    public static String checkFileName(final String fileName) {
         if (fileName != null  &&  fileName.indexOf('\u0000') != -1) {
             // pFileName.replace("\u0000", "\\0")
             final StringBuilder sb = new StringBuilder();
             for (int i = 0;  i < fileName.length();  i++) {
-                char c = fileName.charAt(i);
+                final char c = fileName.charAt(i);
                 switch (c) {
                     case 0:
                         sb.append("\\0");
diff --git a/src/main/java/org/apache/commons/fileupload2/util/mime/Base64Decoder.java b/src/main/java/org/apache/commons/fileupload2/util/mime/Base64Decoder.java
index 4c9d0b5..a4ecbeb 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/mime/Base64Decoder.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/Base64Decoder.java
@@ -102,12 +102,12 @@ final class Base64Decoder {
      * @return the number of bytes produced.
      * @throws IOException thrown when the padding is incorrect or the input is truncated.
      */
-    public static int decode(byte[] data, OutputStream out) throws IOException {
+    public static int decode(final byte[] data, final OutputStream out) throws IOException {
         int        outLen = 0;
-        byte [] cache = new byte[INPUT_BYTES_PER_CHUNK];
+        final byte [] cache = new byte[INPUT_BYTES_PER_CHUNK];
         int cachedBytes = 0;
 
-        for (byte b : data) {
+        for (final byte b : data) {
             final byte d = DECODING_TABLE[MASK_BYTE_UNSIGNED & b];
             if (d == INVALID_BYTE) {
                 continue; // Ignore invalid bytes
diff --git a/src/main/java/org/apache/commons/fileupload2/util/mime/MimeUtility.java b/src/main/java/org/apache/commons/fileupload2/util/mime/MimeUtility.java
index e0f26f1..d8cb8cc 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/mime/MimeUtility.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/MimeUtility.java
@@ -96,7 +96,7 @@ public final class MimeUtility {
      * @return The decoded text string.
      * @throws UnsupportedEncodingException if the detected encoding in the input text is not supported.
      */
-    public static String decodeText(String text) throws UnsupportedEncodingException {
+    public static String decodeText(final String text) throws UnsupportedEncodingException {
         // if the text contains any encoded tokens, those tokens will be marked with "=?".  If the
         // source string doesn't contain that sequent, no decoding is required.
         if (text.indexOf(ENCODED_TOKEN_MARKER) < 0) {
@@ -104,12 +104,12 @@ public final class MimeUtility {
         }
 
         int offset = 0;
-        int endOffset = text.length();
+        final int endOffset = text.length();
 
         int startWhiteSpace = -1;
         int endWhiteSpace = -1;
 
-        StringBuilder decodedText = new StringBuilder(text.length());
+        final StringBuilder decodedText = new StringBuilder(text.length());
 
         boolean previousTokenEncoded = false;
 
@@ -133,7 +133,7 @@ public final class MimeUtility {
                 }
             } else {
                 // we have a word token.  We need to scan over the word and then try to parse it.
-                int wordStart = offset;
+                final int wordStart = offset;
 
                 while (offset < endOffset) {
                     // step over the non white space characters.
@@ -147,12 +147,12 @@ public final class MimeUtility {
                     //NB:  Trailing whitespace on these header strings will just be discarded.
                 }
                 // pull out the word token.
-                String word = text.substring(wordStart, offset);
+                final String word = text.substring(wordStart, offset);
                 // is the token encoded?  decode the word
                 if (word.startsWith(ENCODED_TOKEN_MARKER)) {
                     try {
                         // if this gives a parsing failure, treat it like a non-encoded word.
-                        String decodedWord = decodeWord(word);
+                        final String decodedWord = decodeWord(word);
 
                         // are any whitespace characters significant?  Append 'em if we've got 'em.
                         if (!previousTokenEncoded && startWhiteSpace != -1) {
@@ -167,7 +167,7 @@ public final class MimeUtility {
                         // and get handled as normal text.
                         continue;
 
-                    } catch (ParseException e) {
+                    } catch (final ParseException e) {
                         // just ignore it, skip to next word
                     }
                 }
@@ -198,7 +198,7 @@ public final class MimeUtility {
      * @throws ParseException
      * @throws UnsupportedEncodingException
      */
-    private static String decodeWord(String word) throws ParseException, UnsupportedEncodingException {
+    private static String decodeWord(final String word) throws ParseException, UnsupportedEncodingException {
         // encoded words start with the characters "=?".  If this not an encoded word, we throw a
         // ParseException for the caller.
 
@@ -206,29 +206,29 @@ public final class MimeUtility {
             throw new ParseException("Invalid RFC 2047 encoded-word: " + word);
         }
 
-        int charsetPos = word.indexOf('?', 2);
+        final int charsetPos = word.indexOf('?', 2);
         if (charsetPos == -1) {
             throw new ParseException("Missing charset in RFC 2047 encoded-word: " + word);
         }
 
         // pull out the character set information (this is the MIME name at this point).
-        String charset = word.substring(2, charsetPos).toLowerCase(Locale.ENGLISH);
+        final String charset = word.substring(2, charsetPos).toLowerCase(Locale.ENGLISH);
 
         // now pull out the encoding token the same way.
-        int encodingPos = word.indexOf('?', charsetPos + 1);
+        final int encodingPos = word.indexOf('?', charsetPos + 1);
         if (encodingPos == -1) {
             throw new ParseException("Missing encoding in RFC 2047 encoded-word: " + word);
         }
 
-        String encoding = word.substring(charsetPos + 1, encodingPos);
+        final String encoding = word.substring(charsetPos + 1, encodingPos);
 
         // and finally the encoded text.
-        int encodedTextPos = word.indexOf(ENCODED_TOKEN_FINISHER, encodingPos + 1);
+        final int encodedTextPos = word.indexOf(ENCODED_TOKEN_FINISHER, encodingPos + 1);
         if (encodedTextPos == -1) {
             throw new ParseException("Missing encoded text in RFC 2047 encoded-word: " + word);
         }
 
-        String encodedText = word.substring(encodingPos + 1, encodedTextPos);
+        final String encodedText = word.substring(encodingPos + 1, encodedTextPos);
 
         // seems a bit silly to encode a null string, but easy to deal with.
         if (encodedText.length() == 0) {
@@ -237,9 +237,9 @@ public final class MimeUtility {
 
         try {
             // the decoder writes directly to an output stream.
-            ByteArrayOutputStream out = new ByteArrayOutputStream(encodedText.length());
+            final ByteArrayOutputStream out = new ByteArrayOutputStream(encodedText.length());
 
-            byte[] encodedData = encodedText.getBytes(US_ASCII_CHARSET);
+            final byte[] encodedData = encodedText.getBytes(US_ASCII_CHARSET);
 
             // Base64 encoded?
             if (encoding.equals(BASE64_ENCODING_MARKER)) {
@@ -250,9 +250,9 @@ public final class MimeUtility {
                 throw new UnsupportedEncodingException("Unknown RFC 2047 encoding: " + encoding);
             }
             // get the decoded byte data and convert into a string.
-            byte[] decodedData = out.toByteArray();
+            final byte[] decodedData = out.toByteArray();
             return new String(decodedData, javaCharset(charset));
-        } catch (IOException e) {
+        } catch (final IOException e) {
             throw new UnsupportedEncodingException("Invalid RFC 2047 encoding");
         }
     }
@@ -265,13 +265,13 @@ public final class MimeUtility {
      *
      * @return The Java equivalent for this name.
      */
-    private static String javaCharset(String charset) {
+    private static String javaCharset(final String charset) {
         // nothing in, nothing out.
         if (charset == null) {
             return null;
         }
 
-        String mappedCharset = MIME2JAVA.get(charset.toLowerCase(Locale.ENGLISH));
+        final String mappedCharset = MIME2JAVA.get(charset.toLowerCase(Locale.ENGLISH));
         // if there is no mapping, then the original name is used.  Many of the MIME character set
         // names map directly back into Java.  The reverse isn't necessarily true.
         if (mappedCharset == null) {
diff --git a/src/main/java/org/apache/commons/fileupload2/util/mime/ParseException.java b/src/main/java/org/apache/commons/fileupload2/util/mime/ParseException.java
index 0ef5382..38f3d91 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/mime/ParseException.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/ParseException.java
@@ -31,7 +31,7 @@ final class ParseException extends Exception {
      *
      * @param message the detail message.
      */
-    public ParseException(String message) {
+    public ParseException(final String message) {
         super(message);
     }
 
diff --git a/src/main/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoder.java b/src/main/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoder.java
index 8775f54..8aac120 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoder.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoder.java
@@ -46,14 +46,14 @@ final class QuotedPrintableDecoder {
      * @return the number of bytes produced.
      * @throws IOException
      */
-    public static int decode(byte[] data, OutputStream out) throws IOException {
+    public static int decode(final byte[] data, final OutputStream out) throws IOException {
         int off = 0;
-        int length = data.length;
-        int endOffset = off + length;
+        final int length = data.length;
+        final int endOffset = off + length;
         int bytesWritten = 0;
 
         while (off < endOffset) {
-            byte ch = data[off++];
+            final byte ch = data[off++];
 
             // space characters were translated to '_' on encode, so we need to translate them back.
             if (ch == '_') {
@@ -65,8 +65,8 @@ final class QuotedPrintableDecoder {
                     throw new IOException("Invalid quoted printable encoding; truncated escape sequence");
                 }
 
-                byte b1 = data[off++];
-                byte b2 = data[off++];
+                final byte b1 = data[off++];
+                final byte b2 = data[off++];
 
                 // we've found an encoded carriage return.  The next char needs to be a newline
                 if (b1 == '\r') {
@@ -77,8 +77,8 @@ final class QuotedPrintableDecoder {
                     // on decode.
                 } else {
                     // this is a hex pair we need to convert back to a single byte.
-                    int c1 = hexToBinary(b1);
-                    int c2 = hexToBinary(b2);
+                    final int c1 = hexToBinary(b1);
+                    final int c2 = hexToBinary(b2);
                     out.write((c1 << UPPER_NIBBLE_SHIFT) | c2);
                     // 3 bytes in, one byte out
                     bytesWritten++;
diff --git a/src/main/java/org/apache/commons/fileupload2/util/mime/RFC2231Utility.java b/src/main/java/org/apache/commons/fileupload2/util/mime/RFC2231Utility.java
index 427878e..82335f1 100644
--- a/src/main/java/org/apache/commons/fileupload2/util/mime/RFC2231Utility.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/RFC2231Utility.java
@@ -49,7 +49,7 @@ public final class RFC2231Utility {
      * @param paramName The parameter, which is being checked.
      * @return {@code true}, if encoded as per RFC 2231, {@code false} otherwise
      */
-    public static boolean hasEncodedValue(String paramName) {
+    public static boolean hasEncodedValue(final String paramName) {
         if (paramName != null) {
             return paramName.lastIndexOf("*") == (paramName.length() - 1);
         }
@@ -62,9 +62,9 @@ public final class RFC2231Utility {
      * @param paramName The parameter, which is being inspected.
      * @return stripped {@code paramName} of Asterisk (*), if RFC2231 encoded
      */
-    public static String stripDelimiter(String paramName) {
+    public static String stripDelimiter(final String paramName) {
         if (hasEncodedValue(paramName)) {
-            StringBuilder paramBuilder = new StringBuilder(paramName);
+            final StringBuilder paramBuilder = new StringBuilder(paramName);
             paramBuilder.deleteCharAt(paramName.lastIndexOf("*"));
             return paramBuilder.toString();
         }
@@ -87,19 +87,19 @@ public final class RFC2231Utility {
      * @return Decoded text based on charset encoding
      * @throws UnsupportedEncodingException The requested character set wasn't found.
      */
-    public static String decodeText(String encodedText) throws UnsupportedEncodingException {
-        int langDelimitStart = encodedText.indexOf('\'');
+    public static String decodeText(final String encodedText) throws UnsupportedEncodingException {
+        final int langDelimitStart = encodedText.indexOf('\'');
         if (langDelimitStart == -1) {
             // missing charset
             return encodedText;
         }
-        String mimeCharset = encodedText.substring(0, langDelimitStart);
-        int langDelimitEnd = encodedText.indexOf('\'', langDelimitStart + 1);
+        final String mimeCharset = encodedText.substring(0, langDelimitStart);
+        final int langDelimitEnd = encodedText.indexOf('\'', langDelimitStart + 1);
         if (langDelimitEnd == -1) {
             // missing language
             return encodedText;
         }
-        byte[] bytes = fromHex(encodedText.substring(langDelimitEnd + 1));
+        final byte[] bytes = fromHex(encodedText.substring(langDelimitEnd + 1));
         return new String(bytes, getJavaCharset(mimeCharset));
     }
 
@@ -108,16 +108,16 @@ public final class RFC2231Utility {
      * @param text - ASCII text input
      * @return Byte array of characters decoded from ASCII table
      */
-    private static byte[] fromHex(String text) {
-        ByteArrayOutputStream out = new ByteArrayOutputStream(text.length());
+    private static byte[] fromHex(final String text) {
+        final ByteArrayOutputStream out = new ByteArrayOutputStream(text.length());
         for (int i = 0; i < text.length();) {
-            char c = text.charAt(i++);
+            final char c = text.charAt(i++);
             if (c == '%') {
                 if (i > text.length() - 2) {
                     break; // unterminated sequence
                 }
-                byte b1 = HEX_DECODE[text.charAt(i++) & 0x7f];
-                byte b2 = HEX_DECODE[text.charAt(i++) & 0x7f];
+                final byte b1 = HEX_DECODE[text.charAt(i++) & 0x7f];
+                final byte b2 = HEX_DECODE[text.charAt(i++) & 0x7f];
                 out.write((b1 << 4) | b2);
             } else {
                 out.write((byte) c);
@@ -126,7 +126,7 @@ public final class RFC2231Utility {
         return out.toByteArray();
     }
 
-    private static String getJavaCharset(String mimeCharset) {
+    private static String getJavaCharset(final String mimeCharset) {
         // good enough for standard values
         return mimeCharset;
     }
diff --git a/src/test/java/org/apache/commons/fileupload2/DefaultFileItemTest.java b/src/test/java/org/apache/commons/fileupload2/DefaultFileItemTest.java
index 902ee50..e1d5101 100644
--- a/src/test/java/org/apache/commons/fileupload2/DefaultFileItemTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/DefaultFileItemTest.java
@@ -63,10 +63,10 @@ public class DefaultFileItemTest {
      */
     @Test
     public void testTextFieldConstruction() {
-        FileItemFactory factory = createFactory(null);
-        String textFieldName = "textField";
+        final FileItemFactory factory = createFactory(null);
+        final String textFieldName = "textField";
 
-        FileItem item = factory.createItem(
+        final FileItem item = factory.createItem(
                 textFieldName,
                 textContentType,
                 true,
@@ -84,11 +84,11 @@ public class DefaultFileItemTest {
      */
     @Test
     public void testFileFieldConstruction() {
-        FileItemFactory factory = createFactory(null);
-        String fileFieldName = "fileField";
-        String fileName = "originalFileName";
+        final FileItemFactory factory = createFactory(null);
+        final String fileFieldName = "fileField";
+        final String fileName = "originalFileName";
 
-        FileItem item = factory.createItem(
+        final FileItem item = factory.createItem(
                 fileFieldName,
                 fileContentType,
                 false,
@@ -107,12 +107,12 @@ public class DefaultFileItemTest {
      */
     @Test
     public void testBelowThreshold() {
-        FileItemFactory factory = createFactory(null);
-        String textFieldName = "textField";
-        String textFieldValue = "0123456789";
-        byte[] testFieldValueBytes = textFieldValue.getBytes();
+        final FileItemFactory factory = createFactory(null);
+        final String textFieldName = "textField";
+        final String textFieldValue = "0123456789";
+        final byte[] testFieldValueBytes = textFieldValue.getBytes();
 
-        FileItem item = factory.createItem(
+        final FileItem item = factory.createItem(
                 textFieldName,
                 textContentType,
                 true,
@@ -121,10 +121,10 @@ public class DefaultFileItemTest {
         assertNotNull(item);
 
         try {
-            OutputStream os = item.getOutputStream();
+            final OutputStream os = item.getOutputStream();
             os.write(testFieldValueBytes);
             os.close();
-        } catch(IOException e) {
+        } catch(final IOException e) {
             fail("Unexpected IOException");
         }
         assertTrue(item.isInMemory());
@@ -148,9 +148,9 @@ public class DefaultFileItemTest {
      */
     @Test
     public void testAboveThresholdSpecifiedRepository() throws IOException {
-        String tempPath = System.getProperty("java.io.tmpdir");
-        String tempDirName = "testAboveThresholdSpecifiedRepository";
-        File tempDir = new File(tempPath, tempDirName);
+        final String tempPath = System.getProperty("java.io.tmpdir");
+        final String tempDirName = "testAboveThresholdSpecifiedRepository";
+        final File tempDir = new File(tempPath, tempDirName);
         FileUtils.forceMkdir(tempDir);
         doTestAboveThreshold(tempDir);
         assertTrue(tempDir.delete());
@@ -164,13 +164,13 @@ public class DefaultFileItemTest {
      * @param repository The directory within which temporary files will be
      *                   created.
      */
-    public void doTestAboveThreshold(File repository) {
-        FileItemFactory factory = createFactory(repository);
-        String textFieldName = "textField";
-        String textFieldValue = "01234567890123456789";
-        byte[] testFieldValueBytes = textFieldValue.getBytes();
+    public void doTestAboveThreshold(final File repository) {
+        final FileItemFactory factory = createFactory(repository);
+        final String textFieldName = "textField";
+        final String textFieldValue = "01234567890123456789";
+        final byte[] testFieldValueBytes = textFieldValue.getBytes();
 
-        FileItem item = factory.createItem(
+        final FileItem item = factory.createItem(
                 textFieldName,
                 textContentType,
                 true,
@@ -179,10 +179,10 @@ public class DefaultFileItemTest {
         assertNotNull(item);
 
         try {
-            OutputStream os = item.getOutputStream();
+            final OutputStream os = item.getOutputStream();
             os.write(testFieldValueBytes);
             os.close();
-        } catch(IOException e) {
+        } catch(final IOException e) {
             fail("Unexpected IOException");
         }
         assertFalse(item.isInMemory());
@@ -191,8 +191,8 @@ public class DefaultFileItemTest {
         assertEquals(item.getString(), textFieldValue);
 
         assertTrue(item instanceof DefaultFileItem);
-        DefaultFileItem dfi = (DefaultFileItem) item;
-        File storeLocation = dfi.getStoreLocation();
+        final DefaultFileItem dfi = (DefaultFileItem) item;
+        final File storeLocation = dfi.getStoreLocation();
         assertNotNull(storeLocation);
         assertTrue(storeLocation.exists());
         assertEquals(storeLocation.length(), testFieldValueBytes.length);
@@ -213,7 +213,7 @@ public class DefaultFileItemTest {
      *                   created.
      * @return the new {@code FileItemFactory} instance.
      */
-    protected FileItemFactory createFactory(File repository) {
+    protected FileItemFactory createFactory(final File repository) {
         return new DefaultFileItemFactory(threshold, repository);
     }
 
@@ -261,10 +261,10 @@ public class DefaultFileItemTest {
         0xE5, 0xF2
     };
 
-    private static String constructString(int[] unicodeChars) {
-        StringBuilder buffer = new StringBuilder();
+    private static String constructString(final int[] unicodeChars) {
+        final StringBuilder buffer = new StringBuilder();
         if (unicodeChars != null) {
-            for (int unicodeChar : unicodeChars) {
+            for (final int unicodeChar : unicodeChars) {
                 buffer.append((char) unicodeChar);
             }
         }
@@ -275,7 +275,7 @@ public class DefaultFileItemTest {
      * Test construction of content charset.
      */
     public void testContentCharSet() throws Exception {
-        FileItemFactory factory = createFactory(null);
+        final FileItemFactory factory = createFactory(null);
 
         String teststr = constructString(SWISS_GERMAN_STUFF_UNICODE);
 
@@ -286,7 +286,7 @@ public class DefaultFileItemTest {
                 true,
                 null);
         OutputStream outstream = item.getOutputStream();
-        for (int element : SWISS_GERMAN_STUFF_ISO8859_1) {
+        for (final int element : SWISS_GERMAN_STUFF_ISO8859_1) {
             outstream.write(element);
         }
         outstream.close();
@@ -299,7 +299,7 @@ public class DefaultFileItemTest {
                 true,
                 null);
         outstream = item.getOutputStream();
-        for (int element : SWISS_GERMAN_STUFF_UTF8) {
+        for (final int element : SWISS_GERMAN_STUFF_UTF8) {
             outstream.write(element);
         }
         outstream.close();
@@ -314,7 +314,7 @@ public class DefaultFileItemTest {
                 true,
                 null);
         outstream = item.getOutputStream();
-        for (int element : RUSSIAN_STUFF_KOI8R) {
+        for (final int element : RUSSIAN_STUFF_KOI8R) {
             outstream.write(element);
         }
         outstream.close();
@@ -327,7 +327,7 @@ public class DefaultFileItemTest {
                 true,
                 null);
         outstream = item.getOutputStream();
-        for (int element : RUSSIAN_STUFF_WIN1251) {
+        for (final int element : RUSSIAN_STUFF_WIN1251) {
             outstream.write(element);
         }
         outstream.close();
@@ -340,7 +340,7 @@ public class DefaultFileItemTest {
                 true,
                 null);
         outstream = item.getOutputStream();
-        for (int element : RUSSIAN_STUFF_UTF8) {
+        for (final int element : RUSSIAN_STUFF_UTF8) {
             outstream.write(element);
         }
         outstream.close();
diff --git a/src/test/java/org/apache/commons/fileupload2/DiskFileItemSerializeTest.java b/src/test/java/org/apache/commons/fileupload2/DiskFileItemSerializeTest.java
index 49ac9e7..46beba6 100644
--- a/src/test/java/org/apache/commons/fileupload2/DiskFileItemSerializeTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/DiskFileItemSerializeTest.java
@@ -58,7 +58,7 @@ public class DiskFileItemSerializeTest {
 
     @AfterEach
     public void tearDown() throws IOException {
-        for(File file : FileUtils.listFiles(REPO, null, true)) {
+        for(final File file : FileUtils.listFiles(REPO, null, true)) {
             System.out.println("Found leftover file " + file);
         }
         FileUtils.deleteDirectory(REPO);
@@ -77,8 +77,8 @@ public class DiskFileItemSerializeTest {
     /**
      * Helper method to test creation of a field when a repository is used.
      */
-    public void testInMemoryObject(byte[] testFieldValueBytes, File repository) {
-        FileItem item = createFileItem(testFieldValueBytes, repository);
+    public void testInMemoryObject(final byte[] testFieldValueBytes, final File repository) {
+        final FileItem item = createFileItem(testFieldValueBytes, repository);
 
         // Check state is as expected
         assertTrue(item.isInMemory(), "Initial: in memory");
@@ -90,7 +90,7 @@ public class DiskFileItemSerializeTest {
     /**
      * Helper method to test creation of a field.
      */
-    private void testInMemoryObject(byte[] testFieldValueBytes) {
+    private void testInMemoryObject(final byte[] testFieldValueBytes) {
         testInMemoryObject(testFieldValueBytes, REPO);
     }
 
@@ -101,7 +101,7 @@ public class DiskFileItemSerializeTest {
     @Test
     public void testBelowThreshold() {
         // Create the FileItem
-        byte[] testFieldValueBytes = createContentBytes(threshold - 1);
+        final byte[] testFieldValueBytes = createContentBytes(threshold - 1);
         testInMemoryObject(testFieldValueBytes);
     }
 
@@ -112,7 +112,7 @@ public class DiskFileItemSerializeTest {
     @Test
     public void testThreshold() {
         // Create the FileItem
-        byte[] testFieldValueBytes = createContentBytes(threshold);
+        final byte[] testFieldValueBytes = createContentBytes(threshold);
         testInMemoryObject(testFieldValueBytes);
     }
 
@@ -123,8 +123,8 @@ public class DiskFileItemSerializeTest {
     @Test
     public void testAboveThreshold() {
         // Create the FileItem
-        byte[] testFieldValueBytes = createContentBytes(threshold + 1);
-        FileItem item = createFileItem(testFieldValueBytes);
+        final byte[] testFieldValueBytes = createContentBytes(threshold + 1);
+        final FileItem item = createFileItem(testFieldValueBytes);
 
         // Check state is as expected
         assertFalse(item.isInMemory(), "Initial: in memory");
@@ -140,7 +140,7 @@ public class DiskFileItemSerializeTest {
     @Test
     public void testValidRepository() {
         // Create the FileItem
-        byte[] testFieldValueBytes = createContentBytes(threshold);
+        final byte[] testFieldValueBytes = createContentBytes(threshold);
         testInMemoryObject(testFieldValueBytes, REPO);
     }
 
@@ -150,9 +150,9 @@ public class DiskFileItemSerializeTest {
     @Test
     public void testInvalidRepository() {
         // Create the FileItem
-        byte[] testFieldValueBytes = createContentBytes(threshold);
-        File repository = new File(System.getProperty("java.io.tmpdir"), "file");
-        FileItem item = createFileItem(testFieldValueBytes, repository);
+        final byte[] testFieldValueBytes = createContentBytes(threshold);
+        final File repository = new File(System.getProperty("java.io.tmpdir"), "file");
+        final FileItem item = createFileItem(testFieldValueBytes, repository);
         assertThrows(IOException.class, () -> deserialize(serialize(item)));
     }
 
@@ -162,16 +162,16 @@ public class DiskFileItemSerializeTest {
     @Test
     public void testInvalidRepositoryWithNullChar() {
         // Create the FileItem
-        byte[] testFieldValueBytes = createContentBytes(threshold);
-        File repository = new File(System.getProperty("java.io.tmpdir"), "\0");
-        FileItem item = createFileItem(testFieldValueBytes, repository);
+        final byte[] testFieldValueBytes = createContentBytes(threshold);
+        final File repository = new File(System.getProperty("java.io.tmpdir"), "\0");
+        final FileItem item = createFileItem(testFieldValueBytes, repository);
         assertThrows(IOException.class, () -> deserialize(serialize(item)));
     }
 
     /**
      * Compare content bytes.
      */
-    private void compareBytes(String text, byte[] origBytes, byte[] newBytes) {
+    private void compareBytes(final String text, final byte[] origBytes, final byte[] newBytes) {
         assertNotNull(origBytes, "origBytes must not be null");
         assertNotNull(newBytes, "newBytes must not be null");
         assertEquals(origBytes.length, newBytes.length, text + " byte[] length");
@@ -183,8 +183,8 @@ public class DiskFileItemSerializeTest {
     /**
      * Create content bytes of a specified size.
      */
-    private byte[] createContentBytes(int size) {
-        StringBuilder buffer = new StringBuilder(size);
+    private byte[] createContentBytes(final int size) {
+        final StringBuilder buffer = new StringBuilder(size);
         byte count = 0;
         for (int i = 0; i < size; i++) {
             buffer.append(count+"");
@@ -199,21 +199,21 @@ public class DiskFileItemSerializeTest {
     /**
      * Create a FileItem with the specfied content bytes and repository.
      */
-    private FileItem createFileItem(byte[] contentBytes, File repository) {
-        FileItemFactory factory = new DiskFileItemFactory(threshold, repository);
-        String textFieldName = "textField";
+    private FileItem createFileItem(final byte[] contentBytes, final File repository) {
+        final FileItemFactory factory = new DiskFileItemFactory(threshold, repository);
+        final String textFieldName = "textField";
 
-        FileItem item = factory.createItem(
+        final FileItem item = factory.createItem(
                 textFieldName,
                 textContentType,
                 true,
                 "My File Name"
         );
         try {
-            OutputStream os = item.getOutputStream();
+            final OutputStream os = item.getOutputStream();
             os.write(contentBytes);
             os.close();
-        } catch(IOException e) {
+        } catch(final IOException e) {
             fail("Unexpected IOException" + e);
         }
 
@@ -224,16 +224,16 @@ public class DiskFileItemSerializeTest {
     /**
      * Create a FileItem with the specfied content bytes.
      */
-    private FileItem createFileItem(byte[] contentBytes) {
+    private FileItem createFileItem(final byte[] contentBytes) {
         return createFileItem(contentBytes, REPO);
     }
 
     /**
      * Do serialization
      */
-    private ByteArrayOutputStream serialize(Object target) throws Exception {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        ObjectOutputStream oos = new ObjectOutputStream(baos);
+    private ByteArrayOutputStream serialize(final Object target) throws Exception {
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        final ObjectOutputStream oos = new ObjectOutputStream(baos);
         oos.writeObject(target);
         oos.flush();
         oos.close();
@@ -243,11 +243,11 @@ public class DiskFileItemSerializeTest {
     /**
      * Do deserialization
      */
-    private Object deserialize(ByteArrayOutputStream baos) throws Exception {
-        ByteArrayInputStream bais =
+    private Object deserialize(final ByteArrayOutputStream baos) throws Exception {
+        final ByteArrayInputStream bais =
                 new ByteArrayInputStream(baos.toByteArray());
-        ObjectInputStream ois = new ObjectInputStream(bais);
-        Object result = ois.readObject();
+        final ObjectInputStream ois = new ObjectInputStream(bais);
+        final Object result = ois.readObject();
         bais.close();
 
         return result;
diff --git a/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
index c0a87a6..ed88165 100644
--- a/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
@@ -47,26 +47,26 @@ public class DiskFileUploadTest {
 
     @Test
     public void testWithInvalidRequest() {
-        HttpServletRequest req = HttpServletRequestFactory.createInvalidHttpServletRequest();
+        final HttpServletRequest req = HttpServletRequestFactory.createInvalidHttpServletRequest();
 
         try {
             upload.parseRequest(req);
             fail("testWithInvalidRequest: expected exception was not thrown");
-        } catch (FileUploadException expected) {
+        } catch (final FileUploadException expected) {
             // this exception is expected
         }
     }
 
     @Test
     public void testWithNullContentType() {
-        HttpServletRequest req = HttpServletRequestFactory.createHttpServletRequestWithNullContentType();
+        final HttpServletRequest req = HttpServletRequestFactory.createHttpServletRequestWithNullContentType();
 
         try {
             upload.parseRequest(req);
             fail("testWithNullContentType: expected exception was not thrown");
-        } catch (InvalidContentTypeException expected) {
+        } catch (final InvalidContentTypeException expected) {
             // this exception is expected
-        } catch (FileUploadException unexpected) {
+        } catch (final FileUploadException unexpected) {
             fail("testWithNullContentType: unexpected exception was thrown");
         }
     }
@@ -75,7 +75,7 @@ public class DiskFileUploadTest {
      */
     @Test
     public void testMoveFile() throws Exception {
-        DiskFileUpload myUpload = new DiskFileUpload();
+        final DiskFileUpload myUpload = new DiskFileUpload();
         myUpload.setSizeThreshold(0);
     	final String content =
                 "-----1234\r\n" +
diff --git a/src/test/java/org/apache/commons/fileupload2/FileItemHeadersTest.java b/src/test/java/org/apache/commons/fileupload2/FileItemHeadersTest.java
index 41b9f18..6e23621 100644
--- a/src/test/java/org/apache/commons/fileupload2/FileItemHeadersTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/FileItemHeadersTest.java
@@ -38,7 +38,7 @@ public class FileItemHeadersTest {
      */
     @Test
     public void testFileItemHeaders() throws Exception {
-        FileItemHeadersImpl aMutableFileItemHeaders = new FileItemHeadersImpl();
+        final FileItemHeadersImpl aMutableFileItemHeaders = new FileItemHeadersImpl();
         aMutableFileItemHeaders.addHeader("Content-Disposition", "form-data; name=\"FileItem\"; filename=\"file1.txt\"");
         aMutableFileItemHeaders.addHeader("Content-Type", "text/plain");
 
@@ -47,7 +47,7 @@ public class FileItemHeadersTest {
         aMutableFileItemHeaders.addHeader("TestHeader", "headerValue3");
         aMutableFileItemHeaders.addHeader("testheader", "headerValue4");
 
-        Iterator<String> headerNameEnumeration = aMutableFileItemHeaders.getHeaderNames();
+        final Iterator<String> headerNameEnumeration = aMutableFileItemHeaders.getHeaderNames();
         assertEquals("content-disposition", headerNameEnumeration.next());
         assertEquals("content-type", headerNameEnumeration.next());
         assertEquals("testheader", headerNameEnumeration.next());
diff --git a/src/test/java/org/apache/commons/fileupload2/FileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/FileUploadTest.java
index 5028ea4..9d73a60 100644
--- a/src/test/java/org/apache/commons/fileupload2/FileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/FileUploadTest.java
@@ -56,9 +56,9 @@ public class FileUploadTest {
 
     @ParameterizedTest
     @MethodSource("data")
-    public void testFileUpload(FileUpload upload)
+    public void testFileUpload(final FileUpload upload)
             throws IOException, FileUploadException {
-        List<FileItem> fileItems = Util.parseUpload(upload,
+        final List<FileItem> fileItems = Util.parseUpload(upload,
                                                "-----1234\r\n" +
                                                "Content-Disposition: form-data; name=\"file\"; filename=\"foo.tab\"\r\n" +
                                                "Content-Type: text/whatever\r\n" +
@@ -80,24 +80,24 @@ public class FileUploadTest {
                                                "-----1234--\r\n");
         assertEquals(4, fileItems.size());
 
-        FileItem file = fileItems.get(0);
+        final FileItem file = fileItems.get(0);
         assertEquals("file", file.getFieldName());
         assertFalse(file.isFormField());
         assertEquals("This is the content of the file\n", file.getString());
         assertEquals("text/whatever", file.getContentType());
         assertEquals("foo.tab", file.getName());
 
-        FileItem field = fileItems.get(1);
+        final FileItem field = fileItems.get(1);
         assertEquals("field", field.getFieldName());
         assertTrue(field.isFormField());
         assertEquals("fieldValue", field.getString());
 
-        FileItem multi0 = fileItems.get(2);
+        final FileItem multi0 = fileItems.get(2);
         assertEquals("multi", multi0.getFieldName());
         assertTrue(multi0.isFormField());
         assertEquals("value1", multi0.getString());
 
-        FileItem multi1 = fileItems.get(3);
+        final FileItem multi1 = fileItems.get(3);
         assertEquals("multi", multi1.getFieldName());
         assertTrue(multi1.isFormField());
         assertEquals("value2", multi1.getString());
@@ -105,9 +105,9 @@ public class FileUploadTest {
 
     @ParameterizedTest
     @MethodSource("data")
-    public void testFilenameCaseSensitivity(FileUpload upload)
+    public void testFilenameCaseSensitivity(final FileUpload upload)
             throws IOException, FileUploadException {
-        List<FileItem> fileItems = Util.parseUpload(upload,
+        final List<FileItem> fileItems = Util.parseUpload(upload,
                                                "-----1234\r\n" +
                                                "Content-Disposition: form-data; name=\"FiLe\"; filename=\"FOO.tab\"\r\n" +
                                                "Content-Type: text/whatever\r\n" +
@@ -117,7 +117,7 @@ public class FileUploadTest {
                                                "-----1234--\r\n");
         assertEquals(1, fileItems.size());
 
-        FileItem file = fileItems.get(0);
+        final FileItem file = fileItems.get(0);
         assertEquals("FiLe", file.getFieldName());
         assertEquals("FOO.tab", file.getName());
     }
@@ -127,9 +127,9 @@ public class FileUploadTest {
      */
     @ParameterizedTest
     @MethodSource("data")
-    public void testEmptyFile(FileUpload upload)
+    public void testEmptyFile(final FileUpload upload)
             throws UnsupportedEncodingException, FileUploadException {
-        List<FileItem> fileItems = Util.parseUpload (upload,
+        final List<FileItem> fileItems = Util.parseUpload (upload,
                                                 "-----1234\r\n" +
                                                 "Content-Disposition: form-data; name=\"file\"; filename=\"\"\r\n" +
                                                 "\r\n" +
@@ -137,7 +137,7 @@ public class FileUploadTest {
                                                 "-----1234--\r\n");
         assertEquals(1, fileItems.size());
 
-        FileItem file = fileItems.get(0);
+        final FileItem file = fileItems.get(0);
         assertFalse(file.isFormField());
         assertEquals("", file.getString());
         assertEquals("", file.getName());
@@ -150,9 +150,9 @@ public class FileUploadTest {
      */
     @ParameterizedTest
     @MethodSource("data")
-    public void testIE5MacBug(FileUpload upload)
+    public void testIE5MacBug(final FileUpload upload)
             throws UnsupportedEncodingException, FileUploadException {
-        List<FileItem> fileItems = Util.parseUpload(upload,
+        final List<FileItem> fileItems = Util.parseUpload(upload,
                                                "-----1234\r\n" +
                                                "Content-Disposition: form-data; name=\"field1\"\r\n" +
                                                "\r\n" +
@@ -173,22 +173,22 @@ public class FileUploadTest {
 
         assertEquals(4, fileItems.size());
 
-        FileItem field1 = fileItems.get(0);
+        final FileItem field1 = fileItems.get(0);
         assertEquals("field1", field1.getFieldName());
         assertTrue(field1.isFormField());
         assertEquals("fieldValue", field1.getString());
 
-        FileItem submitX = fileItems.get(1);
+        final FileItem submitX = fileItems.get(1);
         assertEquals("submitName.x", submitX.getFieldName());
         assertTrue(submitX.isFormField());
         assertEquals("42", submitX.getString());
 
-        FileItem submitY = fileItems.get(2);
+        final FileItem submitY = fileItems.get(2);
         assertEquals("submitName.y", submitY.getFieldName());
         assertTrue(submitY.isFormField());
         assertEquals("21", submitY.getString());
 
-        FileItem field2 = fileItems.get(3);
+        final FileItem field2 = fileItems.get(3);
         assertEquals("field2", field2.getFieldName());
         assertTrue(field2.isFormField());
         assertEquals("fieldValue2", field2.getString());
@@ -199,7 +199,7 @@ public class FileUploadTest {
      */
     @ParameterizedTest
     @MethodSource("data")
-    public void testFILEUPLOAD62(FileUpload upload) throws Exception {
+    public void testFILEUPLOAD62(final FileUpload upload) throws Exception {
         final String contentType = "multipart/form-data; boundary=AaB03x";
         final String request =
             "--AaB03x\r\n" +
@@ -223,17 +223,17 @@ public class FileUploadTest {
             "...contents of file2.gif...\r\n" +
             "--BbC04y--\r\n" +
             "--AaB03x--";
-        List<FileItem> fileItems = Util.parseUpload(upload, request.getBytes("US-ASCII"), contentType);
+        final List<FileItem> fileItems = Util.parseUpload(upload, request.getBytes("US-ASCII"), contentType);
         assertEquals(3, fileItems.size());
-        FileItem item0 = fileItems.get(0);
+        final FileItem item0 = fileItems.get(0);
         assertEquals("field1", item0.getFieldName());
         assertNull(item0.getName());
         assertEquals("Joe Blow", new String(item0.get()));
-        FileItem item1 = fileItems.get(1);
+        final FileItem item1 = fileItems.get(1);
         assertEquals("pics", item1.getFieldName());
         assertEquals("file1.txt", item1.getName());
         assertEquals("... contents of file1.txt ...", new String(item1.get()));
-        FileItem item2 = fileItems.get(2);
+        final FileItem item2 = fileItems.get(2);
         assertEquals("pics", item2.getFieldName());
         assertEquals("file2.gif", item2.getName());
         assertEquals("...contents of file2.gif...", new String(item2.get()));
@@ -244,9 +244,9 @@ public class FileUploadTest {
      */
     @ParameterizedTest
     @MethodSource("data")
-    public void testFoldedHeaders(FileUpload upload)
+    public void testFoldedHeaders(final FileUpload upload)
             throws IOException, FileUploadException {
-        List<FileItem> fileItems = Util.parseUpload(upload, "-----1234\r\n" +
+        final List<FileItem> fileItems = Util.parseUpload(upload, "-----1234\r\n" +
                 "Content-Disposition: form-data; name=\"file\"; filename=\"foo.tab\"\r\n" +
                 "Content-Type: text/whatever\r\n" +
                 "\r\n" +
@@ -269,24 +269,24 @@ public class FileUploadTest {
                 "-----1234--\r\n");
         assertEquals(4, fileItems.size());
 
-        FileItem file = fileItems.get(0);
+        final FileItem file = fileItems.get(0);
         assertEquals("file", file.getFieldName());
         assertFalse(file.isFormField());
         assertEquals("This is the content of the file\n", file.getString());
         assertEquals("text/whatever", file.getContentType());
         assertEquals("foo.tab", file.getName());
 
-        FileItem field = fileItems.get(1);
+        final FileItem field = fileItems.get(1);
         assertEquals("field", field.getFieldName());
         assertTrue(field.isFormField());
         assertEquals("fieldValue", field.getString());
 
-        FileItem multi0 = fileItems.get(2);
+        final FileItem multi0 = fileItems.get(2);
         assertEquals("multi", multi0.getFieldName());
         assertTrue(multi0.isFormField());
         assertEquals("value1", multi0.getString());
 
-        FileItem multi1 = fileItems.get(3);
+        final FileItem multi1 = fileItems.get(3);
         assertEquals("multi", multi1.getFieldName());
         assertTrue(multi1.isFormField());
         assertEquals("value2", multi1.getString());
@@ -297,7 +297,7 @@ public class FileUploadTest {
      */
     @ParameterizedTest
     @MethodSource("data")
-    public void testFileUpload130(FileUpload upload)
+    public void testFileUpload130(final FileUpload upload)
             throws Exception {
         final String[] headerNames = new String[]
         {
@@ -307,7 +307,7 @@ public class FileUploadTest {
         {
             "present", "Is there", "Here", "Is That"
         };
-        List<FileItem> fileItems = Util.parseUpload(upload,
+        final List<FileItem> fileItems = Util.parseUpload(upload,
                                                "-----1234\r\n" +
                                                "Content-Disposition: form-data; name=\"file\"; filename=\"foo.tab\"\r\n" +
                                                "Content-Type: text/whatever\r\n" +
@@ -335,16 +335,16 @@ public class FileUploadTest {
                                                "-----1234--\r\n");
         assertEquals(4, fileItems.size());
 
-        FileItem file = fileItems.get(0);
+        final FileItem file = fileItems.get(0);
         assertHeaders(headerNames, headerValues, file, 0);
 
-        FileItem field = fileItems.get(1);
+        final FileItem field = fileItems.get(1);
         assertHeaders(headerNames, headerValues, field, 1);
 
-        FileItem multi0 = fileItems.get(2);
+        final FileItem multi0 = fileItems.get(2);
         assertHeaders(headerNames, headerValues, multi0, 2);
 
-        FileItem multi1 = fileItems.get(3);
+        final FileItem multi1 = fileItems.get(3);
         assertHeaders(headerNames, headerValues, multi1, 3);
     }
 
@@ -353,9 +353,9 @@ public class FileUploadTest {
      */
     @ParameterizedTest
     @MethodSource("data")
-    public void testContentTypeAttachment(FileUpload upload)
+    public void testContentTypeAttachment(final FileUpload upload)
             throws IOException, FileUploadException {
-        List<FileItem> fileItems = Util.parseUpload(upload,
+        final List<FileItem> fileItems = Util.parseUpload(upload,
                 "-----1234\r\n" +
                 "content-disposition: form-data; name=\"field1\"\r\n" +
                 "\r\n" +
@@ -373,12 +373,12 @@ public class FileUploadTest {
                 "-----1234--\r\n");
         assertEquals(2, fileItems.size());
 
-        FileItem field = fileItems.get(0);
+        final FileItem field = fileItems.get(0);
         assertEquals("field1", field.getFieldName());
         assertTrue(field.isFormField());
         assertEquals("Joe Blow", field.getString());
 
-        FileItem file = fileItems.get(1);
+        final FileItem file = fileItems.get(1);
         assertEquals("pics", file.getFieldName());
         assertFalse(file.isFormField());
         assertEquals("... contents of file1.txt ...", file.getString());
@@ -386,8 +386,8 @@ public class FileUploadTest {
         assertEquals("file1.txt", file.getName());
     }
 
-    private void assertHeaders(String[] pHeaderNames, String[] pHeaderValues,
-            FileItem pItem, int pIndex) {
+    private void assertHeaders(final String[] pHeaderNames, final String[] pHeaderValues,
+            final FileItem pItem, final int pIndex) {
         for (int i = 0; i < pHeaderNames.length; i++) {
             final String value = pItem.getHeaders().getHeader(pHeaderNames[i]);
             if (i == pIndex) {
diff --git a/src/test/java/org/apache/commons/fileupload2/HttpServletRequestFactory.java b/src/test/java/org/apache/commons/fileupload2/HttpServletRequestFactory.java
index 44dcc13..59515d4 100644
--- a/src/test/java/org/apache/commons/fileupload2/HttpServletRequestFactory.java
+++ b/src/test/java/org/apache/commons/fileupload2/HttpServletRequestFactory.java
@@ -23,7 +23,7 @@ import org.apache.commons.fileupload2.FileUploadBase;
 final class HttpServletRequestFactory {
 
     static public HttpServletRequest createHttpServletRequestWithNullContentType() {
-        byte[] requestData = "foobar".getBytes();
+        final byte[] requestData = "foobar".getBytes();
         return new MockHttpServletRequest(
                             requestData,
                             null);
@@ -33,9 +33,9 @@ final class HttpServletRequestFactory {
             final String[] strFileNames) {
         // todo - provide a real implementation
 
-        StringBuilder sbRequestData = new StringBuilder();
+        final StringBuilder sbRequestData = new StringBuilder();
 
-        for (String strFileName : strFileNames) {
+        for (final String strFileName : strFileNames) {
             sbRequestData.append(strFileName);
         }
 
@@ -47,7 +47,7 @@ final class HttpServletRequestFactory {
     }
 
     static public HttpServletRequest createInvalidHttpServletRequest() {
-        byte[] requestData = "foobar".getBytes();
+        final byte[] requestData = "foobar".getBytes();
         return new MockHttpServletRequest(
                             requestData,
                             FileUploadBase.MULTIPART_FORM_DATA);
diff --git a/src/test/java/org/apache/commons/fileupload2/MockHttpServletRequest.java b/src/test/java/org/apache/commons/fileupload2/MockHttpServletRequest.java
index 523dd4e..99e05ea 100644
--- a/src/test/java/org/apache/commons/fileupload2/MockHttpServletRequest.java
+++ b/src/test/java/org/apache/commons/fileupload2/MockHttpServletRequest.java
@@ -91,7 +91,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getDateHeader(String)
      */
     @Override
-    public long getDateHeader(String arg0) {
+    public long getDateHeader(final String arg0) {
         return 0;
     }
 
@@ -99,7 +99,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getHeader(String)
      */
     @Override
-    public String getHeader(String headerName) {
+    public String getHeader(final String headerName) {
         return m_headers.get(headerName);
     }
 
@@ -107,7 +107,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getHeaders(String)
      */
     @Override
-    public Enumeration<String> getHeaders(String arg0) {
+    public Enumeration<String> getHeaders(final String arg0) {
         // todo - implement
         return null;
     }
@@ -125,7 +125,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getIntHeader(String)
      */
     @Override
-    public int getIntHeader(String arg0) {
+    public int getIntHeader(final String arg0) {
         return 0;
     }
 
@@ -181,7 +181,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#isUserInRole(String)
      */
     @Override
-    public boolean isUserInRole(String arg0) {
+    public boolean isUserInRole(final String arg0) {
         return false;
     }
 
@@ -229,7 +229,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getSession(boolean)
      */
     @Override
-    public HttpSession getSession(boolean arg0) {
+    public HttpSession getSession(final boolean arg0) {
         return null;
     }
 
@@ -279,7 +279,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getAttribute(String)
      */
     @Override
-    public Object getAttribute(String arg0) {
+    public Object getAttribute(final String arg0) {
         return null;
     }
 
@@ -303,7 +303,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#setCharacterEncoding(String)
      */
     @Override
-    public void setCharacterEncoding(String arg0)
+    public void setCharacterEncoding(final String arg0)
         throws UnsupportedEncodingException {
     }
 
@@ -328,7 +328,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
     /**
      * For testing attack scenarios in SizesTest.
      */
-    public void setContentLength(long length) {
+    public void setContentLength(final long length) {
         this.length = length;
     }
 
@@ -345,7 +345,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      */
     @Override
     public ServletInputStream getInputStream() throws IOException {
-        ServletInputStream sis = new MyServletInputStream(m_requestData, readLimit);
+        final ServletInputStream sis = new MyServletInputStream(m_requestData, readLimit);
         return sis;
     }
 
@@ -354,7 +354,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      *
      * @param readLimit the read limit to use
      */
-    public void setReadLimit(int readLimit) {
+    public void setReadLimit(final int readLimit) {
         this.readLimit = readLimit;
     }
 
@@ -362,7 +362,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getParameter(String)
      */
     @Override
-    public String getParameter(String arg0) {
+    public String getParameter(final String arg0) {
         return null;
     }
 
@@ -378,7 +378,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getParameterValues(String)
      */
     @Override
-    public String[] getParameterValues(String arg0) {
+    public String[] getParameterValues(final String arg0) {
         return null;
     }
 
@@ -486,14 +486,14 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#setAttribute(String, Object)
      */
     @Override
-    public void setAttribute(String arg0, Object arg1) {
+    public void setAttribute(final String arg0, final Object arg1) {
     }
 
     /**
      * @see javax.servlet.ServletRequest#removeAttribute(String)
      */
     @Override
-    public void removeAttribute(String arg0) {
+    public void removeAttribute(final String arg0) {
     }
 
     /**
@@ -524,7 +524,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getRequestDispatcher(String)
      */
     @Override
-    public RequestDispatcher getRequestDispatcher(String arg0) {
+    public RequestDispatcher getRequestDispatcher(final String arg0) {
         return null;
     }
 
@@ -534,7 +534,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
      */
     @Override
     @Deprecated
-    public String getRealPath(String arg0) {
+    public String getRealPath(final String arg0) {
         return null;
     }
 
@@ -548,7 +548,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
          * Creates a new instance, which returns the given
          * streams data.
          */
-        public MyServletInputStream(InputStream pStream, int readLimit) {
+        public MyServletInputStream(final InputStream pStream, final int readLimit) {
             in = pStream;
             this.readLimit = readLimit;
         }
@@ -559,7 +559,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
         }
 
         @Override
-        public int read(byte b[], int off, int len) throws IOException {
+        public int read(final byte b[], final int off, final int len) throws IOException {
             if (readLimit > 0) {
                 return in.read(b, off, Math.min(readLimit, len));
             }
diff --git a/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java b/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
index 4a5ed34..449cd8a 100644
--- a/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
@@ -36,11 +36,11 @@ public class MultipartStreamTest {
     public void testThreeParamConstructor() throws Exception {
         final String strData = "foobar";
         final byte[] contents = strData.getBytes();
-        InputStream input = new ByteArrayInputStream(contents);
-        byte[] boundary = BOUNDARY_TEXT.getBytes();
-        int iBufSize =
+        final InputStream input = new ByteArrayInputStream(contents);
+        final byte[] boundary = BOUNDARY_TEXT.getBytes();
+        final int iBufSize =
                 boundary.length + MultipartStream.BOUNDARY_PREFIX.length + 1;
-        MultipartStream ms = new MultipartStream(
+        final MultipartStream ms = new MultipartStream(
                 input,
                 boundary,
                 iBufSize,
@@ -52,9 +52,9 @@ public class MultipartStreamTest {
     public void testSmallBuffer() {
         final String strData = "foobar";
         final byte[] contents = strData.getBytes();
-        InputStream input = new ByteArrayInputStream(contents);
-        byte[] boundary = BOUNDARY_TEXT.getBytes();
-        int iBufSize = 1;
+        final InputStream input = new ByteArrayInputStream(contents);
+        final byte[] boundary = BOUNDARY_TEXT.getBytes();
+        final int iBufSize = 1;
         assertThrows(IllegalArgumentException.class,
                 () -> new MultipartStream(
                         input,
@@ -67,9 +67,9 @@ public class MultipartStreamTest {
     public void testTwoParamConstructor() throws Exception {
         final String strData = "foobar";
         final byte[] contents = strData.getBytes();
-        InputStream input = new ByteArrayInputStream(contents);
-        byte[] boundary = BOUNDARY_TEXT.getBytes();
-        MultipartStream ms = new MultipartStream(
+        final InputStream input = new ByteArrayInputStream(contents);
+        final byte[] boundary = BOUNDARY_TEXT.getBytes();
+        final MultipartStream ms = new MultipartStream(
                 input,
                 boundary,
                 new MultipartStream.ProgressNotifier(null, contents.length));
diff --git a/src/test/java/org/apache/commons/fileupload2/ParameterParserTest.java b/src/test/java/org/apache/commons/fileupload2/ParameterParserTest.java
index 70838f3..49d9df4 100644
--- a/src/test/java/org/apache/commons/fileupload2/ParameterParserTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/ParameterParserTest.java
@@ -34,7 +34,7 @@ public class ParameterParserTest {
     public void testParsing() {
         String s =
             "test; test1 =  stuff   ; test2 =  \"stuff; stuff\"; test3=\"stuff";
-        ParameterParser parser = new ParameterParser();
+        final ParameterParser parser = new ParameterParser();
         Map<String, String> params = parser.parse(s, ';');
         assertEquals(null, params.get("test"));
         assertEquals("stuff", params.get("test1"));
@@ -69,17 +69,17 @@ public class ParameterParserTest {
 
     @Test
     public void testContentTypeParsing() {
-        String s = "text/plain; Charset=UTF-8";
-        ParameterParser parser = new ParameterParser();
+        final String s = "text/plain; Charset=UTF-8";
+        final ParameterParser parser = new ParameterParser();
         parser.setLowerCaseNames(true);
-        Map<String, String> params = parser.parse(s, ';');
+        final Map<String, String> params = parser.parse(s, ';');
         assertEquals("UTF-8", params.get("charset"));
     }
 
     @Test
     public void testParsingEscapedChars() {
         String s = "param = \"stuff\\\"; more stuff\"";
-        ParameterParser parser = new ParameterParser();
+        final ParameterParser parser = new ParameterParser();
         Map<String, String> params = parser.parse(s, ';');
         assertEquals(1, params.size());
         assertEquals("stuff\\\"; more stuff", params.get("param"));
@@ -94,7 +94,7 @@ public class ParameterParserTest {
     // See: https://issues.apache.org/jira/browse/FILEUPLOAD-139
     @Test
     public void testFileUpload139() {
-        ParameterParser parser = new ParameterParser();
+        final ParameterParser parser = new ParameterParser();
         String s = "Content-type: multipart/form-data , boundary=AaB03x";
         Map<String, String> params = parser.parse(s, new char[] { ',', ';' });
         assertEquals("AaB03x", params.get("boundary"));
@@ -113,9 +113,9 @@ public class ParameterParserTest {
      */
     @Test
     public void testFileUpload199() {
-        ParameterParser parser = new ParameterParser();
-        String s = "Content-Disposition: form-data; name=\"file\"; filename=\"=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=\"\r\n";
-        Map<String, String> params = parser.parse(s, new char[] { ',', ';' });
+        final ParameterParser parser = new ParameterParser();
+        final String s = "Content-Disposition: form-data; name=\"file\"; filename=\"=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=\"\r\n";
+        final Map<String, String> params = parser.parse(s, new char[] { ',', ';' });
         assertEquals("If you can read this you understand the example.", params.get("filename"));
     }
 
@@ -125,7 +125,7 @@ public class ParameterParserTest {
      */
     @Test
     public void testFileUpload274() {
-        ParameterParser parser = new ParameterParser();
+        final ParameterParser parser = new ParameterParser();
 
         // Should parse a UTF-8 charset
         String s = "Content-Disposition: form-data; name=\"file\"; filename*=UTF-8\'\'%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF\r\n";
diff --git a/src/test/java/org/apache/commons/fileupload2/ProgressListenerTest.java b/src/test/java/org/apache/commons/fileupload2/ProgressListenerTest.java
index dc92cdc..27df818 100644
--- a/src/test/java/org/apache/commons/fileupload2/ProgressListenerTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/ProgressListenerTest.java
@@ -46,13 +46,13 @@ public class ProgressListenerTest {
 
         private Integer items;
 
-        ProgressListenerImpl(long pContentLength, int pItems) {
+        ProgressListenerImpl(final long pContentLength, final int pItems) {
             expectedContentLength = pContentLength;
             expectedItems = pItems;
         }
 
         @Override
-        public void update(long pBytesRead, long pContentLength, int pItems) {
+        public void update(final long pBytesRead, final long pContentLength, final int pItems) {
             assertTrue(pBytesRead >= 0  &&  pBytesRead <= expectedContentLength);
             assertTrue(pContentLength == -1  ||  pContentLength == expectedContentLength);
             assertTrue(pItems >= 0  &&  pItems <= expectedItems);
@@ -76,9 +76,9 @@ public class ProgressListenerTest {
     @Test
     public void testProgressListener() throws Exception {
         final int NUM_ITEMS = 512;
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         for (int i = 0;  i < NUM_ITEMS;  i++) {
-            String header = "-----1234\r\n"
+            final String header = "-----1234\r\n"
                 + "Content-Disposition: form-data; name=\"field" + (i+1) + "\"\r\n"
                 + "\r\n";
             baos.write(header.getBytes("US-ASCII"));
@@ -88,7 +88,7 @@ public class ProgressListenerTest {
             baos.write("\r\n".getBytes("US-ASCII"));
         }
         baos.write("-----1234--\r\n".getBytes("US-ASCII"));
-        byte[] contents = baos.toByteArray();
+        final byte[] contents = baos.toByteArray();
 
         MockHttpServletRequest request = new MockHttpServletRequest(contents, Constants.CONTENT_TYPE);
         runTest(NUM_ITEMS, contents.length, request);
@@ -101,14 +101,14 @@ public class ProgressListenerTest {
         runTest(NUM_ITEMS, contents.length, request);
     }
 
-    private void runTest(final int NUM_ITEMS, long pContentLength, MockHttpServletRequest request) throws FileUploadException, IOException {
-        ServletFileUpload upload = new ServletFileUpload();
-        ProgressListenerImpl listener = new ProgressListenerImpl(pContentLength, NUM_ITEMS);
+    private void runTest(final int NUM_ITEMS, final long pContentLength, final MockHttpServletRequest request) throws FileUploadException, IOException {
+        final ServletFileUpload upload = new ServletFileUpload();
+        final ProgressListenerImpl listener = new ProgressListenerImpl(pContentLength, NUM_ITEMS);
         upload.setProgressListener(listener);
-        FileItemIterator iter = upload.getItemIterator(request);
+        final FileItemIterator iter = upload.getItemIterator(request);
         for (int i = 0;  i < NUM_ITEMS;  i++) {
-            FileItemStream stream = iter.next();
-            InputStream istream = stream.openStream();
+            final FileItemStream stream = iter.next();
+            final InputStream istream = stream.openStream();
             for (int j = 0;  j < 16384+i;  j++) {
                 /**
                  * This used to be
@@ -116,8 +116,8 @@ public class ProgressListenerTest {
                  * but this seems to trigger a bug in JRockit, so
                  * we express the same like this:
                  */
-                byte b1 = (byte) j;
-                byte b2 = (byte) istream.read();
+                final byte b1 = (byte) j;
+                final byte b2 = (byte) istream.read();
                 if (b1 != b2) {
                     fail("Expected " + b1 + ", got " + b2);
                 }
diff --git a/src/test/java/org/apache/commons/fileupload2/SizesTest.java b/src/test/java/org/apache/commons/fileupload2/SizesTest.java
index ca005e9..9dc9ef7 100644
--- a/src/test/java/org/apache/commons/fileupload2/SizesTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/SizesTest.java
@@ -52,14 +52,14 @@ public class SizesTest {
     @Test
     public void testFileUpload()
             throws IOException, FileUploadException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         int add = 16;
         int num = 0;
         for (int i = 0;  i < 16384;  i += add) {
             if (++add == 32) {
                 add = 16;
             }
-            String header = "-----1234\r\n"
+            final String header = "-----1234\r\n"
                 + "Content-Disposition: form-data; name=\"field" + (num++) + "\"\r\n"
                 + "\r\n";
             baos.write(header.getBytes("US-ASCII"));
@@ -70,18 +70,18 @@ public class SizesTest {
         }
         baos.write("-----1234--\r\n".getBytes("US-ASCII"));
 
-        List<FileItem> fileItems =
+        final List<FileItem> fileItems =
                 Util.parseUpload(new ServletFileUpload(new DiskFileItemFactory()), baos.toByteArray());
-        Iterator<FileItem> fileIter = fileItems.iterator();
+        final Iterator<FileItem> fileIter = fileItems.iterator();
         add = 16;
         num = 0;
         for (int i = 0;  i < 16384;  i += add) {
             if (++add == 32) {
                 add = 16;
             }
-            FileItem item = fileIter.next();
+            final FileItem item = fileIter.next();
             assertEquals("field" + (num++), item.getFieldName());
-            byte[] bytes = item.get();
+            final byte[] bytes = item.get();
             assertEquals(i, bytes.length);
             for (int j = 0;  j < i;  j++) {
                 assertEquals((byte) j, bytes[j]);
@@ -127,7 +127,7 @@ public class SizesTest {
         try {
             upload.parseRequest(req);
             fail("Expected exception.");
-        } catch (FileSizeLimitExceededException e) {
+        } catch (final FileSizeLimitExceededException e) {
             assertEquals(30, e.getPermittedSize());
         }
     }
@@ -171,7 +171,7 @@ public class SizesTest {
         try {
             upload.parseRequest(req);
             fail("Expected exception.");
-        } catch (FileSizeLimitExceededException e) {
+        } catch (final FileSizeLimitExceededException e) {
             assertEquals(5, e.getPermittedSize());
         }
 
@@ -182,7 +182,7 @@ public class SizesTest {
         try {
             upload.parseRequest(req);
             fail("Expected exception.");
-        } catch (FileSizeLimitExceededException e) {
+        } catch (final FileSizeLimitExceededException e) {
             assertEquals(15, e.getPermittedSize());
         }
     }
@@ -208,16 +208,16 @@ public class SizesTest {
             "\r\n" +
             "-----1234--\r\n";
 
-        ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
+        final ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
         upload.setFileSizeMax(-1);
         upload.setSizeMax(200);
 
-        MockHttpServletRequest req = new MockHttpServletRequest(
+        final MockHttpServletRequest req = new MockHttpServletRequest(
                 request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
         try {
             upload.parseRequest(req);
             fail("Expected exception.");
-        } catch (SizeLimitExceededException e) {
+        } catch (final SizeLimitExceededException e) {
             assertEquals(200, e.getPermittedSize());
         }
     }
@@ -241,7 +241,7 @@ public class SizesTest {
             "\r\n" +
             "-----1234--\r\n";
 
-        ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
+        final ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
         upload.setFileSizeMax(-1);
         upload.setSizeMax(300);
 
@@ -249,12 +249,12 @@ public class SizesTest {
         // set the read limit to 10 to simulate a "real" stream
         // otherwise the buffer would be immediately filled
 
-        MockHttpServletRequest req = new MockHttpServletRequest(
+        final MockHttpServletRequest req = new MockHttpServletRequest(
                 request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
         req.setContentLength(-1);
         req.setReadLimit(10);
 
-        FileItemIterator it = upload.getItemIterator(req);
+        final FileItemIterator it = upload.getItemIterator(req);
         assertTrue(it.hasNext());
 
         FileItemStream item = it.next();
@@ -263,8 +263,8 @@ public class SizesTest {
         assertEquals("foo1.tab", item.getName());
 
         {
-            InputStream stream = item.openStream();
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            final InputStream stream = item.openStream();
+            final ByteArrayOutputStream baos = new ByteArrayOutputStream();
             Streams.copy(stream, baos, true);
         }
 
@@ -272,18 +272,18 @@ public class SizesTest {
         try {
             // the header is still within size max -> this shall still succeed
             assertTrue(it.hasNext());
-        } catch (SizeLimitExceededException e) {
+        } catch (final SizeLimitExceededException e) {
             fail();
         }
 
         item = it.next();
 
         try {
-            InputStream stream = item.openStream();
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            final InputStream stream = item.openStream();
+            final ByteArrayOutputStream baos = new ByteArrayOutputStream();
             Streams.copy(stream, baos, true);
             fail();
-        } catch (FileUploadIOException e) {
+        } catch (final FileUploadIOException e) {
             // expected
         }
     }
diff --git a/src/test/java/org/apache/commons/fileupload2/StreamingTest.java b/src/test/java/org/apache/commons/fileupload2/StreamingTest.java
index 3bc5b4f..89c4737 100644
--- a/src/test/java/org/apache/commons/fileupload2/StreamingTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/StreamingTest.java
@@ -54,18 +54,18 @@ public class StreamingTest {
     @Test
     public void testFileUpload()
             throws IOException, FileUploadException {
-        byte[] request = newRequest();
-        List<FileItem> fileItems = parseUpload(request);
-        Iterator<FileItem> fileIter = fileItems.iterator();
+        final byte[] request = newRequest();
+        final List<FileItem> fileItems = parseUpload(request);
+        final Iterator<FileItem> fileIter = fileItems.iterator();
         int add = 16;
         int num = 0;
         for (int i = 0;  i < 16384;  i += add) {
             if (++add == 32) {
                 add = 16;
             }
-            FileItem item = fileIter.next();
+            final FileItem item = fileIter.next();
             assertEquals("field" + (num++), item.getFieldName());
-            byte[] bytes = item.get();
+            final byte[] bytes = item.get();
             assertEquals(i, bytes.length);
             for (int j = 0;  j < i;  j++) {
                 assertEquals((byte) j, bytes[j]);
@@ -81,13 +81,13 @@ public class StreamingTest {
     @Test
     public void testFileUploadException()
             throws IOException, FileUploadException {
-        byte[] request = newRequest();
-        byte[] invalidRequest = new byte[request.length-11];
+        final byte[] request = newRequest();
+        final byte[] invalidRequest = new byte[request.length-11];
         System.arraycopy(request, 0, invalidRequest, 0, request.length-11);
         try {
             parseUpload(invalidRequest);
             fail("Expected EndOfStreamException");
-        } catch (IOFileUploadException e) {
+        } catch (final IOFileUploadException e) {
             assertTrue(e.getCause() instanceof MultipartStream.MalformedStreamException);
         }
     }
@@ -98,8 +98,8 @@ public class StreamingTest {
     @Test
     public void testIOException()
             throws IOException {
-        byte[] request = newRequest();
-        InputStream stream = new FilterInputStream(new ByteArrayInputStream(request)){
+        final byte[] request = newRequest();
+        final InputStream stream = new FilterInputStream(new ByteArrayInputStream(request)){
             private int num;
             @Override
             public int read() throws IOException {
@@ -109,10 +109,10 @@ public class StreamingTest {
                 return super.read();
             }
             @Override
-            public int read(byte[] pB, int pOff, int pLen)
+            public int read(final byte[] pB, final int pOff, final int pLen)
                     throws IOException {
                 for (int i = 0;  i < pLen;  i++) {
-                    int res = read();
+                    final int res = read();
                     if (res == -1) {
                         return i == 0 ? -1 : i;
                     }
@@ -124,7 +124,7 @@ public class StreamingTest {
         try {
             parseUpload(stream, request.length);
             fail("Expected IOException");
-        } catch (FileUploadException e) {
+        } catch (final FileUploadException e) {
             assertTrue(e.getCause() instanceof IOException);
             assertEquals("123", e.getCause().getMessage());
         }
@@ -136,9 +136,9 @@ public class StreamingTest {
     @Test
     public void testFILEUPLOAD135()
             throws IOException, FileUploadException {
-        byte[] request = newShortRequest();
+        final byte[] request = newShortRequest();
         final ByteArrayInputStream bais = new ByteArrayInputStream(request);
-        List<FileItem> fileItems = parseUpload(new InputStream() {
+        final List<FileItem> fileItems = parseUpload(new InputStream() {
             @Override
             public int read()
             throws IOException
@@ -146,17 +146,17 @@ public class StreamingTest {
                 return bais.read();
             }
             @Override
-            public int read(byte b[], int off, int len) throws IOException
+            public int read(final byte b[], final int off, final int len) throws IOException
             {
                 return bais.read(b, off, Math.min(len, 3));
             }
 
         }, request.length);
-        Iterator<FileItem> fileIter = fileItems.iterator();
+        final Iterator<FileItem> fileIter = fileItems.iterator();
         assertTrue(fileIter.hasNext());
-        FileItem item = fileIter.next();
+        final FileItem item = fileIter.next();
         assertEquals("field", item.getFieldName());
-        byte[] bytes = item.get();
+        final byte[] bytes = item.get();
         assertEquals(3, bytes.length);
         assertEquals((byte)'1', bytes[0]);
         assertEquals((byte)'2', bytes[1]);
@@ -164,36 +164,36 @@ public class StreamingTest {
         assertTrue(!fileIter.hasNext());
     }
 
-    private List<FileItem> parseUpload(byte[] bytes) throws FileUploadException {
+    private List<FileItem> parseUpload(final byte[] bytes) throws FileUploadException {
         return parseUpload(new ByteArrayInputStream(bytes), bytes.length);
     }
 
-    private FileItemIterator parseUpload(int pLength, InputStream pStream)
+    private FileItemIterator parseUpload(final int pLength, final InputStream pStream)
             throws FileUploadException, IOException {
-        String contentType = "multipart/form-data; boundary=---1234";
+        final String contentType = "multipart/form-data; boundary=---1234";
 
-        FileUploadBase upload = new ServletFileUpload();
+        final FileUploadBase upload = new ServletFileUpload();
         upload.setFileItemFactory(new DiskFileItemFactory());
-        HttpServletRequest request = new MockHttpServletRequest(pStream,
+        final HttpServletRequest request = new MockHttpServletRequest(pStream,
                 pLength, contentType);
 
         return upload.getItemIterator(new ServletRequestContext(request));
     }
 
-    private List<FileItem> parseUpload(InputStream pStream, int pLength)
+    private List<FileItem> parseUpload(final InputStream pStream, final int pLength)
             throws FileUploadException {
-        String contentType = "multipart/form-data; boundary=---1234";
+        final String contentType = "multipart/form-data; boundary=---1234";
 
-        FileUploadBase upload = new ServletFileUpload();
+        final FileUploadBase upload = new ServletFileUpload();
         upload.setFileItemFactory(new DiskFileItemFactory());
-        HttpServletRequest request = new MockHttpServletRequest(pStream,
+        final HttpServletRequest request = new MockHttpServletRequest(pStream,
                 pLength, contentType);
 
-        List<FileItem> fileItems = upload.parseRequest(new ServletRequestContext(request));
+        final List<FileItem> fileItems = upload.parseRequest(new ServletRequestContext(request));
         return fileItems;
     }
 
-    private String getHeader(String pField) {
+    private String getHeader(final String pField) {
         return "-----1234\r\n"
             + "Content-Disposition: form-data; name=\"" + pField + "\"\r\n"
             + "\r\n";
@@ -264,21 +264,21 @@ public class StreamingTest {
             "-----1234--\r\n";
         final byte[] reqBytes = request.getBytes("US-ASCII");
 
-        FileItemIterator fileItemIter = parseUpload(reqBytes.length, new ByteArrayInputStream(reqBytes));
+        final FileItemIterator fileItemIter = parseUpload(reqBytes.length, new ByteArrayInputStream(reqBytes));
         final FileItemStream fileItemStream = fileItemIter.next();
         try {
             fileItemStream.getName();
             fail("Expected exception");
-        } catch (InvalidFileNameException e) {
+        } catch (final InvalidFileNameException e) {
             assertEquals(fileName, e.getName());
             assertTrue(e.getMessage().indexOf(fileName) == -1);
             assertTrue(e.getMessage().indexOf("foo.exe\\0.png") != -1);
         }
 
         try {
-            List<FileItem> fileItems = parseUpload(reqBytes);
+            final List<FileItem> fileItems = parseUpload(reqBytes);
             fail("Expected exception");
-        } catch (InvalidFileNameException e) {
+        } catch (final InvalidFileNameException e) {
             assertEquals(fileName, e.getName());
             assertTrue(e.getMessage().indexOf(fileName) == -1);
             assertTrue(e.getMessage().indexOf("foo.exe\\0.png") != -1);
diff --git a/src/test/java/org/apache/commons/fileupload2/Util.java b/src/test/java/org/apache/commons/fileupload2/Util.java
index cb49de3..5ca30e4 100644
--- a/src/test/java/org/apache/commons/fileupload2/Util.java
+++ b/src/test/java/org/apache/commons/fileupload2/Util.java
@@ -37,19 +37,19 @@ import org.apache.commons.fileupload2.servlet.ServletRequestContext;
  */
 public class Util {
 
-    public static List<FileItem> parseUpload(FileUpload upload, byte[] bytes) throws FileUploadException {
+    public static List<FileItem> parseUpload(final FileUpload upload, final byte[] bytes) throws FileUploadException {
         return parseUpload(upload, bytes, Constants.CONTENT_TYPE);
     }
 
-    public static List<FileItem> parseUpload(FileUpload upload, byte[] bytes, String contentType) throws FileUploadException {
+    public static List<FileItem> parseUpload(final FileUpload upload, final byte[] bytes, final String contentType) throws FileUploadException {
         final HttpServletRequest request = new MockHttpServletRequest(bytes, contentType);
-        List<FileItem> fileItems = upload.parseRequest(new ServletRequestContext(request));
+        final List<FileItem> fileItems = upload.parseRequest(new ServletRequestContext(request));
         return fileItems;
     }
 
-    public static List<FileItem> parseUpload(FileUpload upload, String content)
+    public static List<FileItem> parseUpload(final FileUpload upload, final String content)
         throws UnsupportedEncodingException, FileUploadException {
-        byte[] bytes = content.getBytes("US-ASCII");
+        final byte[] bytes = content.getBytes("US-ASCII");
         return parseUpload(upload, bytes, Constants.CONTENT_TYPE);
     }
 
diff --git a/src/test/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUploadTest.java
index 0d80386..e1b52a7 100644
--- a/src/test/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltFileUploadTest.java
@@ -44,7 +44,7 @@ public class JakSrvltFileUploadTest {
     @Test
     public void parseParameterMap()
             throws Exception {
-        String text = "-----1234\r\n" +
+        final String text = "-----1234\r\n" +
                       "Content-Disposition: form-data; name=\"file\"; filename=\"foo.tab\"\r\n" +
                       "Content-Type: text/whatever\r\n" +
                       "\r\n" +
@@ -63,11 +63,11 @@ public class JakSrvltFileUploadTest {
                       "\r\n" +
                       "value2\r\n" +
                       "-----1234--\r\n";
-        byte[] bytes = text.getBytes("US-ASCII");
-        HttpServletRequest request = new MockJakSrvltHttpRequest(bytes, Constants.CONTENT_TYPE);
+        final byte[] bytes = text.getBytes("US-ASCII");
+        final HttpServletRequest request = new MockJakSrvltHttpRequest(bytes, Constants.CONTENT_TYPE);
 
-        JakSrvltFileUpload upload = new JakSrvltFileUpload(new DiskFileItemFactory());
-        Map<String, List<FileItem>> mappedParameters = upload.parseParameterMap(request);
+        final JakSrvltFileUpload upload = new JakSrvltFileUpload(new DiskFileItemFactory());
+        final Map<String, List<FileItem>> mappedParameters = upload.parseParameterMap(request);
         assertTrue(mappedParameters.containsKey("file"));
         assertEquals(1, mappedParameters.get("file").size());
 
@@ -83,21 +83,21 @@ public class JakSrvltFileUploadTest {
     public void parseImpliedUtf8()
 	    throws Exception {
         // utf8 encoded form-data without explicit content-type encoding
-        String text = "-----1234\r\n" +
+        final String text = "-----1234\r\n" +
                 "Content-Disposition: form-data; name=\"utf8Html\"\r\n" +
                 "\r\n" +
                 "Th�s �s the co�te�t of the f�le\n" +
                 "\r\n" +
                 "-----1234--\r\n";
 
-        byte[] bytes = text.getBytes("UTF-8");
-        HttpServletRequest request = new MockJakSrvltHttpRequest(bytes, Constants.CONTENT_TYPE);
+        final byte[] bytes = text.getBytes("UTF-8");
+        final HttpServletRequest request = new MockJakSrvltHttpRequest(bytes, Constants.CONTENT_TYPE);
 
-        DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
+        final DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
         fileItemFactory.setDefaultCharset("UTF-8");
-        JakSrvltFileUpload upload = new JakSrvltFileUpload(fileItemFactory);
-        List<FileItem> fileItems = upload.parseRequest(request);
-        FileItem fileItem = fileItems.get(0);
+        final JakSrvltFileUpload upload = new JakSrvltFileUpload(fileItemFactory);
+        final List<FileItem> fileItems = upload.parseRequest(request);
+        final FileItem fileItem = fileItems.get(0);
         assertTrue(fileItem.getString().contains("co�te�t"), fileItem.getString());
     }
 }
diff --git a/src/test/java/org/apache/commons/fileupload2/jaksrvlt/MockJakSrvltHttpRequest.java b/src/test/java/org/apache/commons/fileupload2/jaksrvlt/MockJakSrvltHttpRequest.java
index b5d92c7..52df090 100644
--- a/src/test/java/org/apache/commons/fileupload2/jaksrvlt/MockJakSrvltHttpRequest.java
+++ b/src/test/java/org/apache/commons/fileupload2/jaksrvlt/MockJakSrvltHttpRequest.java
@@ -103,7 +103,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getDateHeader(String)
      */
     @Override
-    public long getDateHeader(String arg0) {
+    public long getDateHeader(final String arg0) {
         return 0;
     }
 
@@ -111,7 +111,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getHeader(String)
      */
     @Override
-    public String getHeader(String headerName) {
+    public String getHeader(final String headerName) {
         return m_headers.get(headerName);
     }
 
@@ -119,7 +119,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getHeaders(String)
      */
     @Override
-    public Enumeration<String> getHeaders(String arg0) {
+    public Enumeration<String> getHeaders(final String arg0) {
         // todo - implement
         return null;
     }
@@ -137,7 +137,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getIntHeader(String)
      */
     @Override
-    public int getIntHeader(String arg0) {
+    public int getIntHeader(final String arg0) {
         return 0;
     }
 
@@ -193,7 +193,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#isUserInRole(String)
      */
     @Override
-    public boolean isUserInRole(String arg0) {
+    public boolean isUserInRole(final String arg0) {
         return false;
     }
 
@@ -241,7 +241,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.http.HttpServletRequest#getSession(boolean)
      */
     @Override
-    public HttpSession getSession(boolean arg0) {
+    public HttpSession getSession(final boolean arg0) {
         return null;
     }
 
@@ -291,7 +291,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getAttribute(String)
      */
     @Override
-    public Object getAttribute(String arg0) {
+    public Object getAttribute(final String arg0) {
         return null;
     }
 
@@ -315,7 +315,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#setCharacterEncoding(String)
      */
     @Override
-    public void setCharacterEncoding(String arg0)
+    public void setCharacterEncoding(final String arg0)
         throws UnsupportedEncodingException {
     }
 
@@ -340,7 +340,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
     /**
      * For testing attack scenarios in SizesTest.
      */
-    public void setContentLength(long length) {
+    public void setContentLength(final long length) {
         this.length = length;
     }
 
@@ -357,7 +357,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      */
     @Override
     public ServletInputStream getInputStream() throws IOException {
-        ServletInputStream sis = new MyServletInputStream(m_requestData, readLimit);
+        final ServletInputStream sis = new MyServletInputStream(m_requestData, readLimit);
         return sis;
     }
 
@@ -366,7 +366,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      *
      * @param readLimit the read limit to use
      */
-    public void setReadLimit(int readLimit) {
+    public void setReadLimit(final int readLimit) {
         this.readLimit = readLimit;
     }
 
@@ -374,7 +374,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getParameter(String)
      */
     @Override
-    public String getParameter(String arg0) {
+    public String getParameter(final String arg0) {
         return null;
     }
 
@@ -390,7 +390,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getParameterValues(String)
      */
     @Override
-    public String[] getParameterValues(String arg0) {
+    public String[] getParameterValues(final String arg0) {
         return null;
     }
 
@@ -498,14 +498,14 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#setAttribute(String, Object)
      */
     @Override
-    public void setAttribute(String arg0, Object arg1) {
+    public void setAttribute(final String arg0, final Object arg1) {
     }
 
     /**
      * @see javax.servlet.ServletRequest#removeAttribute(String)
      */
     @Override
-    public void removeAttribute(String arg0) {
+    public void removeAttribute(final String arg0) {
     }
 
     /**
@@ -536,7 +536,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
      * @see javax.servlet.ServletRequest#getRequestDispatcher(String)
      */
     @Override
-    public RequestDispatcher getRequestDispatcher(String arg0) {
+    public RequestDispatcher getRequestDispatcher(final String arg0) {
         return null;
     }
 
@@ -550,7 +550,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
          * Creates a new instance, which returns the given
          * streams data.
          */
-        public MyServletInputStream(InputStream pStream, int readLimit) {
+        public MyServletInputStream(final InputStream pStream, final int readLimit) {
             in = pStream;
             this.readLimit = readLimit;
         }
@@ -561,7 +561,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
         }
 
         @Override
-        public int read(byte b[], int off, int len) throws IOException {
+        public int read(final byte b[], final int off, final int len) throws IOException {
             if (readLimit > 0) {
                 return in.read(b, off, Math.min(readLimit, len));
             }
@@ -579,7 +579,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
 		}
 
 		@Override
-		public void setReadListener(ReadListener readListener) {
+		public void setReadListener(final ReadListener readListener) {
 			throw new IllegalStateException("Not implemented");
 		}
 
@@ -606,7 +606,7 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
 	}
 
 	@Override
-	public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
+	public AsyncContext startAsync(final ServletRequest servletRequest, final ServletResponse servletResponse)
 			throws IllegalStateException {
 		throw new IllegalStateException("Not implemented");
 	}
@@ -637,12 +637,12 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
 	}
 
 	@Override
-	public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
+	public boolean authenticate(final HttpServletResponse response) throws IOException, ServletException {
 		return false;
 	}
 
 	@Override
-	public void login(String username, String password) throws ServletException {
+	public void login(final String username, final String password) throws ServletException {
 		throw new IllegalStateException("Not implemented");
 	}
 
@@ -657,17 +657,17 @@ public class MockJakSrvltHttpRequest implements HttpServletRequest {
 	}
 
 	@Override
-	public Part getPart(String name) throws IOException, ServletException {
+	public Part getPart(final String name) throws IOException, ServletException {
 		return null;
 	}
 
 	@Override
-	public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException {
+	public <T extends HttpUpgradeHandler> T upgrade(final Class<T> handlerClass) throws IOException, ServletException {
 		throw new IllegalStateException("Not implemented");
 	}
 
 	@Override
-	public String getRealPath(String path) {
+	public String getRealPath(final String path) {
 		return null;
 	}
 }
diff --git a/src/test/java/org/apache/commons/fileupload2/portlet/MockPortletActionRequest.java b/src/test/java/org/apache/commons/fileupload2/portlet/MockPortletActionRequest.java
index 5fc0c3a..583ec6b 100644
--- a/src/test/java/org/apache/commons/fileupload2/portlet/MockPortletActionRequest.java
+++ b/src/test/java/org/apache/commons/fileupload2/portlet/MockPortletActionRequest.java
@@ -61,7 +61,7 @@ public class MockPortletActionRequest implements ActionRequest {
         this(new ByteArrayInputStream(requestData), requestData.length, contentType);
     }
 
-    public MockPortletActionRequest(ByteArrayInputStream byteArrayInputStream, int requestLength, String contentType) {
+    public MockPortletActionRequest(final ByteArrayInputStream byteArrayInputStream, final int requestLength, final String contentType) {
         this.requestData = byteArrayInputStream;
         length = requestLength;
         this.contentType = contentType;
@@ -69,7 +69,7 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public Object getAttribute(String key) {
+    public Object getAttribute(final String key) {
         return attributes.get(key);
     }
 
@@ -99,7 +99,7 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public String getParameter(String key) {
+    public String getParameter(final String key) {
         return parameters.get(key);
     }
 
@@ -114,7 +114,7 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public String[] getParameterValues(String arg0) {
+    public String[] getParameterValues(final String arg0) {
         return null;
     }
 
@@ -134,7 +134,7 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public PortletSession getPortletSession(boolean arg0) {
+    public PortletSession getPortletSession(final boolean arg0) {
         return null;
     }
 
@@ -144,12 +144,12 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public Enumeration getProperties(String arg0) {
+    public Enumeration getProperties(final String arg0) {
         return null;
     }
 
     @Override
-    public String getProperty(String arg0) {
+    public String getProperty(final String arg0) {
         return null;
     }
 
@@ -204,7 +204,7 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public boolean isPortletModeAllowed(PortletMode arg0) {
+    public boolean isPortletModeAllowed(final PortletMode arg0) {
         return false;
     }
 
@@ -219,22 +219,22 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public boolean isUserInRole(String arg0) {
+    public boolean isUserInRole(final String arg0) {
         return false;
     }
 
     @Override
-    public boolean isWindowStateAllowed(WindowState arg0) {
+    public boolean isWindowStateAllowed(final WindowState arg0) {
         return false;
     }
 
     @Override
-    public void removeAttribute(String key) {
+    public void removeAttribute(final String key) {
         attributes.remove(key);
     }
 
     @Override
-    public void setAttribute(String key, Object value) {
+    public void setAttribute(final String key, final Object value) {
         attributes.put(key, value);
     }
 
@@ -264,7 +264,7 @@ public class MockPortletActionRequest implements ActionRequest {
     }
 
     @Override
-    public void setCharacterEncoding(String characterEncoding) throws UnsupportedEncodingException {
+    public void setCharacterEncoding(final String characterEncoding) throws UnsupportedEncodingException {
         this.characterEncoding = characterEncoding;
     }
 
diff --git a/src/test/java/org/apache/commons/fileupload2/portlet/PortletFileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/portlet/PortletFileUploadTest.java
index 9a37b61..9cd51b2 100644
--- a/src/test/java/org/apache/commons/fileupload2/portlet/PortletFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/portlet/PortletFileUploadTest.java
@@ -50,7 +50,7 @@ public class PortletFileUploadTest {
     @Test
     public void parseParameterMap()
             throws Exception {
-        String text = "-----1234\r\n" +
+        final String text = "-----1234\r\n" +
                       "Content-Disposition: form-data; name=\"file\"; filename=\"foo.tab\"\r\n" +
                       "Content-Type: text/whatever\r\n" +
                       "\r\n" +
@@ -69,10 +69,10 @@ public class PortletFileUploadTest {
                       "\r\n" +
                       "value2\r\n" +
                       "-----1234--\r\n";
-        byte[] bytes = text.getBytes("US-ASCII");
-        ActionRequest request = new MockPortletActionRequest(bytes, Constants.CONTENT_TYPE);
+        final byte[] bytes = text.getBytes("US-ASCII");
+        final ActionRequest request = new MockPortletActionRequest(bytes, Constants.CONTENT_TYPE);
 
-        Map<String, List<FileItem>> mappedParameters = upload.parseParameterMap(request);
+        final Map<String, List<FileItem>> mappedParameters = upload.parseParameterMap(request);
         assertTrue(mappedParameters.containsKey("file"));
         assertEquals(1, mappedParameters.get("file").size());
 
diff --git a/src/test/java/org/apache/commons/fileupload2/servlet/ServletFileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/servlet/ServletFileUploadTest.java
index fc71a88..c8b57b3 100644
--- a/src/test/java/org/apache/commons/fileupload2/servlet/ServletFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/servlet/ServletFileUploadTest.java
@@ -46,7 +46,7 @@ public class ServletFileUploadTest {
     @Test
     public void parseParameterMap()
             throws Exception {
-        String text = "-----1234\r\n" +
+        final String text = "-----1234\r\n" +
                       "Content-Disposition: form-data; name=\"file\"; filename=\"foo.tab\"\r\n" +
                       "Content-Type: text/whatever\r\n" +
                       "\r\n" +
@@ -65,11 +65,11 @@ public class ServletFileUploadTest {
                       "\r\n" +
                       "value2\r\n" +
                       "-----1234--\r\n";
-        byte[] bytes = text.getBytes("US-ASCII");
-        HttpServletRequest request = new MockHttpServletRequest(bytes, Constants.CONTENT_TYPE);
+        final byte[] bytes = text.getBytes("US-ASCII");
+        final HttpServletRequest request = new MockHttpServletRequest(bytes, Constants.CONTENT_TYPE);
 
-        ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
-        Map<String, List<FileItem>> mappedParameters = upload.parseParameterMap(request);
+        final ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
+        final Map<String, List<FileItem>> mappedParameters = upload.parseParameterMap(request);
         assertTrue(mappedParameters.containsKey("file"));
         assertEquals(1, mappedParameters.get("file").size());
 
@@ -85,21 +85,21 @@ public class ServletFileUploadTest {
     public void parseImpliedUtf8()
 	    throws Exception {
         // utf8 encoded form-data without explicit content-type encoding
-        String text = "-----1234\r\n" +
+        final String text = "-----1234\r\n" +
                 "Content-Disposition: form-data; name=\"utf8Html\"\r\n" +
                 "\r\n" +
                 "Th�s �s the co�te�t of the f�le\n" +
                 "\r\n" +
                 "-----1234--\r\n";
 
-        byte[] bytes = text.getBytes("UTF-8");
-        HttpServletRequest request = new MockHttpServletRequest(bytes, Constants.CONTENT_TYPE);
+        final byte[] bytes = text.getBytes("UTF-8");
+        final HttpServletRequest request = new MockHttpServletRequest(bytes, Constants.CONTENT_TYPE);
 
-        DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
+        final DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
         fileItemFactory.setDefaultCharset("UTF-8");
-        ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
-        List<FileItem> fileItems = upload.parseRequest(request);
-        FileItem fileItem = fileItems.get(0);
+        final ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
+        final List<FileItem> fileItems = upload.parseRequest(request);
+        final FileItem fileItem = fileItems.get(0);
         assertTrue(fileItem.getString().contains("co�te�t"), fileItem.getString());
     }
 }
diff --git a/src/test/java/org/apache/commons/fileupload2/util/mime/Base64DecoderTestCase.java b/src/test/java/org/apache/commons/fileupload2/util/mime/Base64DecoderTestCase.java
index 3594e5e..25180e6 100644
--- a/src/test/java/org/apache/commons/fileupload2/util/mime/Base64DecoderTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload2/util/mime/Base64DecoderTestCase.java
@@ -139,25 +139,25 @@ public final class Base64DecoderTestCase {
         assertEncoded("f","Zg=\u0100=");
     }
 
-    private static void assertEncoded(String clearText, String encoded) throws Exception {
-        byte[] expected = clearText.getBytes(US_ASCII_CHARSET);
+    private static void assertEncoded(final String clearText, final String encoded) throws Exception {
+        final byte[] expected = clearText.getBytes(US_ASCII_CHARSET);
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
-        byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
+        final ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
+        final byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
         Base64Decoder.decode(encodedData, out);
-        byte[] actual = out.toByteArray();
+        final byte[] actual = out.toByteArray();
 
         assertArrayEquals(expected, actual);
     }
 
-    private static void assertIOException(String messageText, String encoded) throws UnsupportedEncodingException {
-        ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
-        byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
+    private static void assertIOException(final String messageText, final String encoded) throws UnsupportedEncodingException {
+        final ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
+        final byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
         try {
             Base64Decoder.decode(encodedData, out);
             fail("Expected IOException");
-        } catch (IOException e) {
-            String em = e.getMessage();
+        } catch (final IOException e) {
+            final String em = e.getMessage();
             assertTrue(em.contains(messageText), "Expected to find " + messageText + " in '" + em + "'");
         }
     }
diff --git a/src/test/java/org/apache/commons/fileupload2/util/mime/MimeUtilityTestCase.java b/src/test/java/org/apache/commons/fileupload2/util/mime/MimeUtilityTestCase.java
index 642e44b..40cb402 100644
--- a/src/test/java/org/apache/commons/fileupload2/util/mime/MimeUtilityTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload2/util/mime/MimeUtilityTestCase.java
@@ -59,7 +59,7 @@ public final class MimeUtilityTestCase {
                 "=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\t  \r\n   =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=\"\r\n");
     }
 
-    private static void assertEncoded(String expected, String encoded) throws Exception {
+    private static void assertEncoded(final String expected, final String encoded) throws Exception {
         assertEquals(expected, MimeUtility.decodeText(encoded));
     }
 
diff --git a/src/test/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoderTestCase.java b/src/test/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoderTestCase.java
index 9ec41db..5cfa78d 100644
--- a/src/test/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoderTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoderTestCase.java
@@ -99,25 +99,25 @@ public final class QuotedPrintableDecoderTestCase {
         assertIOException("truncated", "=1");
     }
 
-    private static void assertEncoded(String clearText, String encoded) throws Exception {
-        byte[] expected = clearText.getBytes(US_ASCII_CHARSET);
+    private static void assertEncoded(final String clearText, final String encoded) throws Exception {
+        final byte[] expected = clearText.getBytes(US_ASCII_CHARSET);
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
-        byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
+        final ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
+        final byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
         QuotedPrintableDecoder.decode(encodedData, out);
-        byte[] actual = out.toByteArray();
+        final byte[] actual = out.toByteArray();
 
         assertArrayEquals(expected, actual);
     }
 
-    private static void assertIOException(String messageText, String encoded) throws UnsupportedEncodingException {
-        ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
-        byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
+    private static void assertIOException(final String messageText, final String encoded) throws UnsupportedEncodingException {
+        final ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
+        final byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
         try {
             QuotedPrintableDecoder.decode(encodedData, out);
             fail("Expected IOException");
-        } catch (IOException e) {
-            String em = e.getMessage();
+        } catch (final IOException e) {
+            final String em = e.getMessage();
             assertTrue(em.contains(messageText), "Expected to find " + messageText + " in '" + em + "'");
         }
     }
diff --git a/src/test/java/org/apache/commons/fileupload2/util/mime/RFC2231UtilityTestCase.java b/src/test/java/org/apache/commons/fileupload2/util/mime/RFC2231UtilityTestCase.java
index 315713c..9a4d804 100644
--- a/src/test/java/org/apache/commons/fileupload2/util/mime/RFC2231UtilityTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload2/util/mime/RFC2231UtilityTestCase.java
@@ -34,28 +34,28 @@ public final class RFC2231UtilityTestCase {
 
     @Test
     public void testHasEncodedValue() {
-        String nameWithAsteriskAtEnd = "paramname*";
+        final String nameWithAsteriskAtEnd = "paramname*";
         assertTrue(RFC2231Utility.hasEncodedValue(nameWithAsteriskAtEnd));
 
-        String nameWithAsteriskNotAtEnd = "param*name";
+        final String nameWithAsteriskNotAtEnd = "param*name";
         assertFalse(RFC2231Utility.hasEncodedValue(nameWithAsteriskNotAtEnd));
 
-        String nameWithoutAsterisk = "paramname";
+        final String nameWithoutAsterisk = "paramname";
         assertFalse(RFC2231Utility.hasEncodedValue(nameWithoutAsterisk));
     }
 
     @Test
     public void testStripDelimiter() {
-        String nameWithAsteriskAtEnd = "paramname*";
+        final String nameWithAsteriskAtEnd = "paramname*";
         assertEquals("paramname", RFC2231Utility.stripDelimiter(nameWithAsteriskAtEnd));
 
-        String nameWithAsteriskNotAtEnd = "param*name";
+        final String nameWithAsteriskNotAtEnd = "param*name";
         assertEquals("param*name", RFC2231Utility.stripDelimiter(nameWithAsteriskNotAtEnd));
 
-        String nameWithTwoAsterisks = "param*name*";
+        final String nameWithTwoAsterisks = "param*name*";
         assertEquals("param*name", RFC2231Utility.stripDelimiter(nameWithTwoAsterisks));
 
-        String nameWithoutAsterisk = "paramname";
+        final String nameWithoutAsterisk = "paramname";
         assertEquals("paramname", RFC2231Utility.stripDelimiter(nameWithoutAsterisk));
     }
 
@@ -81,7 +81,7 @@ public final class RFC2231UtilityTestCase {
         });
     }
 
-    private static void assertEncoded(String expected, String encoded) throws Exception {
+    private static void assertEncoded(final String expected, final String encoded) throws Exception {
         assertEquals(expected, RFC2231Utility.decodeText(encoded));
     }
 }