[ 
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)

Reply via email to