Michael Blow has submitted this change and it was merged. Change subject: Misc Cleanup, SonarQube Fixes ......................................................................
Misc Cleanup, SonarQube Fixes Change-Id: If87126cdd435067a50087e339522a36021fbc2c0 Reviewed-on: https://asterix-gerrit.ics.uci.edu/1108 Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Till Westmann <ti...@apache.org> --- M asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/FuzzyJoinMemory.java M asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthCount.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADouble.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AFloat.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java M asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/client/HyracksConnection.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/dataset/DatasetDirectoryService.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/TriggerNCWork.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java 11 files changed, 67 insertions(+), 82 deletions(-) Approvals: Till Westmann: Looks good to me, approved Jenkins: Verified; No violations found; Verified diff --git a/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/FuzzyJoinMemory.java b/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/FuzzyJoinMemory.java index 0e6164b..9107f63 100644 --- a/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/FuzzyJoinMemory.java +++ b/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/FuzzyJoinMemory.java @@ -21,7 +21,6 @@ import java.io.BufferedInputStream; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -35,13 +34,13 @@ import org.apache.asterix.fuzzyjoin.similarity.SimilarityFiltersJaccard; public class FuzzyJoinMemory { - public static void main(String[] args) { + public static void main(String[] args) throws IOException { if (args.length < 2) { System.err.println("Usage: <threshold> <file> [no runs, e.g., 1] [warm-up factor, e.g., 1]"); System.exit(2); } - float similarityThreshold = Float.valueOf(args[0]); + float similarityThreshold = Float.parseFloat(args[0]); String fileName = args[1]; int noRuns = 1, warmUpFactor = 1; @@ -55,8 +54,8 @@ System.err.println("Document: " + fileName); System.err.println("... LOADING DATASET ..."); - ArrayList<int[]> records = new ArrayList<int[]>(); - ArrayList<Integer> rids = new ArrayList<Integer>(); + ArrayList<int[]> records = new ArrayList<>(); + ArrayList<Integer> rids = new ArrayList<>(); FuzzyJoinMemory fj = new FuzzyJoinMemory(similarityThreshold); @@ -79,38 +78,32 @@ } } - public static void readRecords(String fileName, List<int[]> records, List<Integer> rids) { - LittleEndianIntInputStream in; - try { - in = new LittleEndianIntInputStream(new BufferedInputStream(new FileInputStream(fileName))); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } + @SuppressWarnings("squid:S1166") // Either log or rethrow this exception + public static void readRecords(String fileName, List<int[]> records, List<Integer> rids) throws IOException { + try (LittleEndianIntInputStream in = + new LittleEndianIntInputStream(new BufferedInputStream(new FileInputStream(fileName)))) { - while (true) { - int rid = 0; - try { - rid = in.readInt(); - } catch (IOException e) { - // FILE_EXPECTED reach of EOF - break; - } + while (true) { + int rid = 0; + try { + rid = in.readInt(); + } catch (IOException e) { + // FILE_EXPECTED reach of EOF + break; + } - rids.add(rid); - int[] record; + rids.add(rid); + int[] record; - try { int size = in.readInt(); record = new int[size]; for (int j = 0; j < size; j++) { int token = in.readInt(); record[j] = token; } - } catch (IOException e) { - throw new RuntimeException(e); - } - records.add(record); + records.add(record); + } } } @@ -122,7 +115,7 @@ public FuzzyJoinMemory(float similarityThreshold) { invertedLists = new InvertedListsLengthList(); similarityFilters = new SimilarityFiltersJaccard(similarityThreshold); - records = new ArrayList<int[]>(); + records = new ArrayList<>(); } public void add(final int[] tokens) { @@ -142,7 +135,7 @@ // // self join // - final HashMap<Integer, Integer> counts = new HashMap<Integer, Integer>(); + final HashMap<Integer, Integer> counts = new HashMap<>(); for (int indexToken = 0; indexToken < Math.min(prefixLength, tokens.length); indexToken++) { final int token = tokens[indexToken]; // @@ -182,7 +175,7 @@ // // verify candidates // - ArrayList<ResultJoin> results = new ArrayList<ResultJoin>(); + ArrayList<ResultJoin> results = new ArrayList<>(); for (Map.Entry<Integer, Integer> cand : counts.entrySet()) { int count = cand.getValue(); int indexProbe = cand.getKey(); @@ -205,12 +198,12 @@ public List<ResultSelfJoin> runs(Collection<int[]> records, int noRuns, int warmupFactor) { if (records.size() < 2) { - return new ArrayList<ResultSelfJoin>(); + return new ArrayList<>(); } int noRunsTotal = noRuns * warmupFactor; float runtime = 0, runtimeAverage = 0; - ArrayList<ResultSelfJoin> results = new ArrayList<ResultSelfJoin>(); + ArrayList<ResultSelfJoin> results = new ArrayList<>(); System.err.println("# Records: " + records.size()); System.err.print("=== BEGIN JOIN (TIMER STARTED) === "); @@ -249,7 +242,7 @@ // // self join // - final HashMap<Integer, Integer> counts = new HashMap<Integer, Integer>(); + final HashMap<Integer, Integer> counts = new HashMap<>(); for (int indexToken = 0; indexToken < prefixLength; indexToken++) { final int token = tokens[indexToken]; // @@ -299,7 +292,7 @@ // // verify candidates // - ArrayList<ResultSelfJoin> results = new ArrayList<ResultSelfJoin>(); + ArrayList<ResultSelfJoin> results = new ArrayList<>(); for (Map.Entry<Integer, Integer> cand : counts.entrySet()) { int count = cand.getValue(); int indexProbe = cand.getKey(); diff --git a/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthCount.java b/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthCount.java index 5cd7994..0095d14 100644 --- a/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthCount.java +++ b/asterixdb/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthCount.java @@ -38,8 +38,7 @@ int sum = 0; int range = 0; - try { - DataInputStream in = new DataInputStream(new FileInputStream(lengthstatsPath.toString())); + try (DataInputStream in = new DataInputStream(new FileInputStream(lengthstatsPath))) { min = in.readInt(); max = in.readInt(); range = max - min + 1; diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADouble.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADouble.java index 3817160..4746773 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADouble.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ADouble.java @@ -53,7 +53,7 @@ public boolean equals(Object obj) { if (!(obj instanceof ADouble)) return false; - return value == (((ADouble) obj).getDoubleValue()); + return Double.doubleToLongBits(value) == Double.doubleToLongBits(((ADouble) obj).getDoubleValue()); } @Override diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AFloat.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AFloat.java index d73ab48..50d1825 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AFloat.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/AFloat.java @@ -48,7 +48,7 @@ if (!(o instanceof AFloat)) { return false; } else { - return value == (((AFloat) o).getFloatValue()); + return Float.floatToIntBits(value) == Float.floatToIntBits(((AFloat) o).getFloatValue()); } } diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java index 9eddd7f..f8b1d60 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java @@ -42,7 +42,7 @@ @Override public boolean equals(Object object) { - return this.deepEqual((IAObject) object); + return object instanceof IAObject && deepEqual((IAObject) object); } public abstract boolean containsType(IAType type); diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java index f556de5..809578b 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java @@ -863,7 +863,7 @@ @Override public boolean equals(Object object) { - return this.deepEqual((IAObject) object); + return object instanceof IAObject && deepEqual((IAObject) object); } @Override diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java index 0c94c61..de287e0 100644 --- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java +++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java @@ -54,11 +54,9 @@ long startTime = System.currentTimeMillis(); InetSocketAddress replicaAddress = replica.getAddress(asterixReplicationProperties); - SocketChannel connection = null; while (true) { - try { - connection = SocketChannel.open(); + try (SocketChannel connection = SocketChannel.open()) { connection.configureBlocking(true); connection.connect(new InetSocketAddress(replicaAddress.getHostString(), replicaAddress.getPort())); ByteBuffer buffer = ReplicationProtocol.getGoodbyeBuffer(); @@ -72,12 +70,6 @@ if (((System.currentTimeMillis() - startTime) / 1000) >= replicationTimeOut) { replicationManager.updateReplicaState(replica.getId(), ReplicaState.DEAD, suspendReplication); return null; - } else { - continue; - } - } finally { - if (connection.isOpen()) { - connection.close(); } } } diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/client/HyracksConnection.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/client/HyracksConnection.java index b57442d..3f1ced6 100644 --- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/client/HyracksConnection.java +++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/client/HyracksConnection.java @@ -28,11 +28,10 @@ import java.util.UUID; import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPut; import org.apache.http.entity.FileEntity; +import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.DefaultHttpClient; - import org.apache.hyracks.api.client.impl.JobSpecificationActivityClusterGraphGeneratorFactory; import org.apache.hyracks.api.comm.NetworkAddress; import org.apache.hyracks.api.deployment.DeploymentId; @@ -130,27 +129,29 @@ public DeploymentId deployBinary(List<String> jars) throws Exception { /** generate a deployment id */ DeploymentId deploymentId = new DeploymentId(UUID.randomUUID().toString()); - List<URL> binaryURLs = new ArrayList<URL>(); - if (jars != null && jars.size() > 0) { - HttpClient hc = new DefaultHttpClient(); - /** upload jars through a http client one-by-one to the CC server */ - for (String jar : jars) { - int slashIndex = jar.lastIndexOf('/'); - String fileName = jar.substring(slashIndex + 1); - String url = "http://" + ccHost + ":" + ccInfo.getWebPort() + "/applications/" - + deploymentId.toString() + "&" + fileName; - HttpPut put = new HttpPut(url); - put.setEntity(new FileEntity(new File(jar), "application/octet-stream")); - HttpResponse response = hc.execute(put); - if (response != null) { + List<URL> binaryURLs = new ArrayList<>(); + if (jars != null && !jars.isEmpty()) { + CloseableHttpClient hc = new DefaultHttpClient(); + try { + /** upload jars through a http client one-by-one to the CC server */ + for (String jar : jars) { + int slashIndex = jar.lastIndexOf('/'); + String fileName = jar.substring(slashIndex + 1); + String url = "http://" + ccHost + ":" + ccInfo.getWebPort() + "/applications/" + + deploymentId.toString() + "&" + fileName; + HttpPut put = new HttpPut(url); + put.setEntity(new FileEntity(new File(jar), "application/octet-stream")); + HttpResponse response = hc.execute(put); response.getEntity().consumeContent(); + if (response.getStatusLine().getStatusCode() != 200) { + hci.unDeployBinary(deploymentId); + throw new HyracksException(response.getStatusLine().toString()); + } + /** add the uploaded URL address into the URLs of jars to be deployed at NCs */ + binaryURLs.add(new URL(url)); } - if (response.getStatusLine().getStatusCode() != 200) { - hci.unDeployBinary(deploymentId); - throw new HyracksException(response.getStatusLine().toString()); - } - /** add the uploaded URL address into the URLs of jars to be deployed at NCs */ - binaryURLs.add(new URL(url)); + } finally { + hc.close(); } } /** deploy the URLs to the CC and NCs */ diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/dataset/DatasetDirectoryService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/dataset/DatasetDirectoryService.java index 5d45920..c3c41a4 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/dataset/DatasetDirectoryService.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/dataset/DatasetDirectoryService.java @@ -200,7 +200,7 @@ @Override public void deinitState(JobId jobId) { - jobResultLocations.remove(jobResultLocations.get(jobId)); + jobResultLocations.remove(jobId); } @Override diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/TriggerNCWork.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/TriggerNCWork.java index 7d2ff25..9a52a06 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/TriggerNCWork.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/TriggerNCWork.java @@ -18,16 +18,16 @@ */ package org.apache.hyracks.control.cc.work; -import org.apache.hyracks.control.cc.ClusterControllerService; -import org.apache.hyracks.control.common.work.AbstractWork; -import org.ini4j.Ini; - import java.io.IOException; import java.io.ObjectOutputStream; import java.io.StringWriter; import java.net.Socket; import java.util.logging.Level; import java.util.logging.Logger; + +import org.apache.hyracks.control.cc.ClusterControllerService; +import org.apache.hyracks.control.common.work.AbstractWork; +import org.ini4j.Ini; /** * A work which is run at CC startup for each NC specified in the configuration file. @@ -57,13 +57,13 @@ public final void run() { ccs.getExecutor().execute(new Runnable() { @Override + @SuppressWarnings("squid:S2142") // suppress interrupted exception warning public void run() { while (true) { - try { - if (LOGGER.isLoggable(Level.INFO)) { - LOGGER.info("Connecting NC service '" + ncId + "' at " + ncHost + ":" + ncPort); - } - Socket s = new Socket(ncHost, ncPort); + if (LOGGER.isLoggable(Level.INFO)) { + LOGGER.info("Connecting NC service '" + ncId + "' at " + ncHost + ":" + ncPort); + } + try (Socket s = new Socket(ncHost, ncPort)) { ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream()); oos.writeUTF(NC_MAGIC_COOKIE); oos.writeUTF(serializeIni(ccs.getCCConfig().getIni())); diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java index ba71b0c..d17858b 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java @@ -49,14 +49,14 @@ } @Override + @SuppressWarnings("squid:S2142") // catch interrupted exception public void run() { while (true) { try { Thread.sleep(resultSweepThreshold); sweep(); } catch (InterruptedException e) { - LOGGER.severe("Result cleaner thread interrupted, but we continue running it."); - // There isn't much we can do really here + LOGGER.severe("Result cleaner thread interrupted, shutting down."); break; // the interrupt was explicit from another thread. This thread should shut down... } } -- To view, visit https://asterix-gerrit.ics.uci.edu/1108 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: If87126cdd435067a50087e339522a36021fbc2c0 Gerrit-PatchSet: 6 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Michael Blow <mb...@apache.org> Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Michael Blow <mb...@apache.org> Gerrit-Reviewer: Till Westmann <ti...@apache.org>