From 43754e19c64d428feff22f25b0f55967a7fcae88 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Fri, 15 Sep 2017 16:53:25 -0400 Subject: [PATCH] GH-76: DynamoDbMDStore: add create retry options Resolves spring-projects/spring-integration-aws#77 Resolves spring-projects/spring-integration-aws#76 Add configuration options in the `DynamoDbMetaDataStore` for the retry policy for the `DescribeTableRequest` Change the `createTableLatch` to wait for the whole retry time --- gradle/wrapper/gradle-wrapper.jar | Bin 54712 -> 54708 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- .../aws/metadata/DynamoDbMetaDataStore.java | 31 +++++++++++++----- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index fdcbf55d76f84df990c4d775f4fe2b2b8a05cd8a..7a3265ee94c0ab25cf079ac8ccdf87f41d455d42 100644 GIT binary patch delta 673 zcmYL{T}YEr9LC@CS2iPM?-E7dDatC-SEkOe=9HWi7A|cvi!7}mR_kk$kr%=)BqA>g zwTIC+k+YNsInN&s|1%lPmm+E8Eh%)}BF_bAu%@Q_3^@dEz<l3g#bM?1)#;Dy%C z*08Rfp_Kwr&n_$#^@k<$_J3tb8p5lYQ&ern_>2i&vk|sgm5ME*;j$Po#HGGU$o4ut zVzaems!Pipl+CHkkB+&cBs+!K)|La8vj8h|Dk*JgD;Jh|m0CK5^vxfpvMzy<`9q9g zTsTe!4=kSDxVNA(A0`(X>6r&_J$qqD%BYVhRPN=n5NEx+gf+&k=v55*itr`UOy_+Z zD@AfLs!*sG-+Ig8NXU4}<)fRpKDZOVqE@=yFHq}OaQd@KrU4Wmd>#aSeGwT?5UXcak+u^JQr9RKSG`{j%M7A*Dx9H<8Jl?#zYtUjVpqWOon)o1DZFX^1&JE}ZvX%Q delta 808 zcmYk4Ur5tY6vuz}IOevdZq;=DnynOJ`-zr?Ww}uMLqk&*T4_Y}pcztGf<6cm;)9f; z=9jWek$mt)2!shj!IW)Un`={N1od2!FIf>0J#=@~++arClaP768ev7 zKV)~eluD9x@li>&W;OkL^LjIr`sGQt!>fvP{wc#x?=fTKuu5{3Cu(MAUFS_ac^4eM zvh7mz`KmO-Jl@pYZ~(&cfzU$_CXch2!rWzjWZhV?o zC_i&El!m7v19EcX^R2l8R_3Oli#Idn#Y1hLfQ5M*&|VM^GYSMeSCAwsyPfgyzEi-L zPCc65Dzvkl+e}oJo5c}q6^0#K2bLtuK%k18)uNy=aF%SfLcR%{Ce;-ovx3EBtVd3L zHXZ~Ob{FoTgN<5mPvFu!g)-W>wBcG?5~jH|wu_|7_C4ZOhr%*l=n$cSj%?gsGGII`vmclZHv11UFH*=LUNQ(bV@B6{(2oh(XU8~*3vf*bTbb0E*RjB p%FKsw^ac%jG3nipniah@_Obu}W&RxI?I+=C6`dQla0@E( new DescribeTableRequest(DynamoDbMetaDataStore.this.table.getTableName())) .withPollingStrategy( - new PollingStrategy(new MaxAttemptsRetryStrategy(25), - new FixedDelayStrategy(1))); + new PollingStrategy( + new MaxAttemptsRetryStrategy(DynamoDbMetaDataStore.this.createTableRetries), + new FixedDelayStrategy(DynamoDbMetaDataStore.this.createTableDelay))); waiter.runAsync(waiterParameters, new WaiterHandler() { @@ -173,10 +186,12 @@ public class DynamoDbMetaDataStore implements ConcurrentMetadataStore, Initializ private void awaitForActive() { try { - this.createTableLatch.await(10, TimeUnit.SECONDS); + this.createTableLatch.await(this.createTableRetries * this.createTableDelay, TimeUnit.SECONDS); } catch (InterruptedException e) { - + Thread.currentThread().interrupt(); + throw new IllegalStateException("The DynamoDb table " + this.table.getTableName() + + " has not been created during " + this.createTableRetries * this.createTableDelay + " seconds"); } }