You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2017/05/16 19:54:24 UTC

[2/2] maven-resolver git commit: [MRESOLVER-23] Avoid implicit primitive type casts

[MRESOLVER-23] Avoid implicit primitive type casts


Project: http://git-wip-us.apache.org/repos/asf/maven-resolver/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-resolver/commit/f7595300
Tree: http://git-wip-us.apache.org/repos/asf/maven-resolver/tree/f7595300
Diff: http://git-wip-us.apache.org/repos/asf/maven-resolver/diff/f7595300

Branch: refs/heads/MRESOLVER-23
Commit: f759530008a8b830dcea4bcb37ff4cc315681eaf
Parents: 7ff028b
Author: Michael Osipov <mi...@apache.org>
Authored: Tue Nov 1 00:35:27 2016 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Tue May 16 21:53:38 2017 +0200

----------------------------------------------------------------------
 .../eclipse/aether/transfer/TransferEvent.java  |   8 +-
 .../aether/transfer/TransferResource.java       |   4 +-
 .../aether/DefaultRepositoryCacheTest.java      |   2 +-
 .../eclipse/aether/DefaultSessionDataTest.java  |   2 +-
 .../basic/BasicRepositoryConnector.java         |   2 +-
 .../connector/basic/ChecksumCalculator.java     |  73 +++--
 .../aether/connector/basic/PartialFile.java     |  97 ++-----
 .../aether/connector/basic/PartialFileTest.java | 112 +++-----
 .../internal/impl/DefaultFileProcessor.java     |   4 +-
 .../impl/DefaultUpdateCheckManager.java         |   8 +-
 .../impl/DefaultVersionFilterContext.java       |   8 +-
 .../EnhancedLocalRepositoryManagerFactory.java  |   2 +-
 .../internal/impl/TrackingFileManager.java      |   2 +-
 .../internal/impl/DefaultFileProcessorTest.java |   4 +-
 .../impl/DefaultUpdateCheckManagerTest.java     |   8 +-
 .../EnhancedLocalRepositoryManagerTest.java     |   6 +-
 .../internal/impl/StaticUpdateCheckManager.java |   4 +-
 .../transport/AbstractTransporter.java          |  36 +--
 .../internal/test/util/TestFileProcessor.java   |   2 +-
 .../internal/test/util/TestFileUtils.java       | 102 ++-----
 .../classpath/ClasspathTransporterTest.java     |  20 +-
 .../transport/file/FileTransporterTest.java     |  48 ++--
 .../aether/transport/http/HttpTransporter.java  |  12 +-
 .../transport/http/HttpTransporterFactory.java  |   2 +-
 .../aether/transport/http/HttpServer.java       | 138 ++++++----
 .../transport/http/HttpTransporterTest.java     | 263 +++++++++++++++----
 .../wagon/WagonTransporterFactory.java          |   2 +-
 .../wagon/AbstractWagonTransporterTest.java     |  40 +--
 .../eclipse/aether/util/ConfigUtilsTest.java    |  10 +-
 29 files changed, 525 insertions(+), 496 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
index 901f317..7d33d50 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
@@ -289,7 +289,7 @@ public final class TransferEvent
             {
                 case INITIATED:
                 case STARTED:
-                    transferredBytes = 0;
+                    transferredBytes = 0L;
                 default:
             }
             return this;
