Skip to content

Commit

Permalink
Add suppressed exceptions for debugging
Browse files Browse the repository at this point in the history
  • Loading branch information
davidegrohmann committed Sep 30, 2016
1 parent 7e353eb commit b748e78
Showing 1 changed file with 36 additions and 7 deletions.
Expand Up @@ -75,25 +75,54 @@ protected void doWork()
int newMemberId = cluster.edgeMembers().size(); int newMemberId = cluster.edgeMembers().size();
final EdgeClusterMember edgeClusterMember = cluster.addEdgeMemberWithId( newMemberId ); final EdgeClusterMember edgeClusterMember = cluster.addEdgeMemberWithId( newMemberId );


Supplier<Throwable> exception; Throwable ex = null;
Supplier<Throwable> monitoredException = null;
try try
{ {
exception = startAndRegisterExceptionMonitor( edgeClusterMember ); monitoredException = startAndRegisterExceptionMonitor( edgeClusterMember );
await( () -> txIdBeforeStartingNewEdge <= txId( edgeClusterMember, true ), 3, TimeUnit.MINUTES ); await( () -> txIdBeforeStartingNewEdge <= txId( edgeClusterMember, true ), 3, TimeUnit.MINUTES );
} }
catch ( Exception e ) catch ( Throwable e )
{ {
throw new RuntimeException( e ); ex = e;
} }
finally finally
{ {
cluster.removeEdgeMemberWithMemberId( newMemberId ); try
{
cluster.removeEdgeMemberWithMemberId( newMemberId );
}
catch ( Throwable e )
{
ex = exception( ex, e );
}
}

if ( monitoredException != null && monitoredException.get() != null )
{
throw new RuntimeException( exception( monitoredException.get(), ex ) );
}

if ( ex != null )
{
throw new RuntimeException( ex );
}
}

private Throwable exception( Throwable outer, Throwable inner )
{
if ( outer == null )
{
assert inner != null;
return inner;
} }


if ( exception.get() != null ) if ( inner != null )
{ {
throw new RuntimeException( exception.get() ); outer.addSuppressed( inner );
} }

return outer;
} }


private Supplier<Throwable> startAndRegisterExceptionMonitor( EdgeClusterMember edgeClusterMember ) private Supplier<Throwable> startAndRegisterExceptionMonitor( EdgeClusterMember edgeClusterMember )
Expand Down

0 comments on commit b748e78

Please sign in to comment.