From 031d27823cf99fc71ba4764f9accecb7083a3935 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 27 Jun 2018 13:40:51 +0200 Subject: Fix FindBugs complaints --- src/main/java/org/openslx/filetransfer/FileRange.java | 8 ++++++++ .../java/org/openslx/filetransfer/util/HashChecker.java | 16 +++++++++++++--- .../openslx/filetransfer/util/IncomingTransferBase.java | 1 - .../org/openslx/filetransfer/util/LocalCopyManager.java | 14 ++++++++++++-- src/main/java/org/openslx/util/Util.java | 4 ++-- src/main/java/org/openslx/util/vm/QemuMetaData.java | 5 +++-- src/main/java/org/openslx/util/vm/VmwareConfig.java | 2 +- 7 files changed, 39 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/openslx/filetransfer/FileRange.java b/src/main/java/org/openslx/filetransfer/FileRange.java index 5de9d04..e8a7d12 100644 --- a/src/main/java/org/openslx/filetransfer/FileRange.java +++ b/src/main/java/org/openslx/filetransfer/FileRange.java @@ -50,10 +50,18 @@ public class FileRange @Override public boolean equals( Object other ) { + if ( other == this ) + return true; if ( other == null || ! ( other instanceof FileRange ) ) return false; FileRange o = (FileRange)other; return o.startOffset == this.startOffset && o.endOffset == this.endOffset; } + @Override + public int hashCode() + { + return (int)startOffset ^ Integer.rotateLeft( (int)endOffset, 16 ) ^ (int)(startOffset >> 32); + } + } diff --git a/src/main/java/org/openslx/filetransfer/util/HashChecker.java b/src/main/java/org/openslx/filetransfer/util/HashChecker.java index 2c404db..bddf829 100644 --- a/src/main/java/org/openslx/filetransfer/util/HashChecker.java +++ b/src/main/java/org/openslx/filetransfer/util/HashChecker.java @@ -39,9 +39,6 @@ public class HashChecker this.algorithm = algorithm; this.queueCapacity = queueLen; this.queue = new LinkedBlockingQueue<>( queueLen ); - CheckThread thread = new CheckThread( false ); - thread.start(); - threads.add( thread ); } private void threadFailed( CheckThread thread ) @@ -109,6 +106,19 @@ public class HashChecker execCallback( task, HashResult.FAILURE ); return true; } + if ( queue.isEmpty() ) { + CheckThread thread; + try { + thread = new CheckThread( false ); + thread.start(); + threads.add( thread ); + } catch ( NoSuchAlgorithmException e1 ) { + LOGGER.warn( "Cannot spawn hash thread", e1 ); + invalid = true; + execCallback( task, HashResult.FAILURE ); + return true; + } + } if ( queue.remainingCapacity() <= 1 && threads.size() < Runtime.getRuntime().availableProcessors() ) { try { CheckThread thread = new CheckThread( true ); diff --git a/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java b/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java index 0e901e5..a1d3548 100644 --- a/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java +++ b/src/main/java/org/openslx/filetransfer/util/IncomingTransferBase.java @@ -117,7 +117,6 @@ public abstract class IncomingTransferBase extends AbstractTransfer implements H chunks = new ChunkList( fileSize, blockHashes ); if ( this.localChunkSource != null ) { this.localCopyManager = new LocalCopyManager( this, this.chunks ); - this.localCopyManager.start(); checkLocalCopyCandidates( blockHashes, 0 ); } else { this.localCopyManager = null; diff --git a/src/main/java/org/openslx/filetransfer/util/LocalCopyManager.java b/src/main/java/org/openslx/filetransfer/util/LocalCopyManager.java index 8943524..54dd2d0 100644 --- a/src/main/java/org/openslx/filetransfer/util/LocalCopyManager.java +++ b/src/main/java/org/openslx/filetransfer/util/LocalCopyManager.java @@ -44,6 +44,16 @@ public class LocalCopyManager extends Thread * Trigger copying of another block if possible */ public synchronized void trigger() + { + if ( this.paused ) + return; + if ( this.getState() == State.NEW ) { + start(); + } + triggerInternal(); + } + + private synchronized void triggerInternal() { if ( this.paused ) return; @@ -77,7 +87,7 @@ public class LocalCopyManager extends Thread } else if ( !transfer.isActive() ) { break; } else { - trigger(); + triggerInternal(); } } } @@ -149,7 +159,7 @@ public class LocalCopyManager extends Thread currentChunk = null; } copyCount.incrementAndGet(); - trigger(); + triggerInternal(); return; } // Reaching here means failure diff --git a/src/main/java/org/openslx/util/Util.java b/src/main/java/org/openslx/util/Util.java index d8048cd..441bc88 100644 --- a/src/main/java/org/openslx/util/Util.java +++ b/src/main/java/org/openslx/util/Util.java @@ -25,7 +25,7 @@ public class Util if ( something == null ) { if ( message != null ) log.fatal( "[NOTNULL] " + message ); - log.warn( Thread.currentThread().getStackTrace().toString() ); + log.warn( "Fatal null pointer exception", new NullPointerException() ); System.exit( 2 ); } } @@ -61,7 +61,7 @@ public class Util if ( isEmptyString( something ) ) { if ( message != null ) log.fatal( "[NOTNULL] " + message ); - log.warn( Thread.currentThread().getStackTrace().toString() ); + log.warn( "Fatal null pointer or empty exception", new NullPointerException() ); System.exit( 2 ); } } diff --git a/src/main/java/org/openslx/util/vm/QemuMetaData.java b/src/main/java/org/openslx/util/vm/QemuMetaData.java index 742fa40..ad02a96 100644 --- a/src/main/java/org/openslx/util/vm/QemuMetaData.java +++ b/src/main/java/org/openslx/util/vm/QemuMetaData.java @@ -14,9 +14,9 @@ import org.openslx.thrifthelper.TConst; public class QemuMetaData extends VmMetaData { - private Map arguments = new HashMap(); + private final Map arguments = new HashMap(); // the above map's elements will take the place of in the config string - private static String config = "qemu-system-i386 -enable-kvm \n\r qemu-system-x86_64 -enable-kvm"; + private String config; private static final Logger LOGGER = Logger.getLogger( QemuMetaData.class ); private static final Virtualizer virtualizer = new Virtualizer( TConst.VIRT_QEMU, "QEMU-KVM" ); @@ -24,6 +24,7 @@ public class QemuMetaData extends VmMetaData osList, File file ) { super( osList ); + config = "qemu-system-i386 -enable-kvm \n\r qemu-system-x86_64 -enable-kvm"; displayName = file.getName().substring( 0, file.getName().indexOf( "." ) ); setOs( "anyOs" ); hdds.add( new HardDisk( "anychipset", DriveBusType.IDE, file.getAbsolutePath() ) ); diff --git a/src/main/java/org/openslx/util/vm/VmwareConfig.java b/src/main/java/org/openslx/util/vm/VmwareConfig.java index ac13e4f..20ab3ab 100644 --- a/src/main/java/org/openslx/util/vm/VmwareConfig.java +++ b/src/main/java/org/openslx/util/vm/VmwareConfig.java @@ -125,7 +125,7 @@ public class VmwareConfig ret = ret.replace( "|22", "\"" ); } if ( ret.contains( "|7C" ) ) { - ret.replace( "|7C", "|" ); + ret = ret.replace( "|7C", "|" ); } return ret; } -- cgit v1.2.3-55-g7522