@@ -333,7 +333,7 @@ public final class TransferEvent
          */
         public Builder setTransferredBytes( long transferredBytes )
         {
-            if ( transferredBytes < 0 )
+            if ( transferredBytes < 0L )
             {
                 throw new IllegalArgumentException( "number of transferred bytes cannot be negative" );
             }
@@ -343,14 +343,14 @@ public final class TransferEvent
 
         /**
          * Increments the total number of bytes that have been transferred so far during the download/upload.
-         * 
+         *
          * @param transferredBytes The number of bytes that have been transferred since the last event, must not be
          *            negative.
          * @return This event builder for chaining, never {@code null}.
          */
         public Builder addTransferredBytes( long transferredBytes )
         {
-            if ( transferredBytes < 0 )
+            if ( transferredBytes < 0L )
             {
                 throw new IllegalArgumentException( "number of transferred bytes cannot be negative" );
             }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
index 1fecdad..26b6c77 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
@@ -41,7 +41,7 @@ public final class TransferResource
 
     private final RequestTrace trace;
 
-    private long contentLength = -1;
+    private long contentLength = -1L;
 
     private long resumeOffset;
 
@@ -209,7 +209,7 @@ public final class TransferResource
      */
     public TransferResource setResumeOffset( long resumeOffset )
     {
-        if ( resumeOffset < 0 )
+        if ( resumeOffset < 0L )
         {
             throw new IllegalArgumentException( "resume offset cannot be negative" );
         }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
index ad5dfc5..067320e 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
@@ -68,7 +68,7 @@ public class DefaultRepositoryCacheTest
         assertNull( get( key ) );
     }
 
-    @Test( timeout = 10000 )
+    @Test( timeout = 10000L )
     public void testConcurrency()
         throws Exception
     {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
index 58f3649..3b886e5 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
@@ -94,7 +94,7 @@ public class DefaultSessionDataTest
         assertNull( get( key ) );
     }
 
-    @Test( timeout = 10000 )
+    @Test( timeout = 10000L )
     public void testConcurrency()
         throws Exception
     {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
index d96b5ad..a3cce25 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
@@ -167,7 +167,7 @@ final class BasicRepositoryConnector
         if ( executor == null )
         {
             executor =
-                new ThreadPoolExecutor( maxThreads, maxThreads, 3, TimeUnit.SECONDS,
+                new ThreadPoolExecutor( maxThreads, maxThreads, 3L, TimeUnit.SECONDS,
                                         new LinkedBlockingQueue<Runnable>(),
                                         new WorkerThreadFactory( getClass().getSimpleName() + '-'
                                             + repository.getHost() + '-' ) );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
index 3d05ff0..03868d3 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
@@ -22,7 +22,6 @@ package org.eclipse.aether.connector.basic;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.nio.ByteBuffer;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -136,41 +135,55 @@ final class ChecksumCalculator
         {
             checksum.reset();
         }
-        if ( dataOffset <= 0 )
+        if ( dataOffset <= 0L )
         {
             return;
         }
-
-        InputStream in = null;
         try
         {
-            in = new FileInputStream( targetFile );
-            long total = 0;
-            ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
-            for ( byte[] array = buffer.array(); total < dataOffset; )
+            FileInputStream fis = new FileInputStream( targetFile );
+            try
+            {
+                long total = 0L;
+                ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
+                for ( byte[] array = buffer.array(); total < dataOffset; )
+                {
+                    int read = fis.read( array );
+                    if ( read < 0 )
+                    {
+                        if ( total < dataOffset )
+                        {
+                            throw new IOException( targetFile + " contains only " + total
+                                + " bytes, cannot resume download from offset " + dataOffset );
+                        }
+                        break;
+                    }
+                    total += read;
+                    if ( total > dataOffset )
+                    {
+                        read -= total - dataOffset;
+                    }
+                    buffer.rewind();
+                    buffer.limit( read );
+                    update( buffer );
+                }
+                fis.close();
+                fis = null;
+            }
+            finally
             {
-                int read = in.read( array );
-                if ( read < 0 )
+                try
                 {
-                    if ( total < dataOffset )
+                    if ( fis != null )
                     {
-                        throw new IOException( targetFile + " contains only " + total
-                                                   + " bytes, cannot resume download from offset " + dataOffset );
+                        fis.close();
                     }
-                    break;
                 }
-                total += read;
-                if ( total > dataOffset )
+                catch ( IOException e )
                 {
-                    read -= total - dataOffset;
+                    // Suppressed
                 }
-                buffer.rewind();
-                buffer.limit( read );
-                update( buffer );
             }
-
-            in.close();
-            in = null;
         }
         catch ( IOException e )
         {
@@ -179,20 +192,6 @@ final class ChecksumCalculator
                 checksum.error( e );
             }
         }
-        finally
-        {
-            try
-            {
-                if ( in != null )
-                {
-                    in.close();
-                }
-            }
-            catch ( IOException e )
-            {
-                // Suppressed due to an exception already thrown in the try block.
-            }
-        }
     }
 
     public void update( ByteBuffer data )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
index d360658..c222457 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
@@ -23,11 +23,9 @@ import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.io.RandomAccessFile;
-import java.nio.channels.Channel;
 import java.nio.channels.FileLock;
 import java.nio.channels.OverlappingFileLockException;
 import java.util.UUID;
-import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.eclipse.aether.spi.log.Logger;
 
@@ -59,24 +57,25 @@ final class PartialFile
 
         private final FileLock lock;
 
-        private final AtomicBoolean concurrent;
+        private final boolean concurrent;
 
         public LockFile( File partFile, int requestTimeout, RemoteAccessChecker checker, Logger logger )
             throws Exception
         {
             lockFile = new File( partFile.getPath() + EXT_LOCK );
-            concurrent = new AtomicBoolean( false );
+            boolean[] concurrent = { false };
             lock = lock( lockFile, partFile, requestTimeout, checker, logger, concurrent );
+            this.concurrent = concurrent[0];
         }
 
         private static FileLock lock( File lockFile, File partFile, int requestTimeout, RemoteAccessChecker checker,
-                                      Logger logger, AtomicBoolean concurrent )
+                                      Logger logger, boolean[] concurrent )
             throws Exception
         {
             boolean interrupted = false;
             try
             {
-                for ( long lastLength = -1, lastTime = 0;; )
+                for ( long lastLength = -1L, lastTime = 0L;; )
                 {
                     FileLock lock = tryLock( lockFile );
                     if ( lock != null )
@@ -88,9 +87,9 @@ final class PartialFile
                     long currentTime = System.currentTimeMillis();
                     if ( currentLength != lastLength )
                     {
-                        if ( lastLength < 0 )
+                        if ( lastLength < 0L )
                         {
-                            concurrent.set( true );
+                            concurrent[0] = true;
                             /*
                              * NOTE: We're going with the optimistic assumption that the other thread is downloading the
                              * file from an equivalent repository. As a bare minimum, ensure the repository we are given
@@ -105,12 +104,12 @@ final class PartialFile
                     else if ( requestTimeout > 0 && currentTime - lastTime > Math.max( requestTimeout, 3 * 1000 ) )
                     {
                         throw new IOException( "Timeout while waiting for concurrent download of " + partFile
-                                                   + " to progress" );
+                            + " to progress" );
                     }
 
                     try
                     {
-                        Thread.sleep( Math.max( requestTimeout / 2, 100 ) );
+                        Thread.sleep( 100L );
                     }
                     catch ( InterruptedException e )
                     {
@@ -136,37 +135,27 @@ final class PartialFile
             {
                 raf = new RandomAccessFile( lockFile, "rw" );
                 lock = raf.getChannel().tryLock( 0, 1, false );
-
                 if ( lock == null )
                 {
                     raf.close();
                     raf = null;
                 }
+                return lock;
             }
             catch ( OverlappingFileLockException e )
             {
-                close( raf );
-                raf = null;
-                lock = null;
+                return null;
             }
             catch ( RuntimeException e )
             {
-                close( raf );
-                raf = null;
-                if ( !lockFile.delete() )
-                {
-                    lockFile.deleteOnExit();
-                }
+                lockFile.delete();
+                lock = null;
                 throw e;
             }
             catch ( IOException e )
             {
-                close( raf );
-                raf = null;
-                if ( !lockFile.delete() )
-                {
-                    lockFile.deleteOnExit();
-                }
+                lockFile.delete();
+                lock = null;
                 throw e;
             }
             finally
@@ -180,64 +169,20 @@ final class PartialFile
                 }
                 catch ( final IOException e )
                 {
-                    // Suppressed due to an exception already thrown in the try block.
+                    // Suppressed
                 }
             }
-
-            return lock;
-        }
-
-        private static void close( Closeable file )
-        {
-            try
-            {
-                if ( file != null )
-                {
-                    file.close();
-                }
-            }
-            catch ( IOException e )
-            {
-                // Suppressed.
-            }
         }
 
         public boolean isConcurrent()
         {
-            return concurrent.get();
+            return concurrent;
         }
 
         public void close() throws IOException
         {
-            Channel channel = null;
-            try
-            {
-                channel = lock.channel();
-                lock.release();
-                channel.close();
-                channel = null;
-            }
-            finally
-            {
-                try
-                {
-                    if ( channel != null )
-                    {
-                        channel.close();
-                    }
-                }
-                catch ( final IOException e )
-                {
-                    // Suppressed due to an exception already thrown in the try block.
-                }
-                finally
-                {
-                    if ( !lockFile.delete() )
-                    {
-                        lockFile.deleteOnExit();
-                    }
-                }
-            }
+            lock.channel().close();
+            lockFile.delete();
         }
 
         @Override
@@ -276,7 +221,7 @@ final class PartialFile
 
                 long reqTimestamp = System.currentTimeMillis();
                 LockFile lockFile = new LockFile( partFile, requestTimeout, checker, logger );
-                if ( lockFile.isConcurrent() && dstFile.lastModified() >= reqTimestamp - 100 )
+                if ( lockFile.isConcurrent() && dstFile.lastModified() >= reqTimestamp - 100L )
                 {
                     lockFile.close();
                     return null;
@@ -315,7 +260,7 @@ final class PartialFile
 
     private PartialFile( File partFile, Logger logger )
     {
-        this( partFile, null, 0, logger );
+        this( partFile, null, 0L, logger );
     }
 
     private PartialFile( File partFile, LockFile lockFile, long threshold, Logger logger )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
index b6fd701..104c6c3 100644
--- a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
+++ b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
@@ -26,7 +26,6 @@ import java.io.Closeable;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
 import java.io.RandomAccessFile;
 import java.nio.channels.FileLock;
 import java.util.ArrayList;
@@ -98,91 +97,48 @@ public class PartialFileTest
         @Override
         public void run()
         {
-            RandomAccessFile raf = null;
-            FileLock lock = null;
-            OutputStream out = null;
             try
             {
-                raf = new RandomAccessFile( lockFile, "rw" );
-                lock = raf.getChannel().lock( 0, 1, false );
-                locked.countDown();
-                out = new FileOutputStream( partFile );
-                for ( int i = 0, n = Math.abs( length ); i < n; i++ )
-                {
-                    for ( long start = System.currentTimeMillis(); System.currentTimeMillis() - start < sleep; )
-                    {
-                        Thread.sleep( 10 );
-                    }
-                    out.write( 65 );
-                    out.flush();
-                    System.out.println( "  " + System.currentTimeMillis() + " Wrote byte " + ( i + 1 ) + "/"
-                                            + n );
-                }
-                if ( length >= 0 && !dstFile.setLastModified( System.currentTimeMillis() ) )
-                {
-                    throw new IOException( "Could not update destination file" );
-                }
-
-                out.close();
-                out = null;
-                lock.release();
-                lock = null;
-                raf.close();
-                raf = null;
-            }
-            catch ( Exception e )
-            {
-                error = e;
-            }
-            finally
-            {
+                RandomAccessFile raf = new RandomAccessFile( lockFile, "rw" );
                 try
                 {
-                    if ( out != null )
-                    {
-                        out.close();
-                    }
-                }
-                catch ( final IOException e )
-                {
-                    // Suppressed due to an exception already thrown in the try block.
-                }
-                finally
-                {
+                    FileLock lock = raf.getChannel().lock( 0, 1, false );
+                    locked.countDown();
+                    FileOutputStream fos = new FileOutputStream( partFile );
                     try
                     {
-                        if ( lock != null )
+                        for ( int i = 0, n = Math.abs( length ); i < n; i++ )
                         {
-                            lock.release();
-                        }
-                    }
-                    catch ( final IOException e )
-                    {
-                        // Suppressed due to an exception already thrown in the try block.
-                    }
-                    finally
-                    {
-                        try
-                        {
-                            if ( raf != null )
+                            for ( long start = System.currentTimeMillis(); System.currentTimeMillis() - start < sleep; )
                             {
-                                raf.close();
+                                Thread.sleep( 10L );
                             }
+                            fos.write( 65 );
+                            fos.flush();
+                            System.out.println( "  " + System.currentTimeMillis() + " Wrote byte " + ( i + 1 ) + "/"
+                                + n );
                         }
-                        catch ( final IOException e )
-                        {
-                            // Suppressed due to an exception already thrown in the try block.
-                        }
-                        finally
+                        if ( length >= 0 && !dstFile.setLastModified( System.currentTimeMillis() ) )
                         {
-                            if ( !lockFile.delete() )
-                            {
-                                lockFile.deleteOnExit();
-                            }
+                            throw new IOException( "Could not update destination file" );
                         }
                     }
+                    finally
+                    {
+                        fos.close();
+                    }
+                    lock.release();
+                }
+                finally
+                {
+                    raf.close();
+                    lockFile.delete();
                 }
             }
+            catch ( Exception e )
+            {
+                error = e;
+            }
         }
 
     }
@@ -212,7 +168,7 @@ public class PartialFileTest
         throws Exception
     {
         PartialFile.Factory factory =
-            new PartialFile.Factory( resumeThreshold >= 0, resumeThreshold, requestTimeout,
+            new PartialFile.Factory( resumeThreshold >= 0L, resumeThreshold, requestTimeout,
                                      new TestLoggerFactory().getLogger( "" ) );
         PartialFile partFile = factory.newInstance( dstFile, remoteAccessChecker );
         if ( partFile != null )
@@ -301,7 +257,7 @@ public class PartialFileTest
         partialFile.close();
     }
 
-    @Test( timeout = 10000 )
+    @Test( timeout = 10000L )
     public void testResumeConcurrently_RequestTimeout()
         throws Exception
     {
@@ -320,12 +276,12 @@ public class PartialFileTest
         writer.join();
     }
 
-    @Test( timeout = 10000 )
+    @Test( timeout = 10000L )
     public void testResumeConcurrently_AwaitCompletion_ConcurrentWriterSucceeds()
         throws Exception
     {
         assumeTrue( PROPER_LOCK_SUPPORT );
-        assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60 * 1000 ) );
+        assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60L * 1000L ) );
         ConcurrentWriter writer = new ConcurrentWriter( dstFile, 100, 10 );
         assertNull( newPartialFile( 0, 500 ) );
         writer.join();
@@ -333,12 +289,12 @@ public class PartialFileTest
         assertEquals( 1, remoteAccessChecker.invocations );
     }
 
-    @Test( timeout = 10000 )
+    @Test( timeout = 10000L )
     public void testResumeConcurrently_AwaitCompletion_ConcurrentWriterFails()
         throws Exception
     {
         assumeTrue( PROPER_LOCK_SUPPORT );
-        assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60 * 1000 ) );
+        assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60L * 1000L ) );
         ConcurrentWriter writer = new ConcurrentWriter( dstFile, 100, -10 );
         PartialFile partialFile = newPartialFile( 0, 500 );
         assertNotNull( partialFile );
@@ -348,7 +304,7 @@ public class PartialFileTest
         assertEquals( 1, remoteAccessChecker.invocations );
     }
 
-    @Test( timeout = 10000 )
+    @Test( timeout = 10000L )
     public void testResumeConcurrently_CheckRemoteAccess()
         throws Exception
     {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
index eb2226d..6ba2915 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
@@ -153,7 +153,7 @@ public class DefaultFileProcessor
     public long copy( File source, File target, ProgressListener listener )
         throws IOException
     {
-        long total = 0;
+        long total = 0L;
 
         InputStream in = null;
         OutputStream out = null;
@@ -208,7 +208,7 @@ public class DefaultFileProcessor
     private long copy( OutputStream os, InputStream is, ProgressListener listener )
         throws IOException
     {
-        long total = 0;
+        long total = 0L;
 
         ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
         byte[] array = buffer.array();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
index 07dfb9e..f7827a1 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
@@ -152,7 +152,7 @@ public class DefaultUpdateCheckManager
             else
             {
                 // this is the first attempt ever
-                lastUpdated = 0;
+                lastUpdated = 0L;
             }
         }
         else if ( error.length() <= 0 )
@@ -167,7 +167,7 @@ public class DefaultUpdateCheckManager
             lastUpdated = getLastUpdated( props, transferKey );
         }
 
-        if ( lastUpdated == 0 )
+        if ( lastUpdated == 0L )
         {
             check.setRequired( true );
         }
@@ -285,7 +285,7 @@ public class DefaultUpdateCheckManager
             else
             {
                 // this is the first attempt ever
-                lastUpdated = 0;
+                lastUpdated = 0L;
             }
         }
         else if ( error.length() <= 0 )
@@ -300,7 +300,7 @@ public class DefaultUpdateCheckManager
             lastUpdated = getLastUpdated( props, transferKey );
         }
 
-        if ( lastUpdated == 0 )
+        if ( lastUpdated == 0L )
         {
             check.setRequired( true );
         }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
index 2007368..1ce4437 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
@@ -72,7 +72,7 @@ final class DefaultVersionFilterContext
         {
             for ( int i = count - 1; i >= 0; i-- )
             {
-                deleted[i] = 0;
+                deleted[i] = (byte) 0;
             }
         }
     }
@@ -166,7 +166,7 @@ final class DefaultVersionFilterContext
 
         private void advance()
         {
-            for ( next = index + 1; next < size && deleted[next] != 0; next++ )
+            for ( next = index + 1; next < size && deleted[next] != (byte) 0; next++ )
             {
                 // just advancing index
             }
@@ -198,11 +198,11 @@ final class DefaultVersionFilterContext
             {
                 throw new ConcurrentModificationException();
             }
-            if ( index < 0 || deleted[index] == 1 )
+            if ( index < 0 || deleted[index] == (byte) 1 )
             {
                 throw new IllegalStateException();
             }
-            deleted[index] = 1;
+            deleted[index] = (byte) 1;
             count = --DefaultVersionFilterContext.this.count;
         }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
index cfd2013..904c840 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
@@ -47,7 +47,7 @@ public class EnhancedLocalRepositoryManagerFactory
 
     private Logger logger = NullLoggerFactory.LOGGER;
 
-    private float priority = 10;
+    private float priority = 10.0f;
 
     public EnhancedLocalRepositoryManagerFactory()
     {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
index 9d75606..0e4a18e 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
@@ -220,7 +220,7 @@ class TrackingFileManager
                 }
                 try
                 {
-                    Thread.sleep( 50 );
+                    Thread.sleep( 50L );
                 }
                 catch ( InterruptedException e1 )
                 {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
index 3f8ab5e..7b48230 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
@@ -98,7 +98,7 @@ public class DefaultFileProcessorTest
         File target = new File( targetDir, "testCopyEmptyFile" );
         target.delete();
         fileProcessor.copy( file, target );
-        assertTrue( "empty file was not copied", target.exists() && target.length() == 0 );
+        assertTrue( "empty file was not copied", target.exists() && target.length() == 0L );
         target.delete();
     }
 
@@ -120,7 +120,7 @@ public class DefaultFileProcessorTest
         };
         fileProcessor.copy( file, target, listener );
         assertTrue( "file was not created", target.isFile() );
-        assertEquals( "file was not fully copied", 4, target.length() );
+        assertEquals( "file was not fully copied", 4L, target.length() );
         assertEquals( "listener not called", 4, progressed.intValue() );
         target.delete();
     }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
index 8686ee8..9cb299c 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
@@ -53,7 +53,7 @@ import org.junit.Test;
 public class DefaultUpdateCheckManagerTest
 {
 
-    private static final int HOUR = 60 * 60 * 1000;
+    private static final long HOUR = 60L * 60L * 1000L;
 
     private DefaultUpdateCheckManager manager;
 
@@ -543,7 +543,7 @@ public class DefaultUpdateCheckManagerTest
         throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
-        long fifteenMinutes = new Date().getTime() - ( 15 * 60 * 1000 );
+        long fifteenMinutes = new Date().getTime() - ( 15L * 60L * 1000L );
         check.getFile().setLastModified( fifteenMinutes );
         // time is truncated on setLastModfied
         fifteenMinutes = check.getFile().lastModified();
@@ -553,7 +553,7 @@ public class DefaultUpdateCheckManagerTest
         assertEquals( true, check.isRequired() );
 
         // just checked
-        check.setLocalLastUpdated( 0 );
+        check.setLocalLastUpdated( 0L );
         long lastUpdate = new Date().getTime();
         check.getFile().setLastModified( lastUpdate );
         lastUpdate = check.getFile().lastModified();
@@ -562,7 +562,7 @@ public class DefaultUpdateCheckManagerTest
         assertEquals( false, check.isRequired() );
 
         // no local file, no repo timestamp
-        check.setLocalLastUpdated( 0 );
+        check.setLocalLastUpdated( 0L );
         check.getFile().delete();
         manager.checkArtifact( session, check );
         assertEquals( true, check.isRequired() );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
index 41bf542..32a4222 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
@@ -131,13 +131,13 @@ public class EnhancedLocalRepositoryManagerTest
         String path = manager.getPathForRemoteArtifact( artifact, repository, testContext );
         return copy( artifact, path );
     }
-    
+
     private long copy( Metadata metadata, String path )
         throws IOException
     {
         if ( metadata.getFile() == null )
         {
-            return -1;
+            return -1L;
         }
         return TestFileUtils.copyFile( metadata.getFile(), new File( basedir, path ) );
     }
@@ -147,7 +147,7 @@ public class EnhancedLocalRepositoryManagerTest
     {
         if ( artifact.getFile() == null )
         {
-            return -1;
+            return -1L;
         }
         File artifactFile = new File( basedir, path );
         return TestFileUtils.copyFile( artifact.getFile(), artifactFile );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
index 7810089..334d544 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
@@ -60,7 +60,7 @@ class StaticUpdateCheckManager
     {
         check.setRequired( checkRequired );
 
-        if ( check.getLocalLastUpdated() != 0 && localUpToDate )
+        if ( check.getLocalLastUpdated() != 0L && localUpToDate )
         {
             check.setRequired( false );
         }
@@ -74,7 +74,7 @@ class StaticUpdateCheckManager
     {
         check.setRequired( checkRequired );
 
-        if ( check.getLocalLastUpdated() != 0 && localUpToDate )
+        if ( check.getLocalLastUpdated() != 0L && localUpToDate )
         {
             check.setRequired( false );
         }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
----------------------------------------------------------------------
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
index 03864d3..21488a1 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
@@ -98,8 +98,8 @@ public abstract class AbstractTransporter
         OutputStream os = null;
         try
         {
-            task.getListener().transportStarted( resume ? task.getResumeOffset() : 0, length );
             os = task.newOutputStream( resume );
+            task.getListener().transportStarted( resume ? task.getResumeOffset() : 0L, length );
             copy( os, is, task.getListener() );
             os.close();
             os = null;
@@ -121,7 +121,7 @@ public abstract class AbstractTransporter
             }
             catch ( final IOException e )
             {
-                // Suppressed due to an exception already thrown in the try block.
+                // Suppressed
             }
             finally
             {
@@ -134,7 +134,7 @@ public abstract class AbstractTransporter
                 }
                 catch ( final IOException e )
                 {
-                    // Suppressed due to an exception already thrown in the try block.
+                    // Suppressed
                 }
             }
         }
@@ -168,55 +168,55 @@ public abstract class AbstractTransporter
      * @throws IOException If the transfer encountered an I/O error.
      * @throws TransferCancelledException If the transfer was cancelled.
      */
-    protected void utilPut( PutTask task, OutputStream os, boolean close )
+    protected void utilPut( PutTask task, OutputStream out, boolean close )
         throws IOException, TransferCancelledException
     {
-        InputStream is = null;
+        InputStream in = null;
         try
         {
+            in = task.newInputStream();
             task.getListener().transportStarted( 0, task.getDataLength() );
-            is = task.newInputStream();
-            copy( os, is, task.getListener() );
+            copy( out, in, task.getListener() );
 
             if ( close )
             {
-                os.close();
+                out.close();
             }
             else
             {
-                os.flush();
+                out.flush();
             }
 
-            os = null;
+            out = null;
 
-            is.close();
-            is = null;
+            in.close();
+            in = null;
         }
         finally
         {
             try
             {
-                if ( close && os != null )
+                if ( close && out != null )
                 {
-                    os.close();
+                    out.close();
                 }
             }
             catch ( final IOException e )
             {
-                // Suppressed due to an exception already thrown in the try block.
+                // Suppressed
             }
             finally
             {
                 try
                 {
-                    if ( is != null )
+                    if ( in != null )
                     {
-                        is.close();
+                        in.close();
                     }
                 }
                 catch ( final IOException e )
                 {
-                    // Suppressed due to an exception already thrown in the try block.
+                    // Suppressed
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
----------------------------------------------------------------------
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
index 0277442..118ef13 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
@@ -197,7 +197,7 @@ public class TestFileProcessor
     private long copy( OutputStream os, InputStream is, ProgressListener listener )
         throws IOException
     {
-        long total = 0;
+        long total = 0L;
 
         ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
         byte[] array = buffer.array();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
----------------------------------------------------------------------
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
index f59199f..a1715b5 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
@@ -20,6 +20,7 @@ package org.eclipse.aether.internal.test.util;
  */
 
 import java.io.BufferedOutputStream;
+import java.io.Closeable;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -179,11 +180,25 @@ public class TestFileUtils
         return tmpFile;
     }
 
-    public static long copyFile( File source, File target )
+    private static void close( Closeable c )
         throws IOException
     {
-        long total = 0;
+        if ( c != null )
+        {
+            try
+            {
+                c.close();
+            }
+            catch ( IOException e )
+            {
+                // ignore
+            }
+        }
+    }
 
+    public static long copyFile( File source, File target )
+        throws IOException
+    {
         FileInputStream fis = null;
         OutputStream fos = null;
         try
@@ -194,6 +209,8 @@ public class TestFileUtils
 
             fos = new BufferedOutputStream( new FileOutputStream( target ) );
 
+            long total = 0L;
+
             for ( byte[] buffer = new byte[ 1024 * 32 ];; )
             {
                 int bytes = fis.read( buffer );
@@ -212,37 +229,14 @@ public class TestFileUtils
 
             fis.close();
             fis = null;
+
+            return total;
         }
         finally
         {
-            try
-            {
-                if ( fos != null )
-                {
-                    fos.close();
-                }
-            }
-            catch ( final IOException e )
-            {
-                // Suppressed due to an exception already thrown in the try block.
-            }
-            finally
-            {
-                try
-                {
-                    if ( fis != null )
-                    {
-                        fis.close();
-                    }
-                }
-                catch ( final IOException e )
-                {
-                    // Suppressed due to an exception already thrown in the try block.
-                }
-            }
+            close( fis );
+            close( fos );
         }
-
-        return total;
     }
 
     public static byte[] readBytes( File file )
@@ -252,7 +246,7 @@ public class TestFileUtils
         try
         {
             in = new RandomAccessFile( file, "r" );
-            byte[] actual = new byte[ (int) in.length() ];
+            byte[] actual = new byte[(int) in.length()];
             in.readFully( actual );
             in.close();
             in = null;
@@ -260,17 +254,7 @@ public class TestFileUtils
         }
         finally
         {
-            try
-            {
-                if ( in != null )
-                {
-                    in.close();
-                }
-            }
-            catch ( final IOException e )
-            {
-                // Suppressed due to an exception already thrown in the try block.
-            }
+            close( in );
         }
     }
 
@@ -292,17 +276,7 @@ public class TestFileUtils
         }
         finally
         {
-            try
-            {
-                if ( out != null )
-                {
-                    out.close();
-                }
-            }
-            catch ( final IOException e )
-            {
-                // Suppressed due to an exception already thrown in the try block.
-            }
+            close( out );
         }
     }
 
@@ -332,17 +306,7 @@ public class TestFileUtils
         }
         finally
         {
-            try
-            {
-                if ( fis != null )
-                {
-                    fis.close();
-                }
-            }
-            catch ( final IOException e )
-            {
-                // Suppressed due to an exception already thrown in the try block.
-            }
+            close( fis );
         }
     }
 
@@ -361,17 +325,7 @@ public class TestFileUtils
         }
         finally
         {
-            try
-            {
-                if ( fos != null )
-                {
-                    fos.close();
-                }
-            }
-            catch ( final IOException e )
-            {
-                // Suppressed due to an exception already thrown in the try block.
-            }
+            close( fos );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
index 6022cb2..0f7647c 100644
--- a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
+++ b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
@@ -144,8 +144,8 @@ public class ClasspathTransporterTest
         GetTask task = new GetTask( URI.create( "file.txt" ) ).setListener( listener );
         transporter.get( task );
         assertEquals( "test", task.getDataString() );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -160,8 +160,8 @@ public class ClasspathTransporterTest
         GetTask task = new GetTask( URI.create( "file.txt" ) ).setDataFile( file ).setListener( listener );
         transporter.get( task );
         assertEquals( "test", TestFileUtils.readString( file ) );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -176,8 +176,8 @@ public class ClasspathTransporterTest
         GetTask task = new GetTask( URI.create( "empty.txt" ) ).setDataFile( file ).setListener( listener );
         transporter.get( task );
         assertEquals( "", TestFileUtils.readString( file ) );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 0, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 0L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
         assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -269,8 +269,8 @@ public class ClasspathTransporterTest
         {
             assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
         }
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
     }
@@ -291,8 +291,8 @@ public class ClasspathTransporterTest
         {
             assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
         }
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 1, listener.progressedCount );
     }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
index b4bf066..dd65bf0 100644
--- a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
+++ b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
@@ -150,8 +150,8 @@ public class FileTransporterTest
         GetTask task = new GetTask( URI.create( "file.txt" ) ).setListener( listener );
         transporter.get( task );
         assertEquals( "test", task.getDataString() );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -166,8 +166,8 @@ public class FileTransporterTest
         GetTask task = new GetTask( URI.create( "file.txt" ) ).setDataFile( file ).setListener( listener );
         transporter.get( task );
         assertEquals( "test", TestFileUtils.readString( file ) );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -182,8 +182,8 @@ public class FileTransporterTest
         GetTask task = new GetTask( URI.create( "empty.txt" ) ).setDataFile( file ).setListener( listener );
         transporter.get( task );
         assertEquals( "", TestFileUtils.readString( file ) );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 0, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 0L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
         assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -275,8 +275,8 @@ public class FileTransporterTest
         {
             assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
         }
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
     }
@@ -297,8 +297,8 @@ public class FileTransporterTest
         {
             assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
         }
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 4, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 4L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 1, listener.progressedCount );
     }
