This is an automated email from the ASF dual-hosted git repository. jin pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
commit b1b12098feb726e46c781a2f171c77558db05fc1 Author: imbajin <[email protected]> AuthorDate: Tue Nov 1 18:05:04 2022 +0800 adapt the latest version & clean code also fix the sec alert --- .../com/baidu/hugegraph/api/job/AlgorithmAPI.java | 18 +++++------ .../hugegraph/job/algorithm/AbstractAlgorithm.java | 11 +++---- .../baidu/hugegraph/job/algorithm/Algorithm.java | 8 ++--- .../hugegraph/job/algorithm/AlgorithmPool.java | 4 +-- .../hugegraph/job/algorithm/BfsTraverser.java | 4 +-- .../baidu/hugegraph/job/algorithm/Consumers.java | 5 +-- .../job/algorithm/SubgraphStatAlgorithm.java | 18 +++++------ .../job/algorithm/cent/AbstractCentAlgorithm.java | 11 +++---- .../cent/BetweennessCentralityAlgorithm.java | 2 +- .../cent/ClosenessCentralityAlgorithm.java | 2 +- .../cent/ClosenessCentralityAlgorithmV2.java | 2 +- .../algorithm/cent/DegreeCentralityAlgorithm.java | 4 +-- .../cent/EigenvectorCentralityAlgorithm.java | 2 +- .../algorithm/cent/StressCentralityAlgorithm.java | 2 +- ...rithm.java => ClusterCoefficientAlgorithm.java} | 13 ++++---- .../job/algorithm/comm/LouvainTraverser.java | 37 +++++++++------------- .../hugegraph/job/algorithm/comm/LpaAlgorithm.java | 2 +- .../hugegraph/job/computer/AbstractComputer.java | 5 ++- .../com/baidu/hugegraph/job/schema/SchemaJob.java | 4 +-- .../job/system/DeleteExpiredIndexJob.java | 2 +- .../baidu/hugegraph/job/system/JobCounters.java | 11 +++---- 21 files changed, 75 insertions(+), 92 deletions(-) diff --git a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/AlgorithmAPI.java b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/AlgorithmAPI.java index c965e02a5..b0e0d0692 100644 --- a/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/AlgorithmAPI.java +++ b/hugegraph-api/src/main/java/com/baidu/hugegraph/api/job/AlgorithmAPI.java @@ -21,15 +21,6 @@ package com.baidu.hugegraph.api.job; import java.util.Map; -import javax.inject.Singleton; -import javax.ws.rs.Consumes; -import javax.ws.rs.NotFoundException; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; - import org.slf4j.Logger; import com.baidu.hugegraph.HugeGraph; @@ -46,6 +37,15 @@ import com.baidu.hugegraph.util.Log; import com.codahale.metrics.annotation.Timed; import com.google.common.collect.ImmutableMap; +import jakarta.inject.Singleton; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.NotFoundException; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.Context; + @Path("graphs/{graph}/jobs/algorithm") @Singleton public class AlgorithmAPI extends API { diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java index 943debb4b..dbe3f7e2b 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AbstractAlgorithm.java @@ -57,8 +57,7 @@ import com.baidu.hugegraph.util.CollectionUtil; import com.baidu.hugegraph.util.E; import com.baidu.hugegraph.util.JsonUtil; import com.baidu.hugegraph.util.ParameterUtil; - -import jersey.repackaged.com.google.common.base.Objects; +import com.google.common.base.Objects; @SuppressWarnings("deprecation") // StringEscapeUtils public abstract class AbstractAlgorithm implements Algorithm { @@ -382,9 +381,7 @@ public abstract class AbstractAlgorithm implements Algorithm { ConditionQuery query = new ConditionQuery(HugeType.VERTEX); query.capacity(Query.NO_CAPACITY); query.limit(limit); - if (label != null) { - query.eq(HugeKeys.LABEL, this.getVertexLabelId(label)); - } + query.eq(HugeKeys.LABEL, this.getVertexLabelId(label)); return this.graph().vertices(query); } @@ -544,8 +541,8 @@ public abstract class AbstractAlgorithm implements Algorithm { this(4 * (int) Bytes.KB); } - public JsonMap(int initCapaticy) { - this.json = new StringBuilder(initCapaticy); + public JsonMap(int initCapacity) { + this.json = new StringBuilder(initCapacity); } public void startObject() { diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java index b1cb53144..856e38dbc 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Algorithm.java @@ -25,11 +25,11 @@ import com.baidu.hugegraph.job.UserJob; public interface Algorithm { - public String name(); + String name(); - public String category(); + String category(); - public Object call(UserJob<Object> job, Map<String, Object> parameters); + Object call(UserJob<Object> job, Map<String, Object> parameters); - public void checkParameters(Map<String, Object> parameters); + void checkParameters(Map<String, Object> parameters); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java index 02ac4c24e..7031318ac 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java @@ -30,7 +30,7 @@ import com.baidu.hugegraph.job.algorithm.cent.DegreeCentralityAlgorithm; import com.baidu.hugegraph.job.algorithm.cent.EigenvectorCentralityAlgorithm; import com.baidu.hugegraph.job.algorithm.cent.StressCentralityAlgorithm; import com.baidu.hugegraph.job.algorithm.cent.StressCentralityAlgorithmV2; -import com.baidu.hugegraph.job.algorithm.comm.ClusterCoeffcientAlgorithm; +import com.baidu.hugegraph.job.algorithm.comm.ClusterCoefficientAlgorithm; import com.baidu.hugegraph.job.algorithm.comm.KCoreAlgorithm; import com.baidu.hugegraph.job.algorithm.comm.LouvainAlgorithm; import com.baidu.hugegraph.job.algorithm.comm.LpaAlgorithm; @@ -56,7 +56,7 @@ public class AlgorithmPool { INSTANCE.register(new EigenvectorCentralityAlgorithm()); INSTANCE.register(new TriangleCountAlgorithm()); - INSTANCE.register(new ClusterCoeffcientAlgorithm()); + INSTANCE.register(new ClusterCoefficientAlgorithm()); INSTANCE.register(new LpaAlgorithm()); INSTANCE.register(new LouvainAlgorithm()); INSTANCE.register(new WeakConnectedComponent()); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/BfsTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/BfsTraverser.java index 3b0920855..a85cef022 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/BfsTraverser.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/BfsTraverser.java @@ -36,7 +36,7 @@ public abstract class BfsTraverser<T extends BfsTraverser.Node> extends AbstractAlgorithm.AlgoTraverser implements AutoCloseable { - private Stack<Id> traversedVertices = new Stack<>(); + private final Stack<Id> traversedVertices = new Stack<>(); public BfsTraverser(UserJob<Object> job) { super(job); @@ -113,7 +113,7 @@ public abstract class BfsTraverser<T extends BfsTraverser.Node> private Id[] parents; private int pathCount; - private int distance; + private final int distance; public Node(Node parentNode) { this(0, parentNode.distance + 1); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Consumers.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Consumers.java index 1c68413fc..9a60e3031 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Consumers.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/Consumers.java @@ -92,7 +92,7 @@ public class Consumers<V> { this.run(); this.done(); } catch (Throwable e) { - // Only the first exception of one thread can be stored + // Only the first exception to one thread can be stored this.exception = e; if (!(e instanceof StopExecution)) { LOG.error("Error when running task", e); @@ -110,7 +110,8 @@ public class Consumers<V> { this.consume(); } assert this.ending; - while (this.consume()); + while (this.consume()) { + } LOG.debug("Worker finished"); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java index d91748e41..814277b2a 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java @@ -22,7 +22,7 @@ package com.baidu.hugegraph.job.algorithm; import java.util.Iterator; import java.util.Map; -import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.configuration2.PropertiesConfiguration; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.slf4j.Logger; @@ -90,7 +90,6 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm { PropertiesConfiguration config = new PropertiesConfiguration(); config.setProperty(CoreOptions.BACKEND.name(), "memory"); config.setProperty(CoreOptions.STORE.name(), name); - config.setDelimiterParsingDisabled(true); /* * NOTE: this temp graph don't need to init backend because no task info * required, also not set started because no task to be scheduled. @@ -129,12 +128,11 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm { private static class Traverser extends AlgoTraverser { - private static Map<String, Object> PARAMS = ImmutableMap.of( - "depth", 10L, - "degree", -1L, - "sample", -1L, - "top", -1L /* sorted */, - "workers", 0); + private static final Map<String, Object> PARAMS = ImmutableMap.of("depth", 10L, + "degree", -1L, + "sample", -1L, + "top", -1L /* sorted */, + "workers", 0); public Traverser(UserJob<Object> job) { super(job); @@ -166,8 +164,8 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm { results.put("page_ranks", pageRanks(job)); - algo = pool.get("cluster_coeffcient"); - results.put("cluster_coeffcient", algo.call(job, parameters)); + algo = pool.get("cluster_coefficient"); + results.put("cluster_coefficient", algo.call(job, parameters)); algo = pool.get("rings"); parameters = ImmutableMap.<String, Object>builder() diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java index 066234873..6a7ba396a 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java @@ -86,8 +86,7 @@ public abstract class AbstractCentAlgorithm extends AbstractAlgorithm { t = t.filter(it -> { this.updateProgress(++this.progress); - return sourceCLabel == null ? true : - match(it.get(), sourceCLabel); + return sourceCLabel == null || match(it.get(), sourceCLabel); }); if (sourceSample > 0L) { @@ -164,9 +163,7 @@ public abstract class AbstractCentAlgorithm extends AbstractAlgorithm { triples.put(key, len); } else { assert len == shortest; - if (keepOneShortestPath) { - return false; - } + return !keepOneShortestPath; } return true; }); @@ -182,7 +179,7 @@ public abstract class AbstractCentAlgorithm extends AbstractAlgorithm { @SuppressWarnings("unchecked") Iterator<HugeVertex> items = (Iterator<HugeVertex>) path.iterator(); - return new MapperIterator<>(items, v -> v.id()); + return new MapperIterator<>(items, HugeVertex::id); } int len = path.size(); if (len < 3) { @@ -195,7 +192,7 @@ public abstract class AbstractCentAlgorithm extends AbstractAlgorithm { @SuppressWarnings("unchecked") Iterator<HugeVertex> items = (Iterator<HugeVertex>) path.iterator(); - return new MapperIterator<>(items, v -> v.id()); + return new MapperIterator<>(items, HugeVertex::id); }); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithm.java index 46f4d4a40..25e1451cf 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweennessCentralityAlgorithm.java @@ -95,7 +95,7 @@ public class BetweennessCentralityAlgorithm extends AbstractCentAlgorithm { tg = this.computeBetweenness(tg); GraphTraversal<Vertex, ?> tLimit = topN(tg, topN); - return this.execute(tLimit, () -> tLimit.next()); + return this.execute(tLimit, tLimit::next); } protected GraphTraversal<Vertex, ?> groupPathByEndpoints( diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java index 6a95794a0..81979dc01 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithm.java @@ -102,7 +102,7 @@ public class ClosenessCentralityAlgorithm extends AbstractCentAlgorithm { .math("_-1").sack(Operator.div).sack().sum()); GraphTraversal<Vertex, ?> tLimit = topN(tg, topN); - return this.execute(tLimit, () -> tLimit.next()); + return this.execute(tLimit, tLimit::next); } } } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java index 1651c8943..55dc93ad9 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/ClosenessCentralityAlgorithmV2.java @@ -61,7 +61,7 @@ public class ClosenessCentralityAlgorithmV2 extends AbstractCentAlgorithm { private static class Traverser extends BfsTraverser<BfsTraverser.Node> { - private Map<Id, Float> globalCloseness; + private final Map<Id, Float> globalCloseness; private float startVertexCloseness; diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java index 6592c119d..6032b56e2 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/DegreeCentralityAlgorithm.java @@ -19,7 +19,7 @@ package com.baidu.hugegraph.job.algorithm.cent; -import java.util.Arrays; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -155,7 +155,7 @@ public class DegreeCentralityAlgorithm extends AbstractCentAlgorithm { } private long degree(Id source, String label) { - List<String> labels = label == null ? null : Arrays.asList(label); + List<String> labels = label == null ? null : Collections.singletonList(label); EdgeStep step = new EdgeStep(this.graph(), Directions.BOTH, labels, null, NO_LIMIT, 0); return this.edgesCount(source, step); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java index 15748ec72..d396f3cf3 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/EigenvectorCentralityAlgorithm.java @@ -96,7 +96,7 @@ public class EigenvectorCentralityAlgorithm extends AbstractCentAlgorithm { GraphTraversal<Vertex, Object> tCap = t.cap("m"); GraphTraversal<Vertex, ?> tLimit = topN(tCap, topN); - return this.execute(tLimit, () -> tLimit.next()); + return this.execute(tLimit, tLimit::next); } } } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/StressCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/StressCentralityAlgorithm.java index 87f1471d4..6f4189255 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/StressCentralityAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/StressCentralityAlgorithm.java @@ -100,7 +100,7 @@ public class StressCentralityAlgorithm extends AbstractCentAlgorithm { .groupCount(); GraphTraversal<Vertex, ?> tLimit = topN(tg, topN); - return this.execute(tLimit, () -> tLimit.next()); + return this.execute(tLimit, tLimit::next); } } } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoeffcientAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoefficientAlgorithm.java similarity index 84% rename from hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoeffcientAlgorithm.java rename to hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoefficientAlgorithm.java index 2a0cf1a42..b7a3895a3 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoeffcientAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/ClusterCoefficientAlgorithm.java @@ -26,9 +26,9 @@ import com.baidu.hugegraph.type.define.Directions; import com.baidu.hugegraph.util.E; import com.baidu.hugegraph.util.InsertionOrderUtil; -public class ClusterCoeffcientAlgorithm extends AbstractCommAlgorithm { +public class ClusterCoefficientAlgorithm extends AbstractCommAlgorithm { - public static final String ALGO_NAME = "cluster_coeffcient"; + public static final String ALGO_NAME = "cluster_coefficient"; @Override public String name() { @@ -46,8 +46,7 @@ public class ClusterCoeffcientAlgorithm extends AbstractCommAlgorithm { public Object call(UserJob<Object> job, Map<String, Object> parameters) { int workers = workersWhenBoth(parameters); try (Traverser traverser = new Traverser(job, workers)) { - return traverser.clusterCoeffcient(direction(parameters), - degree(parameters)); + return traverser.clusterCoefficient(direction(parameters), degree(parameters)); } } @@ -67,18 +66,18 @@ public class ClusterCoeffcientAlgorithm extends AbstractCommAlgorithm { super(job, ALGO_NAME, workers); } - public Object clusterCoeffcient(Directions direction, long degree) { + public Object clusterCoefficient(Directions direction, long degree) { Map<String, Long> results = this.triangles(direction, degree); results = InsertionOrderUtil.newMap(results); long triangles = results.remove(KEY_TRIANGLES); long triads = results.remove(KEY_TRIADS); assert triangles <= triads; - double coeffcient = triads == 0L ? 0d : 1d * triangles / triads; + double coefficient = triads == 0L ? 0d : 1d * triangles / triads; @SuppressWarnings({ "unchecked", "rawtypes" }) Map<String, Double> converted = (Map) results; - converted.put("cluster_coeffcient", coeffcient); + converted.put("cluster_coefficient", coefficient); return results; } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java index 4359d46b8..d6f647baf 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java @@ -20,11 +20,12 @@ package com.baidu.hugegraph.job.algorithm.comm; import java.io.BufferedOutputStream; -import java.io.FileOutputStream; import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -238,10 +239,7 @@ public class LouvainTraverser extends AlgoTraverser { } } // skip the vertex with unmatched clabel - if (this.sourceCLabel != null && !match(v, this.sourceCLabel)) { - return true; - } - return false; + return this.sourceCLabel != null && !match(v, this.sourceCLabel); } private Iterator<Vertex> sourceVertices(int pass) { @@ -321,9 +319,7 @@ public class LouvainTraverser extends AlgoTraverser { return comm; } - private Collection<Pair<Community, MutableInt>> nbCommunities( - int pass, - List<Edge> edges) { + private Collection<Pair<Community, MutableInt>> nbCommunities(int pass, List<Edge> edges) { // comms is a map of cid:[community,weight] Map<Id, Pair<Community, MutableInt>> comms = new HashMap<>(); for (Edge edge : edges) { @@ -512,7 +508,7 @@ public class LouvainTraverser extends AlgoTraverser { if (cvertices.contains(otherV.id())) { // inner edges of this community, will be calc twice // due to both e-in and e-out are in vertices, - kin += weightOfEdge(edge); + kin += (int) weightOfEdge(edge); continue; } assert this.cache.vertex2Community(otherV.id()) != null; @@ -579,11 +575,10 @@ public class LouvainTraverser extends AlgoTraverser { int times = maxTimes; int movedTimes = 0; double movedPercent = 0d; - double lastMovedPercent = 0d; + double lastMovedPercent; for (int i = 0; i < maxTimes; i++) { boolean finished = true; - movedPercent = 0d; lastMovedPercent = 1d; int tinyChanges = 0; while ((movedPercent = this.moveCommunities(i)) > 0d) { @@ -654,7 +649,7 @@ public class LouvainTraverser extends AlgoTraverser { public Collection<Object> showCommunity(String community) { final String C_PASS0 = labelOfPassN(0); - Collection<Object> comms = Arrays.asList(community); + Collection<Object> comms = Collections.singletonList(community); boolean reachPass0 = false; while (comms.size() > 0 && !reachPass0) { Iterator<Vertex> subComms = this.vertices(comms.iterator()); @@ -679,7 +674,7 @@ public class LouvainTraverser extends AlgoTraverser { String label = labelOfPassN(pass); GraphTraversal<Vertex, Vertex> t = this.g.V().hasLabel(label); this.execute(t, () -> { - try (OutputStream os = new FileOutputStream(exportFile); + try (OutputStream os = Files.newOutputStream(Paths.get(exportFile)); BufferedOutputStream bos = new BufferedOutputStream(os)) { while (t.hasNext()) { String comm = t.next().id().toString(); @@ -712,7 +707,7 @@ public class LouvainTraverser extends AlgoTraverser { List<String> els = this.cpassEdgeLabels(); if (els.size() > 0) { String first = els.remove(0); - te = te.hasLabel(first, els.toArray(new String[els.size()])); + te = te.hasLabel(first, els.toArray(new String[0])); this.drop(te); } // drop schema @@ -736,7 +731,7 @@ public class LouvainTraverser extends AlgoTraverser { List<String> vls = this.cpassVertexLabels(); if (vls.size() > 0) { String first = vls.remove(0); - tv = tv.hasLabel(first, vls.toArray(new String[vls.size()])); + tv = tv.hasLabel(first, vls.toArray(new String[0])); this.drop(tv); } // drop schema @@ -895,7 +890,7 @@ public class LouvainTraverser extends AlgoTraverser { // gen id for merge-community vertex String id = cid.toString(); if (pass == 0) { - // conncat pass with cid + // concat pass with cid id = pass + "~" + id; } else { // replace last pass with current pass @@ -915,11 +910,9 @@ public class LouvainTraverser extends AlgoTraverser { if (c.empty()) { continue; } - Pair<Community, Set<Id>> pair = comms.get(c.cid); - if (pair == null) { - pair = Pair.of(c, new HashSet<>()); - comms.put(c.cid, pair); - } + Pair<Community, Set<Id>> pair = comms.computeIfAbsent(c.cid, k -> { + return Pair.of(c, new HashSet<>()); + }); // collect members joined to the community [current pass] pair.getRight().add(e.getKey()); } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java index f25201bea..59d53245f 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LpaAlgorithm.java @@ -184,7 +184,7 @@ public class LpaAlgorithm extends AbstractCommAlgorithm { Iterator<Id> neighbors = this.adjacentVertices(source, dir, labelId, degree); - // whether or not include vertex itself, greatly affects the result. + // whether include vertex itself, greatly affects the result. // get a larger number of small communities if include itself //neighbors.inject(v); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/computer/AbstractComputer.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/computer/AbstractComputer.java index ca08ec9a3..3ef49c751 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/computer/AbstractComputer.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/computer/AbstractComputer.java @@ -174,7 +174,7 @@ public abstract class AbstractComputer implements Computer { "'%s' must be contained in config '%s'", sub); ImmutableNode root = null; - NodeHandler<ImmutableNode> nodeHandler = null; + NodeHandler<ImmutableNode> nodeHandler; Map<String, Object> results = new HashMap<>(nodes.size()); for (HierarchicalConfiguration<ImmutableNode> node : nodes) { NodeModel<ImmutableNode> nodeModel = node.getNodeModel(); @@ -191,8 +191,7 @@ public abstract class AbstractComputer implements Computer { private String[] constructShellCommands(Map<String, Object> configs) { String hadoopHome = System.getenv(HADOOP_HOME); String commandPrefix = String.format(MAIN_COMMAND, hadoopHome); - List<String> command = new ArrayList<>(); - command.addAll(Arrays.asList(commandPrefix.split(SPACE))); + List<String> command = new ArrayList<>(Arrays.asList(commandPrefix.split(SPACE))); command.add(this.name()); for (Map.Entry<String, Object> entry : configs.entrySet()) { command.add(MINUS_C); diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/schema/SchemaJob.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/schema/SchemaJob.java index afa6c3069..4841ac484 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/schema/SchemaJob.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/schema/SchemaJob.java @@ -106,8 +106,8 @@ public abstract class SchemaJob extends SysJob<Object> { /** * Use reflection to call SchemaTransaction.updateSchema(), * which is protected - * @param tx The update operation actual executer - * @param schema the schema to be update + * @param tx The update operation actual execute + * @param schema the schema to be updated */ protected static void updateSchema(SchemaTransaction tx, SchemaElement schema) { diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/DeleteExpiredIndexJob.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/DeleteExpiredIndexJob.java index ede9a03bb..d7889a3be 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/DeleteExpiredIndexJob.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/DeleteExpiredIndexJob.java @@ -34,7 +34,7 @@ public class DeleteExpiredIndexJob<V> extends DeleteExpiredJob<V> { private static final String JOB_TYPE = "delete_expired_index"; - private Set<HugeIndex> indexes; + private final Set<HugeIndex> indexes; public DeleteExpiredIndexJob(Set<HugeIndex> indexes) { E.checkArgument(indexes != null && !indexes.isEmpty(), diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/JobCounters.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/JobCounters.java index afbe89090..9f4bb1cae 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/JobCounters.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/system/JobCounters.java @@ -30,8 +30,7 @@ import com.baidu.hugegraph.structure.HugeIndex; public class JobCounters { - private ConcurrentHashMap<String, JobCounter> jobCounters = - new ConcurrentHashMap<>(); + private final ConcurrentHashMap<String, JobCounter> jobCounters = new ConcurrentHashMap<>(); public JobCounter jobCounter(HugeGraph g) { int batch = g.option(CoreOptions.TASK_TTL_DELETE_BATCH); @@ -44,10 +43,10 @@ public class JobCounters { public static class JobCounter { - private AtomicInteger jobs; + private final AtomicInteger jobs; private Set<HugeElement> elements; private Set<HugeIndex> indexes; - private int batchSize; + private final int batchSize; public JobCounter(int batchSize) { this.jobs = new AtomicInteger(0); @@ -94,7 +93,7 @@ public class JobCounters { /** * Try to add element in collection waiting to be deleted * @param element - * @return true if should create a new delete job, false otherwise + * @return true if we should create a new delete job, false otherwise */ public boolean addElementAndTriggerDelete(HugeElement element) { if (this.elements.size() >= this.batchSize) { @@ -107,7 +106,7 @@ public class JobCounters { /** * Try to add edge in collection waiting to be deleted * @param index - * @return true if should create a new delete job, false otherwise + * @return true if we should create a new delete job, false otherwise */ public boolean addIndexAndTriggerDelete(HugeIndex index) { if (this.indexes.size() >= this.batchSize) {
