[
https://issues.apache.org/jira/browse/TINKERPOP-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16019840#comment-16019840
]
Andy Tolbert commented on TINKERPOP-1675:
-----------------------------------------
Now that I think about this some more, this would not happen on 3.2.4 unless
someone implemented their own RemoteConnection and overrode {{submitAsync}} to
set an exception on the Future instead of throwing it. In 3.2.4,
RemoteConnection#submitAsync would throw the exception on the calling thread
instead of setting it on the future, that is until the change I made in
[TINKERPOP-1671] which is why it is currently unlikely anyone would run into
this. However, with the 1671 change, we should also fix this here on 3.2.5.
> RemoteStep#processNextStart() throws CompletionException instead of
> underlying exception
> ----------------------------------------------------------------------------------------
>
> Key: TINKERPOP-1675
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1675
> Project: TinkerPop
> Issue Type: Bug
> Components: process
> Affects Versions: 3.2.4
> Reporter: Andy Tolbert
>
> There is a slight behavior change in TinkerPop 3.2.4 as it pertains to an
> exception thrown when processing a traversal on a remote traversal source.
> In 3.2.3, if an unchecked exception is thrown, it is propagated directly to
> the user.
> However, in 3.2.4, since RemoteStep#processNextStart() now calls
> RemoteStep#promise() and joins on the returning futures result, if the future
> fails a {{CompletionException}} is thrown wrapping the cause, instead of the
> cause itself.
> For consistency, if that exception is an unchecked exception, it should be
> thrown directly, otherwise it should be wrapped in an
> {{IllegalStateException}} as it did before.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)