Allow WebApplicationExceptions in VertexResource #367
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR covers thinkaurelius/titan#728.
Several WebApplicationExceptions thrown inside VertexResource methods
seemed to be unintentionally swallowed by enclosing catch clauses with
low specificity (e.g. Exception). These catchall clauses generally
swallow the WAE's status code and replace it with a generic 500
internal server error. This commit changes the catch clauses at the
bottom of three request methods to allow a WAE to propagate up the
stack instead of converting it into a generic 500.
This commit also introduces a try-catch with exception logging around
the RexsterApplicationGraph.tryRollback call made inside several of
these catch clauses. The point of this change is to make exceptions
encountered during rollback get logged and to allow the remainder of
the catch clause to attempt to execute even if rollback failed. I ran
into failing rollbacks when testing Titan 0.5.1-SNAPSHOT against
Rexster 2.6.0 without defining
Features.supportsThreadIsolatedTransactions, but I was blind to that
cause for a while because the exception message and trace were
suppressed.