[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 <micha...@apache.org> Authored: Tue Nov 1 00:35:27 2016 +0100 Committer: Michael Osipov <micha...@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 ) {