[ https://issues.apache.org/jira/browse/TEPHRA-194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15593256#comment-15593256 ]
ASF GitHub Bot commented on TEPHRA-194: --------------------------------------- Github user anew commented on a diff in the pull request: https://github.com/apache/incubator-tephra/pull/18#discussion_r84390730 --- Diff: tephra-core/src/test/java/org/apache/tephra/TransactionSystemTest.java --- @@ -33,25 +33,33 @@ */ public abstract class TransactionSystemTest { - public static final byte[] C1 = new byte[] { 'c', '1' }; - public static final byte[] C2 = new byte[] { 'c', '2' }; - public static final byte[] C3 = new byte[] { 'c', '3' }; - public static final byte[] C4 = new byte[] { 'c', '4' }; + private static final byte[] C1 = new byte[] { 'c', '1' }; + private static final byte[] C2 = new byte[] { 'c', '2' }; + private static final byte[] C3 = new byte[] { 'c', '3' }; + private static final byte[] C4 = new byte[] { 'c', '4' }; protected abstract TransactionSystemClient getClient() throws Exception; protected abstract TransactionStateStorage getStateStorage() throws Exception; - // Unfortunately, in-memory mode and thrift mode throw different exceptions here - @Test(expected = Exception.class) + @Test public void testNegativeTimeout() throws Exception { - getClient().startShort(-1); + try { + getClient().startShort(-1); + Assert.fail("Expected illegal argument for negative timeout"); + } catch (IllegalArgumentException e) { + // expected + } } - // Unfortunately, in-memory mode and thrift mode throw different exceptions here - @Test(expected = Exception.class) + @Test public void testExcessiveTimeout() throws Exception { - getClient().startShort((int) TimeUnit.DAYS.toSeconds(10)); + try { + getClient().startShort((int) TimeUnit.DAYS.toSeconds(10)); + Assert.fail("Expected illegal argument for excessive timeout"); + } catch (IllegalArgumentException e) { --- End diff -- same as above > Transaction client should not retry startShort() if an invalid timeout is > given > -------------------------------------------------------------------------------- > > Key: TEPHRA-194 > URL: https://issues.apache.org/jira/browse/TEPHRA-194 > Project: Tephra > Issue Type: Bug > Components: client > Affects Versions: 0.9.0-incubating, 0.10.0-incubating > Reporter: Andreas Neumann > Assignee: Andreas Neumann > Fix For: 0.10.0-incubating > > > Currently, if an invalid timeout (negative, or too long) is given, the Tx > manager throws an IllegalArgumentException. The thrift client will catch that > and apply the retry strategy. However, in this case, retry is pointless, and > if the strategy is, for example, exponential backoff, if introduces > unneccessary load and latency. > The service should instead throw a meaningful exception for that, so that the > client knows not to retry. -- This message was sent by Atlassian JIRA (v6.3.4#6332)