[ https://issues.apache.org/jira/browse/TINKERPOP-790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15520004#comment-15520004 ]
ASF GitHub Bot commented on TINKERPOP-790: ------------------------------------------ GitHub user spmallette opened a pull request: https://github.com/apache/tinkerpop/pull/437 TINKERPOP-790 TraversalSource and Traversal implement AutoCloseable. https://issues.apache.org/jira/browse/TINKERPOP-790 This allowed for `TraversalSource` instances created using `withRemote()` to close out open `RemoteConnection` instances. It also sets up for side-effects created by a "remote" `Traversal` to be cleared from cache on the server. That work is not done yet and is reserved for a different ticket. Builds with `$ mvn clean install && mvn verify -pl gremlin-server -DskipIntegrationTests=false` I won't VOTE on this yet as I suspect there might be some feedback from @okram perhaps. @davebshow note the placeholder for sending the "close" message for side-effects. You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/tinkerpop TINKERPOP-790 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tinkerpop/pull/437.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #437 ---- commit 14211691effffec1f9fdf6ddd92c5833dff234de Author: Stephen Mallette <sp...@genoprime.com> Date: 2016-09-25T02:18:56Z TraversalSource and Traversal implement AutoCloseable. This allowed for TraversalSource instances created using withRemote() to close out open RemoteConnection instances. It also sets up for side-effects created by a "remote" Traversal to be cleared from cache on the server. That work is not done yet and is reserved for a different ticket. ---- > Implement AutoCloseable on TraversalSource > ------------------------------------------ > > Key: TINKERPOP-790 > URL: https://issues.apache.org/jira/browse/TINKERPOP-790 > Project: TinkerPop > Issue Type: Improvement > Components: process > Affects Versions: 3.0.2-incubating > Reporter: stephen mallette > Assignee: stephen mallette > Fix For: 3.2.3 > > > A {{TraversalSource}} may have resources to release so having a {{close}} > method would allows that release to occur. The specific case has to do with > {{EventStrategy}} which registers a listener on {{Transaction}}. That > listener should be removed when the user is done with the > {{TraversalSource}}, but there is currently no way to clean that up. The > calling of {{close}} should prevent future traversals from that > {{TraversalSource}}. > I suppose this also means that a {{TraversalStrategy}} will need to > optionally implement {{AutoCloseable}} or some other marker interface to > designate it as a strategy that needs to release resources. -- This message was sent by Atlassian JIRA (v6.3.4#6332)