[ 
https://issues.apache.org/jira/browse/HBASE-18483?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hao Chan updated HBASE-18483:
-----------------------------
    Attachment: HBASE-18483.patch

The original code didn't assign the return value from a recursive call of the 
method translateException(), therefore didn't really unwrap the RemoteException.
In this patch, I fixed the code to handle the recursive call and I also wrote a 
unit test for this method.

> The RpcRetryingCaller#translateException doesn't handle RemoteException
> -----------------------------------------------------------------------
>
>                 Key: HBASE-18483
>                 URL: https://issues.apache.org/jira/browse/HBASE-18483
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.3.1, 1.2.6
>            Reporter: Chia-Ping Tsai
>            Assignee: Hao Chan
>            Priority: Minor
>              Labels: beginner
>             Fix For: 1.4.0, 1.3.2, 1.5.0, 1.2.7
>
>         Attachments: HBASE-18483.patch
>
>
> {code}
>     if (t instanceof ServiceException) {
>       ServiceException se = (ServiceException)t;
>       Throwable cause = se.getCause();
>       if (cause != null) {
>         if (cause instanceof DoNotRetryIOException) {
>           throw (DoNotRetryIOException)cause;
>         } else if (cause instanceof NeedUnmanagedConnectionException) {
>           throw new DoNotRetryIOException(cause);
>         }
>       }
>       // Don't let ServiceException out; its rpc specific.
>       t = cause;
>       // t could be a RemoteException so go aaround again.
>       translateException(t);                                  // here
>     } else if (t instanceof DoNotRetryIOException) {
>       throw (DoNotRetryIOException)t;
>     } else if (t instanceof NeedUnmanagedConnectionException) {
>       throw new DoNotRetryIOException(t);
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to