@InternalApi("This class should only be extended within google-cloud-java") protected BaseGrpcServiceException(IOException exception, boolean idempotent) { super(makeExceptionData(exception, idempotent)); }
serviceException = new BaseGrpcServiceException(exception, IDEMPOTENT); assertTrue(serviceException.isRetryable()); assertNull(serviceException.getMessage()); assertEquals(exception, serviceException.getCause()); assertNull(serviceException.getReason()); assertNull(serviceException.getLocation()); assertNull(serviceException.getDebugInfo()); serviceException = new BaseGrpcServiceException(exception, IDEMPOTENT); assertTrue(serviceException.isRetryable()); assertNull(serviceException.getMessage()); assertEquals(exception, serviceException.getCause()); assertNull(serviceException.getReason()); assertNull(serviceException.getLocation()); assertNull(serviceException.getDebugInfo()); serviceException = new BaseGrpcServiceException(exception, IDEMPOTENT); assertTrue(serviceException.isRetryable()); assertEquals("insufficient data written", serviceException.getMessage()); assertEquals(exception, serviceException.getCause()); assertNull(serviceException.getReason()); assertNull(serviceException.getLocation()); assertNull(serviceException.getDebugInfo()); serviceException = new BaseGrpcServiceException(apiException); assertFalse(serviceException.isRetryable()); assertEquals(MESSAGE, serviceException.getMessage()); assertEquals(apiException, serviceException.getCause()); assertEquals(500, serviceException.getCode());
@Test public void testTranslateAndThrow() throws Exception { IOException exception = new SocketTimeoutException(); BaseGrpcServiceException cause = new BaseGrpcServiceException(exception, IDEMPOTENT); RetryHelper.RetryHelperException exceptionMock = createMock(RetryHelper.RetryHelperException.class); expect(exceptionMock.getCause()).andReturn(cause).times(2); replay(exceptionMock); try { BaseServiceException.translate(exceptionMock); } catch (BaseServiceException ex) { assertEquals(0, ex.getCode()); assertNull(ex.getMessage()); assertTrue(ex.isRetryable()); } finally { verify(exceptionMock); } } }
@InternalApi("This class should only be extended within google-cloud-java") protected BaseGrpcServiceException(IOException exception, boolean idempotent) { super(makeExceptionData(exception, idempotent)); }