28
28
import java .util .Iterator ;
29
29
import java .util .concurrent .ConcurrentLinkedQueue ;
30
30
31
- import org .junit .Ignore ;
32
31
import org .junit .Test ;
33
32
34
33
import com .arangodb .ArangoDB ;
35
34
import com .arangodb .ArangoDBException ;
35
+ import com .arangodb .ArangoDatabase ;
36
36
import com .arangodb .entity .ArangoDBVersion ;
37
37
38
38
/**
@@ -52,10 +52,8 @@ public void chunkSizeSmall() {
52
52
}
53
53
54
54
@ Test
55
- @ Ignore // need server fix
56
55
public void multiThread () throws Exception {
57
56
final ArangoDB arangoDB = new ArangoDB .Builder ().build ();
58
- arangoDB .getVersion ();// authenticate
59
57
60
58
final Collection <String > result = new ConcurrentLinkedQueue <String >();
61
59
final Thread fast = new Thread () {
@@ -91,6 +89,48 @@ public void run() {
91
89
assertThat (iterator .next (), is (SLOW ));
92
90
}
93
91
92
+ @ Test
93
+ public void multiThreadMultiDatabases () throws Exception {
94
+ final ArangoDB arangoDB = new ArangoDB .Builder ().build ();
95
+
96
+ try {
97
+ arangoDB .createDatabase ("db1" );
98
+ arangoDB .createDatabase ("db2" );
99
+ final ArangoDatabase db1 = arangoDB .db ("db1" );
100
+ final ArangoDatabase db2 = arangoDB .db ("db2" );
101
+
102
+ final Collection <String > result = new ConcurrentLinkedQueue <String >();
103
+ final Thread t1 = new Thread () {
104
+ @ Override
105
+ public void run () {
106
+ try {
107
+ db1 .query ("return sleep(1)" , null , null , null );
108
+ result .add ("1" );
109
+ } catch (final ArangoDBException e ) {
110
+ }
111
+ }
112
+ };
113
+ final Thread t2 = new Thread () {
114
+ @ Override
115
+ public void run () {
116
+ try {
117
+ db2 .query ("return sleep(1)" , null , null , null );
118
+ result .add ("1" );
119
+ } catch (final ArangoDBException e ) {
120
+ }
121
+ }
122
+ };
123
+ t2 .start ();
124
+ t1 .start ();
125
+ t2 .join ();
126
+ t1 .join ();
127
+ assertThat (result .size (), is (2 ));
128
+ } finally {
129
+ arangoDB .db ("db1" ).drop ();
130
+ arangoDB .db ("db2" ).drop ();
131
+ }
132
+ }
133
+
94
134
@ Test
95
135
public void minOneConnection () {
96
136
final ArangoDB arangoDB = new ArangoDB .Builder ().maxConnections (0 ).build ();
0 commit comments