@@ -310,8 +310,8 @@ public class FileTransporterTest
         RecordingTransportListener listener = new RecordingTransportListener();
         PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener ).setDataString( "upload" );
         transporter.put( task );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 6, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 6L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -325,8 +325,8 @@ public class FileTransporterTest
         RecordingTransportListener listener = new RecordingTransportListener();
         PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener ).setDataFile( file );
         transporter.put( task );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 6, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 6L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -339,8 +339,8 @@ public class FileTransporterTest
         RecordingTransportListener listener = new RecordingTransportListener();
         PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener );
         transporter.put( task );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 0, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 0L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
         assertEquals( "", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -354,8 +354,8 @@ public class FileTransporterTest
         PutTask task =
             new PutTask( URI.create( "dir/sub/dir/file.txt" ) ).setListener( listener ).setDataString( "upload" );
         transporter.put( task );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 6, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 6L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "dir/sub/dir/file.txt" ) ) );
@@ -368,8 +368,8 @@ public class FileTransporterTest
         RecordingTransportListener listener = new RecordingTransportListener();
         PutTask task = new PutTask( URI.create( "some%20space.txt" ) ).setListener( listener ).setDataString( "OK" );
         transporter.put( task );
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 2, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 2L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
         assertEquals( "OK", TestFileUtils.readString( new File( repoDir, "some space.txt" ) ) );
