Skip to content

Commit 3183334

Browse files
author
Zhen
committed
Merge branch '1.2' into 1.3
2 parents 4215bd0 + e7310e8 commit 3183334

18 files changed

+91
-60
lines changed

driver/src/main/java/org/neo4j/driver/internal/DriverFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ private static SecurityPlan createSecurityPlan( BoltServerAddress address, Confi
221221
* Establish a complete SecurityPlan based on the details provided for
222222
* driver construction.
223223
*/
224+
@SuppressWarnings( "deprecation" )
224225
private static SecurityPlan createSecurityPlanImpl( BoltServerAddress address, Config config )
225226
throws GeneralSecurityException, IOException
226227
{

driver/src/main/java/org/neo4j/driver/internal/NetworkSession.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class NetworkSession implements Session, SessionResourcesHandler
5252
private final RetryLogic<RetryDecision> retryLogic;
5353
protected final Logger logger;
5454

55-
private String lastBookmark;
55+
private String bookmark;
5656
private PooledConnection currentConnection;
5757
private ExplicitTransaction currentTransaction;
5858

@@ -116,6 +116,7 @@ public static StatementResult run( Connection connection, Statement statement,
116116
return result;
117117
}
118118

119+
@Deprecated
119120
@Override
120121
public synchronized void reset()
121122
{
@@ -125,7 +126,7 @@ public synchronized void reset()
125126
if ( currentTransaction != null )
126127
{
127128
currentTransaction.markToClose();
128-
updateLastBookmarkFrom( currentTransaction );
129+
setBookmark( currentTransaction.bookmark() );
129130
currentTransaction = null;
130131
}
131132
if ( currentConnection != null )
@@ -174,10 +175,11 @@ public synchronized Transaction beginTransaction()
174175
return beginTransaction( mode );
175176
}
176177

178+
@Deprecated
177179
@Override
178180
public synchronized Transaction beginTransaction( String bookmark )
179181
{
180-
lastBookmark = bookmark;
182+
setBookmark( bookmark );
181183
return beginTransaction();
182184
}
183185

@@ -193,15 +195,21 @@ public <T> T writeTransaction( TransactionWork<T> work )
193195
return transaction( AccessMode.WRITE, work );
194196
}
195197

196-
void setLastBookmark( String bookmark )
198+
// Internal method for setting the bookmark explicitly, mainly for testing.
199+
// This method does not prevent setting the bookmark to null since that
200+
// is a valid requirement for some test scenarios.
201+
void setBookmark( String bookmark )
197202
{
198-
lastBookmark = bookmark;
203+
if( bookmark != null )
204+
{
205+
this.bookmark = bookmark;
206+
}
199207
}
200208

201209
@Override
202210
public String lastBookmark()
203211
{
204-
return lastBookmark;
212+
return bookmark;
205213
}
206214

207215
@Override
@@ -222,7 +230,7 @@ public synchronized void onTransactionClosed( ExplicitTransaction tx )
222230
if ( currentTransaction != null && currentTransaction == tx )
223231
{
224232
closeCurrentConnection();
225-
updateLastBookmarkFrom( currentTransaction );
233+
setBookmark( currentTransaction.bookmark() );
226234
currentTransaction = null;
227235
}
228236
}
@@ -294,7 +302,7 @@ private synchronized Transaction beginTransaction( AccessMode mode )
294302
syncAndCloseCurrentConnection();
295303
currentConnection = acquireConnection( mode );
296304

297-
currentTransaction = new ExplicitTransaction( currentConnection, this, lastBookmark );
305+
currentTransaction = new ExplicitTransaction( currentConnection, this, bookmark);
298306
currentConnection.setResourcesHandler( this );
299307
return currentTransaction;
300308
}
@@ -387,14 +395,6 @@ private void closeCurrentConnection( boolean sync )
387395
}
388396
}
389397

