[CONTROLLER-1234] checkedGet() on PingPongFuture will block the calling thread forever Created: 01/Apr/15  Updated: 25/Jul/23  Resolved: 23/Apr/15

Status: Resolved
Project: controller
Component/s: mdsal
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Abhishek Kumar Assignee: Abhishek Kumar
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 2935

 Description   

org.opendaylight.controller.md.sal.dom.broker.impl.PingPongFuture.mapException() will throw a RuntimeException when called leaving the calling thread blocked forever.

The issue is with the implementation of this method:
protected TransactionCommitFailedException mapException(final Exception e)

{ Preconditions.checkArgument(e instanceof TransactionCommitFailedException); return (TransactionCommitFailedException) e; }

It expects the argument to be an instance of TransactionCommitFailedException. Per google guava documentation, the argument could be of type
1. InterruptedException
2. CancellationException
3. ExecutionException

So, the above method will always throw runtime exception.



 Comments   
Comment by Abhishek Kumar [ 02/Apr/15 ]

https://git.opendaylight.org/gerrit/#/c/17581/

Generated at Wed Feb 07 19:55:01 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.