@@ -421,8 +421,8 @@ public class FileTransporterTest
         {
             assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
         }
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 6, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 6L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
         assertFalse( new File( repoDir, "file.txt" ).exists() );
@@ -444,8 +444,8 @@ public class FileTransporterTest
         {
             assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
         }
-        assertEquals( 0, listener.dataOffset );
-        assertEquals( 6, listener.dataLength );
+        assertEquals( 0L, listener.dataOffset );
+        assertEquals( 6L, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 1, listener.progressedCount );
         assertFalse( new File( repoDir, "file.txt" ).exists() );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
index f0b0a6f..1217279 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
@@ -456,11 +456,11 @@ final class HttpTransporter
     private <T extends HttpUriRequest> T resume( T request, GetTask task )
     {
         long resumeOffset = task.getResumeOffset();
-        if ( resumeOffset > 0 && task.getDataFile() != null )
+        if ( resumeOffset > 0L && task.getDataFile() != null )
         {
             request.setHeader( HttpHeaders.RANGE, "bytes=" + Long.toString( resumeOffset ) + '-' );
             request.setHeader( HttpHeaders.IF_UNMODIFIED_SINCE,
-                               DateUtils.formatDate( new Date( task.getDataFile().lastModified() - 60 * 1000 ) ) );
+                               DateUtils.formatDate( new Date( task.getDataFile().lastModified() - 60L * 1000L ) ) );
             request.setHeader( HttpHeaders.ACCEPT_ENCODING, "identity" );
         }
         return request;
