diff --git a/core/src/main/java/org/bitcoin/NativeSecp256k1.java b/core/src/main/java/org/bitcoin/NativeSecp256k1.java index 40ae76d7c..76e090036 100644 --- a/core/src/main/java/org/bitcoin/NativeSecp256k1.java +++ b/core/src/main/java/org/bitcoin/NativeSecp256k1.java @@ -42,7 +42,7 @@ public class NativeSecp256k1 { private static final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); private static final Lock r = rwl.readLock(); private static final Lock w = rwl.writeLock(); - private static ThreadLocal nativeECDSABuffer = new ThreadLocal(); + private static ThreadLocal nativeECDSABuffer = new ThreadLocal<>(); /** * Verifies the given secp256k1 signature in native code. Calling when enabled == false is undefined (probably diff --git a/core/src/main/java/org/bitcoinj/core/AbstractBlockChain.java b/core/src/main/java/org/bitcoinj/core/AbstractBlockChain.java index 04820d2fa..266ee6d20 100644 --- a/core/src/main/java/org/bitcoinj/core/AbstractBlockChain.java +++ b/core/src/main/java/org/bitcoinj/core/AbstractBlockChain.java @@ -121,7 +121,7 @@ public abstract class AbstractBlockChain { } // Holds blocks that we have received but can't plug into the chain yet, eg because they were created whilst we // were downloading the block chain. - private final LinkedHashMap orphanBlocks = new LinkedHashMap(); + private final LinkedHashMap orphanBlocks = new LinkedHashMap<>(); /** False positive estimation uses a double exponential moving average. */ public static final double FP_ESTIMATOR_ALPHA = 0.0001; @@ -150,9 +150,9 @@ public abstract class AbstractBlockChain { log.info("chain head is at height {}:\n{}", chainHead.getHeight(), chainHead.getHeader()); this.params = context.getParams(); - this.newBestBlockListeners = new CopyOnWriteArrayList>(); - this.reorganizeListeners = new CopyOnWriteArrayList>(); - this.transactionReceivedListeners = new CopyOnWriteArrayList>(); + this.newBestBlockListeners = new CopyOnWriteArrayList<>(); + this.reorganizeListeners = new CopyOnWriteArrayList<>(); + this.transactionReceivedListeners = new CopyOnWriteArrayList<>(); for (NewBestBlockListener l : wallets) addNewBestBlockListener(Threading.SAME_THREAD, l); for (ReorganizeListener l : wallets) addReorganizeListener(Threading.SAME_THREAD, l); for (TransactionReceivedInBlockListener l : wallets) addTransactionReceivedListener(Threading.SAME_THREAD, l); @@ -230,7 +230,7 @@ public abstract class AbstractBlockChain { * Adds a {@link NewBestBlockListener} listener to the chain. */ public final void addNewBestBlockListener(Executor executor, NewBestBlockListener listener) { - newBestBlockListeners.add(new ListenerRegistration(listener, executor)); + newBestBlockListeners.add(new ListenerRegistration<>(listener, executor)); } /** @@ -244,7 +244,7 @@ public abstract class AbstractBlockChain { * Adds a generic {@link ReorganizeListener} listener to the chain. */ public final void addReorganizeListener(Executor executor, ReorganizeListener listener) { - reorganizeListeners.add(new ListenerRegistration(listener, executor)); + reorganizeListeners.add(new ListenerRegistration<>(listener, executor)); } /** @@ -258,7 +258,7 @@ public abstract class AbstractBlockChain { * Adds a generic {@link TransactionReceivedInBlockListener} listener to the chain. */ public final void addTransactionReceivedListener(Executor executor, TransactionReceivedInBlockListener listener) { - transactionReceivedListeners.add(new ListenerRegistration(listener, executor)); + transactionReceivedListeners.add(new ListenerRegistration<>(listener, executor)); } /** @@ -506,7 +506,7 @@ public abstract class AbstractBlockChain { public Set drainOrphanBlocks() { lock.lock(); try { - Set hashes = new HashSet(orphanBlocks.keySet()); + Set hashes = new HashSet<>(orphanBlocks.keySet()); orphanBlocks.clear(); return hashes; } finally { @@ -818,7 +818,7 @@ public abstract class AbstractBlockChain { */ private static LinkedList getPartialChain(StoredBlock higher, StoredBlock lower, BlockStore store) throws BlockStoreException { checkArgument(higher.getHeight() > lower.getHeight(), "higher and lower are reversed"); - LinkedList results = new LinkedList(); + LinkedList results = new LinkedList<>(); StoredBlock cursor = higher; while (true) { results.add(cursor); diff --git a/core/src/main/java/org/bitcoinj/core/AddressMessage.java b/core/src/main/java/org/bitcoinj/core/AddressMessage.java index b4053852d..9ef091496 100644 --- a/core/src/main/java/org/bitcoinj/core/AddressMessage.java +++ b/core/src/main/java/org/bitcoinj/core/AddressMessage.java @@ -76,7 +76,7 @@ public class AddressMessage extends Message { // Guard against ultra large messages that will crash us. if (numAddresses > MAX_ADDRESSES) throw new ProtocolException("Address message too large."); - addresses = new ArrayList((int) numAddresses); + addresses = new ArrayList<>((int) numAddresses); for (int i = 0; i < numAddresses; i++) { PeerAddress addr = new PeerAddress(params, payload, cursor, protocolVersion, this, serializer); addresses.add(addr); diff --git a/core/src/main/java/org/bitcoinj/core/AlertMessage.java b/core/src/main/java/org/bitcoinj/core/AlertMessage.java index 2e6e9e419..7c1ecc102 100644 --- a/core/src/main/java/org/bitcoinj/core/AlertMessage.java +++ b/core/src/main/java/org/bitcoinj/core/AlertMessage.java @@ -87,7 +87,7 @@ public class AlertMessage extends Message { } // Using a hashset here is very inefficient given that this will normally be only one item. But Java doesn't // make it easy to do better. What we really want is just an array-backed set. - Set cancelSet = new HashSet((int) cancelSetSize); + Set cancelSet = new HashSet<>((int) cancelSetSize); for (long i = 0; i < cancelSetSize; i++) { cancelSet.add(readUint32()); } @@ -98,7 +98,7 @@ public class AlertMessage extends Message { if (subverSetSize < 0 || subverSetSize > MAX_SET_SIZE) { throw new ProtocolException("Bad subver set size: " + subverSetSize); } - Set matchingSubVers = new HashSet((int) subverSetSize); + Set matchingSubVers = new HashSet<>((int) subverSetSize); for (long i = 0; i < subverSetSize; i++) { matchingSubVers.add(readStr()); } diff --git a/core/src/main/java/org/bitcoinj/core/BitcoinSerializer.java b/core/src/main/java/org/bitcoinj/core/BitcoinSerializer.java index 6f68e00c6..82f8911f6 100644 --- a/core/src/main/java/org/bitcoinj/core/BitcoinSerializer.java +++ b/core/src/main/java/org/bitcoinj/core/BitcoinSerializer.java @@ -48,7 +48,7 @@ public class BitcoinSerializer extends MessageSerializer { private final NetworkParameters params; private final boolean parseRetain; - private static final Map, String> names = new HashMap, String>(); + private static final Map, String> names = new HashMap<>(); static { names.put(VersionMessage.class, "version"); diff --git a/core/src/main/java/org/bitcoinj/core/Block.java b/core/src/main/java/org/bitcoinj/core/Block.java index 08b14283f..7f3d4cf3e 100644 --- a/core/src/main/java/org/bitcoinj/core/Block.java +++ b/core/src/main/java/org/bitcoinj/core/Block.java @@ -201,7 +201,7 @@ public class Block extends Message { this.time = time; this.difficultyTarget = difficultyTarget; this.nonce = nonce; - this.transactions = new LinkedList(); + this.transactions = new LinkedList<>(); this.transactions.addAll(transactions); } @@ -237,7 +237,7 @@ public class Block extends Message { int numTransactions = (int) readVarInt(); optimalEncodingMessageSize += VarInt.sizeOf(numTransactions); - transactions = new ArrayList(numTransactions); + transactions = new ArrayList<>(numTransactions); for (int i = 0; i < numTransactions; i++) { Transaction tx = new Transaction(params, payload, cursor, this, serializer, UNKNOWN_LENGTH); // Label the transaction as coming from the P2P network, so code that cares where we first saw it knows. @@ -619,7 +619,7 @@ public class Block extends Message { // 2 3 4 4 // / \ / \ / \ // t1 t2 t3 t4 t5 t5 - ArrayList tree = new ArrayList(); + ArrayList tree = new ArrayList<>(); // Start by adding all the hashes of the transactions as leaves of the tree. for (Transaction t : transactions) { tree.add(t.getHash().getBytes()); @@ -760,7 +760,7 @@ public class Block extends Message { void addTransaction(Transaction t, boolean runSanityChecks) { unCacheTransactions(); if (transactions == null) { - transactions = new ArrayList(); + transactions = new ArrayList<>(); } t.setParent(this); if (runSanityChecks && transactions.size() == 0 && !t.isCoinBase()) @@ -867,7 +867,7 @@ public class Block extends Message { @VisibleForTesting void addCoinbaseTransaction(byte[] pubKeyTo, Coin value, final int height) { unCacheTransactions(); - transactions = new ArrayList(); + transactions = new ArrayList<>(); Transaction coinbase = new Transaction(params); final ScriptBuilder inputBuilder = new ScriptBuilder(); diff --git a/core/src/main/java/org/bitcoinj/core/BloomFilter.java b/core/src/main/java/org/bitcoinj/core/BloomFilter.java index 9f310a19b..0e3d66151 100644 --- a/core/src/main/java/org/bitcoinj/core/BloomFilter.java +++ b/core/src/main/java/org/bitcoinj/core/BloomFilter.java @@ -301,7 +301,7 @@ public class BloomFilter extends Message { */ public synchronized FilteredBlock applyAndUpdate(Block block) { List txns = block.getTransactions(); - List txHashes = new ArrayList(txns.size()); + List txHashes = new ArrayList<>(txns.size()); List matched = Lists.newArrayList(); byte[] bits = new byte[(int) Math.ceil(txns.size() / 8.0)]; for (int i = 0; i < txns.size(); i++) { diff --git a/core/src/main/java/org/bitcoinj/core/CheckpointManager.java b/core/src/main/java/org/bitcoinj/core/CheckpointManager.java index c9d3628c6..20a746a2e 100644 --- a/core/src/main/java/org/bitcoinj/core/CheckpointManager.java +++ b/core/src/main/java/org/bitcoinj/core/CheckpointManager.java @@ -76,7 +76,7 @@ public class CheckpointManager { private static final int MAX_SIGNATURES = 256; // Map of block header time to data. - protected final TreeMap checkpoints = new TreeMap(); + protected final TreeMap checkpoints = new TreeMap<>(); protected final NetworkParameters params; protected final Sha256Hash dataHash; diff --git a/core/src/main/java/org/bitcoinj/core/Context.java b/core/src/main/java/org/bitcoinj/core/Context.java index 1f0debe85..4997f1ead 100644 --- a/core/src/main/java/org/bitcoinj/core/Context.java +++ b/core/src/main/java/org/bitcoinj/core/Context.java @@ -89,7 +89,7 @@ public class Context { private static volatile Context lastConstructed; private static boolean isStrictMode; - private static final ThreadLocal slot = new ThreadLocal(); + private static final ThreadLocal slot = new ThreadLocal<>(); /** * Returns the current context that is associated with the calling thread. BitcoinJ is an API that has thread diff --git a/core/src/main/java/org/bitcoinj/core/FilteredBlock.java b/core/src/main/java/org/bitcoinj/core/FilteredBlock.java index 84def7e4d..0e7efe18d 100644 --- a/core/src/main/java/org/bitcoinj/core/FilteredBlock.java +++ b/core/src/main/java/org/bitcoinj/core/FilteredBlock.java @@ -36,7 +36,7 @@ public class FilteredBlock extends Message { // A set of transactions whose hashes are a subset of getTransactionHashes() // These were relayed as a part of the filteredblock getdata, ie likely weren't previously received as loose transactions - private Map associatedTransactions = new HashMap(); + private Map associatedTransactions = new HashMap<>(); public FilteredBlock(NetworkParameters params, byte[] payloadBytes) throws ProtocolException { super(params, payloadBytes, 0); @@ -76,7 +76,7 @@ public class FilteredBlock extends Message { public List getTransactionHashes() throws VerificationException { if (cachedTransactionHashes != null) return Collections.unmodifiableList(cachedTransactionHashes); - List hashesMatched = new LinkedList(); + List hashesMatched = new LinkedList<>(); if (header.getMerkleRoot().equals(merkleTree.getTxnHashAndMerkleRoot(hashesMatched))) { cachedTransactionHashes = hashesMatched; return Collections.unmodifiableList(cachedTransactionHashes); diff --git a/core/src/main/java/org/bitcoinj/core/FullPrunedBlockChain.java b/core/src/main/java/org/bitcoinj/core/FullPrunedBlockChain.java index 4bdebbce2..d1f2810dd 100644 --- a/core/src/main/java/org/bitcoinj/core/FullPrunedBlockChain.java +++ b/core/src/main/java/org/bitcoinj/core/FullPrunedBlockChain.java @@ -217,14 +217,14 @@ public class FullPrunedBlockChain extends AbstractBlockChain { blockStore.beginDatabaseBatchWrite(); - LinkedList txOutsSpent = new LinkedList(); - LinkedList txOutsCreated = new LinkedList(); + LinkedList txOutsSpent = new LinkedList<>(); + LinkedList txOutsCreated = new LinkedList<>(); long sigOps = 0; if (scriptVerificationExecutor.isShutdown()) scriptVerificationExecutor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); - List> listScriptVerificationResults = new ArrayList>(block.transactions.size()); + List> listScriptVerificationResults = new ArrayList<>(block.transactions.size()); try { if (!params.isCheckpoint(height)) { // BIP30 violator blocks are ones that contain a duplicated transaction. They are all in the @@ -247,7 +247,7 @@ public class FullPrunedBlockChain extends AbstractBlockChain { boolean isCoinBase = tx.isCoinBase(); Coin valueIn = Coin.ZERO; Coin valueOut = Coin.ZERO; - final List