You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by di...@apache.org on 2020/09/05 03:40:51 UTC
[tinkerpop] branch 3.4-dev updated: Avoid unnecessary detached
objects if not required (#1323)
This is an automated email from the ASF dual-hosted git repository.
divijv pushed a commit to branch 3.4-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/3.4-dev by this push:
new 994d326 Avoid unnecessary detached objects if not required (#1323)
994d326 is described below
commit 994d3264fcbb8e304e0d206077c94f4791c24931
Author: Divij Vaidya <di...@amazon.com>
AuthorDate: Fri Sep 4 20:40:44 2020 -0700
Avoid unnecessary detached objects if not required (#1323)
---
CHANGELOG.asciidoc | 1 +
.../tinkerpop/gremlin/process/traversal/step/filter/DropStep.java | 4 ++--
.../gremlin/process/traversal/step/map/AddEdgeStartStep.java | 2 +-
.../tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java | 2 +-
.../gremlin/process/traversal/step/map/AddVertexStartStep.java | 2 +-
.../tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java | 2 +-
.../gremlin/process/traversal/step/sideEffect/AddPropertyStep.java | 2 +-
7 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 284ce43..5e39577 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -29,6 +29,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
* Improved initialization time of Java Driver if the default serializer is replaced.
* Fixed bug in Javascript `Translator` that wasn't handling child traversals well.
* Fixed an iterator leak in `HasContainer`.
+* Avoid creating unnecessary detached objects in JVM
[[release-3-4-8]]
=== TinkerPop 3.4.8 (Release Date: August 3, 2020)
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DropStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DropStep.java
index 97d0709..fa800b3 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DropStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DropStep.java
@@ -50,7 +50,7 @@ public class DropStep<S> extends FilterStep<S> implements Mutating<Event> {
final S s = traverser.get();
if (s instanceof Element) {
final Element toRemove = (Element) s;
- if (callbackRegistry != null) {
+ if (callbackRegistry != null && !callbackRegistry.getCallbacks().isEmpty()) {
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get();
final Event removeEvent;
if (s instanceof Vertex)
@@ -68,7 +68,7 @@ public class DropStep<S> extends FilterStep<S> implements Mutating<Event> {
toRemove.remove();
} else if (s instanceof Property) {
final Property toRemove = (Property) s;
- if (callbackRegistry != null) {
+ if (callbackRegistry != null && !callbackRegistry.getCallbacks().isEmpty()) {
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get();
final Event.ElementPropertyEvent removeEvent;
if (toRemove.element() instanceof Edge)
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java
index f37756e..63f6776 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStartStep.java
@@ -116,7 +116,7 @@ public class AddEdgeStartStep extends AbstractStep<Edge, Edge>
.attach(Attachable.Method.get(this.getTraversal().getGraph().orElse(EmptyGraph.instance())));
final String edgeLabel = (String) this.parameters.get(traverser, T.label, () -> Edge.DEFAULT_LABEL).get(0);
final Edge edge = fromVertex.addEdge(edgeLabel, toVertex, this.parameters.getKeyValues(traverser, TO, FROM, T.label));
- if (callbackRegistry != null) {
+ if (callbackRegistry != null && !callbackRegistry.getCallbacks().isEmpty()) {
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get();
final Event.EdgeAddedEvent vae = new Event.EdgeAddedEvent(eventStrategy.detach(edge));
callbackRegistry.getCallbacks().forEach(c -> c.accept(vae));
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
index aa3818b..55d0866 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStep.java
@@ -107,7 +107,7 @@ public class AddEdgeStep<S> extends MapStep<S, Edge>
final String edgeLabel = this.parameters.get(traverser, T.label, () -> Edge.DEFAULT_LABEL).get(0);
final Edge edge = fromVertex.addEdge(edgeLabel, toVertex, this.parameters.getKeyValues(traverser, TO, FROM, T.label));
- if (callbackRegistry != null) {
+ if (callbackRegistry != null && !callbackRegistry.getCallbacks().isEmpty()) {
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get();
final Event.EdgeAddedEvent vae = new Event.EdgeAddedEvent(eventStrategy.detach(edge));
callbackRegistry.getCallbacks().forEach(c -> c.accept(vae));
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
index 3493ec7..2182921 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStartStep.java
@@ -87,7 +87,7 @@ public class AddVertexStartStep extends AbstractStep<Vertex, Vertex>
this.first = false;
final TraverserGenerator generator = this.getTraversal().getTraverserGenerator();
final Vertex vertex = this.getTraversal().getGraph().get().addVertex(this.parameters.getKeyValues(generator.generate(false, (Step) this, 1L)));
- if (this.callbackRegistry != null) {
+ if (this.callbackRegistry != null && !callbackRegistry.getCallbacks().isEmpty()) {
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get();
final Event.VertexAddedEvent vae = new Event.VertexAddedEvent(eventStrategy.detach(vertex));
this.callbackRegistry.getCallbacks().forEach(c -> c.accept(vae));
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
index 167510a..a609422 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStep.java
@@ -79,7 +79,7 @@ public class AddVertexStep<S> extends MapStep<S, Vertex>
@Override
protected Vertex map(final Traverser.Admin<S> traverser) {
final Vertex vertex = this.getTraversal().getGraph().get().addVertex(this.parameters.getKeyValues(traverser));
- if (this.callbackRegistry != null) {
+ if (this.callbackRegistry != null && !callbackRegistry.getCallbacks().isEmpty()) {
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get();
final Event.VertexAddedEvent vae = new Event.VertexAddedEvent(eventStrategy.detach(vertex));
this.callbackRegistry.getCallbacks().forEach(c -> c.accept(vae));
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AddPropertyStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AddPropertyStep.java
index 470fa4b..ddc11f6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AddPropertyStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AddPropertyStep.java
@@ -92,7 +92,7 @@ public class AddPropertyStep<S extends Element> extends SideEffectStep<S>
final Element element = traverser.get();
- if (this.callbackRegistry != null) {
+ if (this.callbackRegistry != null && !callbackRegistry.getCallbacks().isEmpty()) {
getTraversal().getStrategies().getStrategy(EventStrategy.class)
.ifPresent(eventStrategy -> {
Event.ElementPropertyChangedEvent evt = null;