390-
private void updateLastBookmarkFrom( ExplicitTransaction tx )
391-
{
392-
if ( tx.bookmark() != null )
393-
{
394-
lastBookmark = tx.bookmark();
395-
}
396-
}
397-
398398
private static List<Throwable> recordError( Throwable error, List<Throwable> errors )
399399
{
400400
if ( errors == null )

driver/src/main/java/org/neo4j/driver/internal/SessionFactoryImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public Session newInstance( AccessMode mode, String bookmark )
5353
{
5454
session = new NetworkSession( connectionProvider, mode, retryLogic, logging );
5555
}
56-
session.setLastBookmark( bookmark );
56+
session.setBookmark( bookmark );
5757
return session;
5858
}
5959

driver/src/test/java/org/neo4j/driver/internal/NetworkSessionTest.java

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ public void closesClosedConnectionUsedForRunWhenSessionIsClosed()
301301
verify( connection ).close();
302302
}
303303

304+
@SuppressWarnings( "deprecation" )
304305
@Test
305306
public void resetDoesNothingWhenNoTransactionAndNoConnection()
306307
{
@@ -541,8 +542,9 @@ public void bookmarkIsPropagatedInBeginTransaction()
541542
PooledConnection connection = mock( PooledConnection.class );
542543
when( connectionProvider.acquireConnection( READ ) ).thenReturn( connection );
543544
NetworkSession session = newSession( connectionProvider, READ );
545+
session.setBookmark(bookmark);
544546

545-
try ( Transaction ignore = session.beginTransaction( bookmark ) )
547+
try ( Transaction ignore = session.beginTransaction() )
546548
{
547549
verifyBeginTx( connection, bookmark );
548550
}
@@ -595,34 +597,34 @@ public void setLastBookmark()
595597
{
596598
NetworkSession session = newSession( mock( ConnectionProvider.class ), WRITE );
597599

598-
session.setLastBookmark( "TheBookmark" );
600+
session.setBookmark( "TheBookmark" );
599601

600602
assertEquals( "TheBookmark", session.lastBookmark() );
601603
}
602604

603605
@Test
604-
public void possibleToOverwriteBookmarkWithNull()
606+
public void testPassingNoBookmarkShouldRetainBookmark()
605607
{
606-
NetworkSession session = newSession( mock( ConnectionProvider.class ), WRITE );
607-
session.setLastBookmark( "TheBookmark" );
608-
609-
session.setLastBookmark( null );
610-
611-
assertNull( session.lastBookmark() );
608+
ConnectionProvider connectionProvider = mock( ConnectionProvider.class );
609+
PooledConnection connection = openConnectionMock();
610+
when( connectionProvider.acquireConnection( READ ) ).thenReturn( connection );
611+
NetworkSession session = newSession( connectionProvider, READ );
612+
session.setBookmark( "X" );
613+
session.beginTransaction();
614+
assertThat( session.lastBookmark(), equalTo( "X" ) );
612615
}
613616

617+
@SuppressWarnings( "deprecation" )
614618
@Test
615-
public void allowsToStartTransactionWithNullBookmark()
619+
public void testPassingNullBookmarkShouldRetainBookmark()
616620
{
617621
ConnectionProvider connectionProvider = mock( ConnectionProvider.class );
618622
PooledConnection connection = openConnectionMock();
619623
when( connectionProvider.acquireConnection( READ ) ).thenReturn( connection );
620624
NetworkSession session = newSession( connectionProvider, READ );
621-
session.setLastBookmark( "SomeUndesiredBookmark" );
622-
625+
session.setBookmark( "X" );
623626
session.beginTransaction( null );
624-
625-
assertNull( session.lastBookmark() );
627+
assertThat( session.lastBookmark(), equalTo( "X" ) );
626628
}
627629

628630
@Test
@@ -1096,7 +1098,7 @@ private static NetworkSession newSession( ConnectionProvider connectionProvider,
10961098
RetryLogic<RetryDecision> retryLogic, String bookmark )
10971099
{
10981100
NetworkSession session = new NetworkSession( connectionProvider, mode, retryLogic, DEV_NULL_LOGGING );
1099-
session.setLastBookmark( bookmark );
1101+
session.setBookmark( bookmark );
11001102
return session;
11011103
}
11021104

driver/src/test/java/org/neo4j/driver/internal/RoutingDriverBoltKitTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -548,9 +548,9 @@ public void shouldSendAndReceiveBookmark() throws Exception
548548
StubServer writer = StubServer.start( "write_tx_with_bookmarks.script", 9007 );
549549

550550
try ( Driver driver = GraphDatabase.driver( "bolt+routing://127.0.0.1:9001", config );
551-
Session session = driver.session() )
551+
Session session = driver.session( "OldBookmark" ) )
552552
{
553-
try ( Transaction tx = session.beginTransaction( "OldBookmark" ) )
553+
try ( Transaction tx = session.beginTransaction() )
554554
{
555555
tx.run( "CREATE (n {name:'Bob'})" );
556556
tx.success();

driver/src/test/java/org/neo4j/driver/internal/RoutingDriverTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ public void shouldRoundRobinAmongWriteServers()
317317
assertNotEquals( write3.address, write1.address );
318318
}
319319

320+
@SuppressWarnings( "deprecation" )
320321
@Test
321322
public void testTrustOnFirstUseNotCompatibleWithRoutingDriver()
322323
{
@@ -442,7 +443,7 @@ private static class NetworkSessionWithAddressFactory extends SessionFactoryImpl
442443
public Session newInstance( AccessMode mode, String bookmark )
443444
{
444445
NetworkSessionWithAddress session = new NetworkSessionWithAddress( connectionProvider, mode, logging );
445-
session.setLastBookmark( bookmark );
446+
session.setBookmark( bookmark );
446447
return session;
447448
}
448449
}

driver/src/test/java/org/neo4j/driver/v1/ConfigTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public void shouldDefaultToKnownCerts()
5151
assertEquals( authConfig.strategy(), Config.TrustStrategy.Strategy.TRUST_ALL_CERTIFICATES );
5252
}
5353

