2828import java .util .Iterator ;
2929import java .util .concurrent .ConcurrentLinkedQueue ;
3030
31- import org .junit .Ignore ;
3231import org .junit .Test ;
3332
3433import com .arangodb .ArangoDB ;
3534import com .arangodb .ArangoDBException ;
35+ import com .arangodb .ArangoDatabase ;
3636import com .arangodb .entity .ArangoDBVersion ;
3737
3838/**
@@ -52,10 +52,8 @@ public void chunkSizeSmall() {
5252 }
5353
5454 @ Test
55- @ Ignore // need server fix
5655 public void multiThread () throws Exception {
5756 final ArangoDB arangoDB = new ArangoDB .Builder ().build ();
58- arangoDB .getVersion ();// authenticate
5957
6058 final Collection <String > result = new ConcurrentLinkedQueue <String >();
6159 final Thread fast = new Thread () {
@@ -91,6 +89,48 @@ public void run() {
9189 assertThat (iterator .next (), is (SLOW ));
9290 }
9391
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+
94134 @ Test
95135 public void minOneConnection () {
96136 final ArangoDB arangoDB = new ArangoDB .Builder ().maxConnections (0 ).build ();
0 commit comments