@@ -503,7 +503,7 @@ final class HttpTransporter
                 entity = new ByteArrayEntity( new byte[0] );
             }
 
-            long offset = 0, length = entity.getContentLength();
+            long offset = 0L, length = entity.getContentLength();
             String range = getHeader( response, HttpHeaders.CONTENT_RANGE );
             if ( range != null )
             {
@@ -513,8 +513,8 @@ final class HttpTransporter
                     throw new IOException( "Invalid Content-Range header for partial download: " + range );
                 }
                 offset = Long.parseLong( m.group( 1 ) );
-                length = Long.parseLong( m.group( 2 ) ) + 1;
-                if ( offset < 0 || offset >= length || ( offset > 0 && offset != task.getResumeOffset() ) )
+                length = Long.parseLong( m.group( 2 ) ) + 1L;
+                if ( offset < 0L || offset >= length || ( offset > 0L && offset != task.getResumeOffset() ) )
                 {
                     throw new IOException( "Invalid Content-Range header for partial download from offset "
                         + task.getResumeOffset() + ": " + range );
@@ -522,7 +522,7 @@ final class HttpTransporter
             }
 
             InputStream is = entity.getContent();
-            utilGet( task, is, true, length, offset > 0 );
+            utilGet( task, is, true, length, offset > 0L );
             extractChecksums( response );
         }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
