2121package com .arangodb .async .internal ;
2222
2323import com .arangodb .ArangoDBException ;
24- import com .arangodb .async .*;
25- import com .arangodb .entity .*;
24+ import com .arangodb .async .ArangoCollectionAsync ;
25+ import com .arangodb .async .ArangoCursorAsync ;
26+ import com .arangodb .async .ArangoDatabaseAsync ;
27+ import com .arangodb .async .ArangoGraphAsync ;
28+ import com .arangodb .async .ArangoRouteAsync ;
29+ import com .arangodb .async .ArangoSearchAsync ;
30+ import com .arangodb .async .ArangoViewAsync ;
31+ import com .arangodb .entity .AqlExecutionExplainEntity ;
32+ import com .arangodb .entity .AqlFunctionEntity ;
33+ import com .arangodb .entity .AqlParseEntity ;
34+ import com .arangodb .entity .ArangoDBEngine ;
35+ import com .arangodb .entity .ArangoDBVersion ;
36+ import com .arangodb .entity .CollectionEntity ;
37+ import com .arangodb .entity .CursorEntity ;
38+ import com .arangodb .entity .DatabaseEntity ;
39+ import com .arangodb .entity .EdgeDefinition ;
40+ import com .arangodb .entity .GraphEntity ;
41+ import com .arangodb .entity .IndexEntity ;
42+ import com .arangodb .entity .Permissions ;
43+ import com .arangodb .entity .QueryCachePropertiesEntity ;
44+ import com .arangodb .entity .QueryEntity ;
45+ import com .arangodb .entity .QueryTrackingPropertiesEntity ;
46+ import com .arangodb .entity .StreamTransactionEntity ;
47+ import com .arangodb .entity .TransactionEntity ;
48+ import com .arangodb .entity .TraversalEntity ;
49+ import com .arangodb .entity .ViewEntity ;
50+ import com .arangodb .entity .ViewType ;
2651import com .arangodb .entity .arangosearch .AnalyzerEntity ;
2752import com .arangodb .entity .arangosearch .analyzer .SearchAnalyzer ;
2853import com .arangodb .internal .ArangoCursorExecute ;
54+ import com .arangodb .internal .ArangoErrors ;
2955import com .arangodb .internal .InternalArangoDatabase ;
3056import com .arangodb .internal .net .HostHandle ;
3157import com .arangodb .internal .util .DocumentUtil ;
32- import com .arangodb .model .*;
58+ import com .arangodb .model .AqlFunctionCreateOptions ;
59+ import com .arangodb .model .AqlFunctionDeleteOptions ;
60+ import com .arangodb .model .AqlFunctionGetOptions ;
61+ import com .arangodb .model .AqlQueryExplainOptions ;
62+ import com .arangodb .model .AqlQueryOptions ;
63+ import com .arangodb .model .CollectionCreateOptions ;
64+ import com .arangodb .model .CollectionsReadOptions ;
65+ import com .arangodb .model .DocumentReadOptions ;
66+ import com .arangodb .model .GraphCreateOptions ;
67+ import com .arangodb .model .StreamTransactionOptions ;
68+ import com .arangodb .model .TransactionOptions ;
69+ import com .arangodb .model .TraversalOptions ;
3370import com .arangodb .model .arangosearch .AnalyzerDeleteOptions ;
3471import com .arangodb .model .arangosearch .ArangoSearchCreateOptions ;
3572import com .arangodb .velocypack .Type ;
3875import java .util .Collection ;
3976import java .util .Collections ;
4077import java .util .Map ;
41- import java .util .Objects ;
4278import java .util .concurrent .CompletableFuture ;
79+ import java .util .concurrent .CompletionException ;
4380import java .util .concurrent .ExecutionException ;
4481
4582/**
@@ -65,7 +102,21 @@ public CompletableFuture<ArangoDBEngine> getEngine() {
65102
66103 @ Override
67104 public CompletableFuture <Boolean > exists () {
68- return getInfo ().thenApply (Objects ::nonNull ).exceptionally (Objects ::isNull );
105+ return getInfo ()
106+ .handle ((result , ex ) -> {
107+ if (result != null ) {
108+ return true ;
109+ }
110+
111+ if (ex instanceof CompletionException && ex .getCause () instanceof ArangoDBException ) {
112+ ArangoDBException e = (ArangoDBException ) ex .getCause ();
113+ if (ArangoErrors .ERROR_ARANGO_DATABASE_NOT_FOUND .equals (e .getErrorNum ())) {
114+ return false ;
115+ }
116+ }
117+
118+ throw new CompletionException (ex );
119+ });
69120 }
70121
71122 @ Override
0 commit comments