54+
@SuppressWarnings( "deprecation" )
5455
@Test
5556
public void shouldChangeToNewKnownCerts()
5657
{

driver/src/test/java/org/neo4j/driver/v1/GraphDatabaseTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public void boltPlusDiscoverySchemeShouldInstantiateClusterDriver() throws Excep
6969
assertThat( server.exitStatus(), equalTo( 0 ) );
7070
}
7171

72+
@SuppressWarnings( "deprecation" )
7273
@Test
7374
public void boltPlusDiscoverySchemeShouldNotSupportTrustOnFirstUse()
7475
{

driver/src/test/java/org/neo4j/driver/v1/integration/BookmarkIT.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,17 +103,20 @@ public void shouldThrowForInvalidBookmark()
103103
{
104104
String invalidBookmark = "hi, this is an invalid bookmark";
105105

106-
try
107-
{
108-
session.beginTransaction( invalidBookmark );
109-
fail( "Exception expected" );
110-
}
111-
catch ( Exception e )
112-
{
113-
assertThat( e, instanceOf( ClientException.class ) );
106+
try (Session session = driver.session( invalidBookmark )) {
107+
try
108+
{
109+
session.beginTransaction();
110+
fail( "Exception expected" );
111+
}
112+
catch ( Exception e )
113+
{
114+
assertThat( e, instanceOf( ClientException.class ) );
115+
}
114116
}
115117
}
116118

119+
@SuppressWarnings( "deprecation" )
117120
@Test
118121
public void shouldThrowForUnreachableBookmark()
119122
{

driver/src/test/java/org/neo4j/driver/v1/integration/CausalClusteringIT.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ public String apply( Session session )
136136

137137
assertNotNull( bookmark );
138138

139-
try ( Session session = driver.session();
140-
Transaction tx = session.beginTransaction( bookmark ) )
139+
try ( Session session = driver.session( bookmark );
140+
Transaction tx = session.beginTransaction() )
141141
{
142142
Record record = tx.run( "MATCH (n:Person) RETURN COUNT(*) AS count" ).next();
143143
assertEquals( 1, record.get( "count" ).asInt() );
@@ -154,7 +154,7 @@ public void shouldUseBookmarkFromAReadSessionInAWriteSession() throws Exception
154154

155155
try ( Driver driver = createDriver( leader.getBoltUri() ) )
156156
{
157-
inExpirableSession( driver, createWritableSession(), new Function<Session,Void>()
157+
inExpirableSession( driver, createWritableSession( null ), new Function<Session,Void>()
158158
{
159159
@Override
160160
public Void apply( Session session )
@@ -178,12 +178,12 @@ public Void apply( Session session )
178178

179179
assertNotNull( bookmark );
180180

181-
inExpirableSession( driver, createWritableSession(), new Function<Session,Void>()
181+
inExpirableSession( driver, createWritableSession( bookmark ), new Function<Session,Void>()
182182
{
183183
@Override
184184
public Void apply( Session session )
185185
{
186-
try ( Transaction tx = session.beginTransaction( bookmark ) )
186+
try ( Transaction tx = session.beginTransaction() )
187187
{
188188
tx.run( "CREATE (p:Person {name: {name} })", Values.parameters( "name", "Alistair" ) );
189189
tx.success();
@@ -250,11 +250,11 @@ public void beginTransactionThrowsForInvalidBookmark()
250250
ClusterMember leader = clusterRule.getCluster().leader();
251251

252252
try ( Driver driver = createDriver( leader.getBoltUri() );
253-
Session session = driver.session() )
253+
Session session = driver.session( invalidBookmark ) )
254254
{
255255
try
256256
{
257-
session.beginTransaction( invalidBookmark );
257+
session.beginTransaction();
258258
fail( "Exception expected" );
259259
}
260260
catch ( Exception e )
@@ -265,6 +265,7 @@ public void beginTransactionThrowsForInvalidBookmark()
265265
}
266266
}
267267

268+
@SuppressWarnings( "deprecation" )
268269
@Test
269270
public void beginTransactionThrowsForUnreachableBookmark()
270271
{
@@ -333,8 +334,8 @@ public String apply( Session session )
333334
}
334335
} );
335336

336-
try ( Session session2 = driver.session( AccessMode.READ );
337-
Transaction tx2 = session2.beginTransaction( bookmark ) )
337+
try ( Session session2 = driver.session( AccessMode.READ, bookmark );
338+
Transaction tx2 = session2.beginTransaction() )
338339
{
339340
Record record = tx2.run( "MATCH (n:Person) RETURN COUNT(*) AS count" ).next();
340341
tx2.success();
@@ -347,7 +348,7 @@ private int executeWriteAndReadThroughBolt( ClusterMember member ) throws Timeou
347348
{
348349
try ( Driver driver = createDriver( member.getRoutingUri() ) )
349350
{
350-
return inExpirableSession( driver, createWritableSession(), executeWriteAndRead() );
351+
return inExpirableSession( driver, createWritableSession( null ), executeWriteAndRead() );
351352
}
352353
}
353354

@@ -363,14 +364,14 @@ public Session apply( Driver driver )
363364
};
364365
}
365366

366-
private Function<Driver,Session> createWritableSession()
367+
private Function<Driver,Session> createWritableSession( final String bookmark )
367368
{
368369
return new Function<Driver,Session>()
369370
{
370371
@Override
371372
public Session apply( Driver driver )
372373
{
373-
return driver.session( AccessMode.WRITE );
374+
return driver.session( AccessMode.WRITE, bookmark );
374375
}
375376
};
376377
}

0 commit comments

Comments
 (0)