index e9a9bfd..77d2141 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
@@ -44,7 +44,7 @@ public final class HttpTransporterFactory
 
     private Logger logger = NullLoggerFactory.LOGGER;
 
-    private float priority = 5;
+    private float priority = 5.0f;
 
     /**
      * Creates an (uninitialized) instance of this transporter factory. <em>Note:</em> In case of manual instantiation

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
index 0a7349f..02438e5 100644
--- a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
+++ b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
@@ -49,7 +49,6 @@ import org.eclipse.jetty.server.nio.SelectChannelConnector;
 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
 import org.eclipse.jetty.util.B64Code;
 import org.eclipse.jetty.util.IO;
-import org.eclipse.jetty.util.StringUtil;
 import org.eclipse.jetty.util.URIUtil;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.slf4j.Logger;
@@ -82,9 +81,22 @@ public class HttpServer
 
     }
 
+    public enum WebDav
+    {
+        /** DAV header advertised, MKCOL required for missing parent directories */
+        REQUIRED,
+        /** DAV header advertised, MKCOL supported but not required */
+        OPTIONAL
+    }
+
     public enum ExpectContinue
     {
-        FAIL, PROPER, BROKEN
+        /** reject request with "Expectation Failed" */
+        FAIL,
+        /** send "Continue" only if request made it past authentication */
+        PROPER,
+        /** send "Continue" before authentication has been checked */
+        BROKEN
     }
 
     public enum ChecksumHeader
