justinsb / jetcd

Java binding for etcd
Apache License 2.0
137 stars 55 forks source link

when delete a empty dir in etcd,occur an exception,as follows: #19

Open stefiane opened 8 years ago

stefiane commented 8 years ago

com.justinsb.etcd.EtcdClientException: Error response from etcd: OK(200) at com.justinsb.etcd.EtcdClient.extractJsonResponse(EtcdClient.java:373) at com.justinsb.etcd.EtcdClient$2.apply(EtcdClient.java:334) at com.justinsb.etcd.EtcdClient$2.apply(EtcdClient.java:1) at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:859) at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:293) at com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:150) at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:135) at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185) at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:53) at com.justinsb.etcd.EtcdClient$3.completed(EtcdClient.java:405) at com.justinsb.etcd.EtcdClient$3.completed(EtcdClient.java:1) at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:112) at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:163) at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:350) at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:238) at org.apache.http.impl.nio.client.LoggingAsyncRequestExecutor.inputReady(LoggingAsyncRequestExecutor.java:87) at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:266) at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:73) at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:37) at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:113) at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159) at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338) at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316) at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277) at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105) at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) at java.lang.Thread.run(Unknown Source)

then,I check source code ,find some unreasonable codes,in function deleteDirectory(String key),we preset some expectedHttpStatusCodes,only has statuscode 202(mean server receive request,but has not process this request),i have done some exercises to verify that when i send a request that delete a empty dir in etcd,i finally get 200 statuscode,so i propose that add 200 statuscode to the list of expectedHttpStatusCodes。