Github user jbaker-nca commented on the issue:
https://github.com/apache/tinkerpop/pull/818
The copying code is as follows (I've simplified a little to make it clearer
what's happening, as it's actually part of a bigger chunk code):
List<Edge> newEdges = new ArrayList<>();
//Copy edges from orig onto onto v
for (Edge eOrig : graph.traversal().V(orig.id()).inE().toSet())
{
if (newEdges.contains(eOrig))
continue;
LOGGER.debug("Copying IN edge {}, from {}", eOrig.id(),
eOrig.outVertex().id());
Vertex vOut = eOrig.outVertex();
Edge e = vOut.addEdge(eOrig.label(), v);
ElementUtils.copyProperties(eOrig, e);
LOGGER.debug("Recording new edge {}", eOrig.id());
newEdges.add(e);
}
for (Edge eOrig :
graph.traversal().V(orig.id()).outE().toSet()) {
if (newEdges.contains(eOrig))
continue;
LOGGER.debug("Copying OUT edge {}, to {}", eOrig.id(),
eOrig.inVertex().id());
Vertex vIn = eOrig.inVertex();
Edge e = v.addEdge(eOrig.label(), vIn);
ElementUtils.copyProperties(eOrig, e);
LOGGER.debug("Recording new edge {}", eOrig.id());
newEdges.add(e);
}
LOGGER.debug("{} edges copied", newEdges.size());
---