@@ -94,11 +106,13 @@ public class HttpServer
 
     private static final Logger log = LoggerFactory.getLogger( HttpServer.class );
 
+    private String serverHeader = "Dummy";
+
     private File repoDir;
 
     private boolean rangeSupport = true;
 
-    private boolean webDav;
+    private WebDav webDav;
 
     private ExpectContinue expectContinue = ExpectContinue.PROPER;
 
@@ -110,6 +124,8 @@ public class HttpServer
 
     private Connector httpsConnector;
 
+    private String credentialEncoding = StandardCharsets.ISO_8859_1.name();
+
     private String username;
 
     private String password;
@@ -156,14 +172,17 @@ public class HttpServer
             ssl.setTrustStorePassword( "client-pwd" );
             ssl.setNeedClientAuth( true );
             httpsConnector = new SslSelectChannelConnector( ssl );
-            server.addConnector( httpsConnector );
-            try
+            if ( server != null )
             {
-                httpsConnector.start();
-            }
-            catch ( Exception e )
-            {
-                throw new IllegalStateException( e );
+                server.addConnector( httpsConnector );
+                try
+                {
+                    httpsConnector.start();
+                }
+                catch ( Exception e )
+                {
+                    throw new IllegalStateException( e );
+                }
             }
         }
         return this;
@@ -174,6 +193,12 @@ public class HttpServer
         return logEntries;
     }
 
+    public HttpServer setServer( String server )
+    {
+        this.serverHeader = server;
+        return this;
+    }
+
     public HttpServer setRepoDir( File repoDir )
     {
         this.repoDir = repoDir;
@@ -186,7 +211,7 @@ public class HttpServer
         return this;
     }
 
-    public HttpServer setWebDav( boolean webDav )
+    public HttpServer setWebDav( WebDav webDav )
     {
         this.webDav = webDav;
         return this;
@@ -204,6 +229,12 @@ public class HttpServer
         return this;
     }
 
+    public HttpServer setCredentialEncoding( String credentialEncoding )
+    {
+        this.credentialEncoding = ( credentialEncoding != null ) ? credentialEncoding : StandardCharsets.ISO_8859_1.name();
+        return this;
+    }
+
     public HttpServer setAuthentication( String username, String password )
     {
         this.username = username;
@@ -229,6 +260,7 @@ public class HttpServer
         httpConnector = new SelectChannelConnector();
 
         HandlerList handlers = new HandlerList();
+        handlers.addHandler( new CommonHandler() );
         handlers.addHandler( new LogHandler() );
         handlers.addHandler( new ProxyAuthHandler() );
         handlers.addHandler( new AuthHandler() );
@@ -237,6 +269,10 @@ public class HttpServer
 
         server = new Server();
         server.addConnector( httpConnector );
+        if ( httpsConnector != null )
+        {
+            server.addConnector( httpsConnector );
+        }
         server.setHandler( handlers );
         server.start();
 
@@ -255,6 +291,18 @@ public class HttpServer
         }
     }
 
