[ https://issues.apache.org/jira/browse/TINKERPOP-1744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16119734#comment-16119734 ]
ASF GitHub Bot commented on TINKERPOP-1744: ------------------------------------------- Github user FlorianHockmann commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/690#discussion_r132156425 --- Diff: gremlin-dotnet/src/Gremlin.Net/Structure/Utils.cs --- @@ -0,0 +1,55 @@ +#region License + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#endregion + +using System; +using System.Runtime.ExceptionServices; +using System.Threading.Tasks; + +namespace Gremlin.Net.Structure +{ + /// <summary> + /// Contains useful methods that can be reused across the project. + /// </summary> + internal static class Utils + { + /// <summary> + /// Waits the completion of the provided Task. + /// When an AggregateException is thrown, the inner exception is thrown. + /// </summary> + public static void WaitUnwrap(this Task task) + { + try + { + task.Wait(); + } + catch (AggregateException ex) + { + if (ex.InnerExceptions.Count == 1) --- End diff -- Of course, you're right, the iteration only makes sense in the documentation because they don't rethrow their `CustomException`. I didn't really think that through when writing the comment... > Gremlin .NET: Exception from sync execution gets wrapped in AggregateException > ------------------------------------------------------------------------------ > > Key: TINKERPOP-1744 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1744 > Project: TinkerPop > Issue Type: Bug > Components: language-variant > Reporter: Jorge Bay > Assignee: Jorge Bay > > When getting a server side exception and executing a traversal synchronously > (ie: {{Next()}}, {{ToList()}}, ...), Gremlin.Net throws the original > exception wrapped in a {{AggregateException}}, which is not desired. > This is caused by the {{Task.Wait()}} call on {{RemoteStrategy.Apply()}} > method. > We should catch the wrapped exception and throw the original. -- This message was sent by Atlassian JIRA (v6.4.14#64029)