[ 
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)

Reply via email to