+    private class CommonHandler
+        extends AbstractHandler
+    {
+
+        public void handle( String target, Request req, HttpServletRequest request, HttpServletResponse response )
+            throws IOException
+        {
+            response.setHeader( HttpHeaders.SERVER, serverHeader );
+        }
+
+    }
+
     private class LogHandler
         extends AbstractHandler
     {
@@ -318,12 +366,12 @@ public class HttpServer
                     return;
                 }
                 long ifUnmodifiedSince = request.getDateHeader( HttpHeaders.IF_UNMODIFIED_SINCE );
-                if ( ifUnmodifiedSince != -1 && file.lastModified() > ifUnmodifiedSince )
+                if ( ifUnmodifiedSince != -1L && file.lastModified() > ifUnmodifiedSince )
                 {
                     response.setStatus( HttpServletResponse.SC_PRECONDITION_FAILED );
                     return;
                 }
-                long offset = 0;
+                long offset = 0L;
                 String range = request.getHeader( HttpHeaders.RANGE );
                 if ( range != null && rangeSupport )
                 {
@@ -338,18 +386,18 @@ public class HttpServer
                         }
                     }
                     String encoding = request.getHeader( HttpHeaders.ACCEPT_ENCODING );
-                    if ( ( encoding != null && !"identity".equals( encoding ) ) || ifUnmodifiedSince == -1 )
+                    if ( ( encoding != null && !"identity".equals( encoding ) ) || ifUnmodifiedSince == -1L )
                     {
                         response.setStatus( HttpServletResponse.SC_BAD_REQUEST );
                         return;
                     }
                 }
-                response.setStatus( ( offset > 0 ) ? HttpServletResponse.SC_PARTIAL_CONTENT : HttpServletResponse.SC_OK );
+                response.setStatus( ( offset > 0L ) ? HttpServletResponse.SC_PARTIAL_CONTENT : HttpServletResponse.SC_OK );
                 response.setDateHeader( HttpHeaders.LAST_MODIFIED, file.lastModified() );
                 response.setHeader( HttpHeaders.CONTENT_LENGTH, Long.toString( file.length() - offset ) );
-                if ( offset > 0 )
+                if ( offset > 0L )
                 {
-                    response.setHeader( HttpHeaders.CONTENT_RANGE, "bytes " + offset + "-" + ( file.length() - 1 )
+                    response.setHeader( HttpHeaders.CONTENT_RANGE, "bytes " + offset + "-" + ( file.length() - 1L )
                         + "/" + file.length() );
                 }
                 if ( checksumHeader != null )
@@ -366,11 +414,10 @@ public class HttpServer
                 {
                     return;
                 }
-                FileInputStream is = null;
+                FileInputStream is = new FileInputStream( file );
                 try
                 {
-                    is = new FileInputStream( file );
-                    if ( offset > 0 )
+                    if ( offset > 0L )
                     {
                         long skipped = is.skip( offset );
                         while ( skipped < offset && is.read() >= 0 )
@@ -379,27 +426,15 @@ public class HttpServer
                         }
                     }
                     IO.copy( is, response.getOutputStream() );
-                    is.close();
-                    is = null;
                 }
                 finally
                 {
-                    try
-                    {
-                        if ( is != null )
-                        {
-                            is.close();
-                        }
-                    }
-                    catch ( final IOException e )
-                    {
-                        // Suppressed due to an exception already thrown in the try block.
-                    }
+                    IO.close( is );
                 }
             }
             else if ( HttpMethods.PUT.equals( req.getMethod() ) )
             {
-                if ( !webDav )
+                if ( !WebDav.REQUIRED.equals( webDav ) )
                 {
                     file.getParentFile().mkdirs();
                 }
@@ -407,27 +442,14 @@ public class HttpServer
                 {
                     try
                     {
-                        FileOutputStream os = null;
+                        FileOutputStream os = new FileOutputStream( file );
                         try
                         {
-                            os = new FileOutputStream( file );
                             IO.copy( request.getInputStream(), os );
-                            os.close();
-                            os = null;
                         }
                         finally
                         {
-                            try
-                            {
-                                if ( os != null )
-                                {
-                                    os.close();
-                                }
-                            }
-                            catch ( final IOException e )
-                            {
-                                // Suppressed due to an exception already thrown in the try block.
-                            }
+                            os.close();
                         }
                     }
                     catch ( IOException e )
@@ -444,14 +466,14 @@ public class HttpServer
             }
             else if ( HttpMethods.OPTIONS.equals( req.getMethod() ) )
             {
-                if ( webDav )
+                if ( webDav != null )
                 {
                     response.setHeader( "DAV", "1,2" );
                 }
                 response.setHeader( HttpHeaders.ALLOW, "GET, PUT, HEAD, OPTIONS" );
                 response.setStatus( HttpServletResponse.SC_OK );
             }
-            else if ( webDav && "MKCOL".equals( req.getMethod() ) )
+            else if ( webDav != null && "MKCOL".equals( req.getMethod() ) )
             {
                 if ( file.exists() )
                 {
@@ -489,11 +511,17 @@ public class HttpServer
             req.setHandled( true );
             StringBuilder location = new StringBuilder( 128 );
             String scheme = req.getParameter( "scheme" );
+            String host = req.getParameter( "host" );
+            String port = req.getParameter( "port" );
             location.append( scheme != null ? scheme : req.getScheme() );
             location.append( "://" );
-            location.append( req.getServerName() );
+            location.append( host != null ? host : req.getServerName() );
             location.append( ":" );
-            if ( "http".equalsIgnoreCase( scheme ) )
+            if ( port != null )
+            {
+                location.append( port );
+            }
+            else if ( "http".equalsIgnoreCase( scheme ) )
             {
                 location.append( getHttpPort() );
             }
@@ -560,7 +588,7 @@ public class HttpServer
 
     }
 
-    static boolean checkBasicAuth( String credentials, String username, String password )
+    boolean checkBasicAuth( String credentials, String username, String password )
     {
         if ( credentials != null )
         {
@@ -573,7 +601,7 @@ public class HttpServer
                     credentials = credentials.substring( space + 1 );
                     try
                     {
-                        credentials = B64Code.decode( credentials, StringUtil.__ISO_8859_1 );
+                        credentials = B64Code.decode( credentials, credentialEncoding );
                     }
                     catch ( UnsupportedEncodingException e )
                     {