[GitHub] [tinkerpop] spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction
spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction URL: https://github.com/apache/tinkerpop/pull/1094#issuecomment-483782752 Seems like we've resolved this by way of the workaround options i presented. Going to close this PR without merging. Thanks. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] [tinkerpop] spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction
spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction URL: https://github.com/apache/tinkerpop/pull/1094#issuecomment-481643815 I assume that the additional information you are adding in the custom serializer is something where you do more traversing on returned objects or gather data from other sources? I'm not sure a serializer is the best place for that. A serializer should only be about transforming the data to its network payload form and probably shouldn't contain other logic. A custom strategy on the other hand, seems like a better place to keep that sort of logic. You could "detach" and then add your additional data (nothing says you are restricted to detaching only in the strategy) Or, if that seems unsuitable for some reason then you should probably create a custom `Channelizer` and your own implementation of that REST endpoint. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] [tinkerpop] spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction
spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction URL: https://github.com/apache/tinkerpop/pull/1094#issuecomment-481354208 I think that your implementation should configure `ReferenceElementStrategy` (which for 3.4.0 is enabled by default): https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/ReferenceElementStrategy.java and which will detach your elements at iteration time when building the `ResponseMessage`. No new transaction will be opened on serialization. If you don't like the "references" that `ReferenceElementStrategy` produces then you could write your own strategy to produce "detached" objects just as easily to same effect - just used `DetachedFactory` rather than `ReferenceFactory`: https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java That should solve your problem without this change - right? This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services