@@ -117,6 +117,9 @@ void runMergeSegmentsFromWorkPackages() throws ExecutionException, InterruptedEx
117117 when (tokenStore .releaseClaim (anyString (), anyInt (), any ())).thenReturn (FutureUtils .emptyCompletedFuture ());
118118 when (tokenStore .fetchToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ()))
119119 .thenReturn (completedFuture (testTokenToBeMerged ));
120+ when (tokenStore .initializeSegment (any (), eq (PROCESSOR_NAME ), eq (new Segment (0 , 0 )), any ()))
121+ .thenReturn (FutureUtils .emptyCompletedFuture ());
122+
120123 workPackages .put (SEGMENT_TO_BE_MERGED , workPackageTwo );
121124
122125 ArgumentCaptor <TrackingToken > mergedTokenCaptor = ArgumentCaptor .forClass (TrackingToken .class );
@@ -126,10 +129,11 @@ void runMergeSegmentsFromWorkPackages() throws ExecutionException, InterruptedEx
126129 verify (tokenStore ).fetchSegment (eq (PROCESSOR_NAME ), eq (SEGMENT_ZERO .getSegmentId ()), any ());
127130 verify (tokenStore ).fetchSegment (eq (PROCESSOR_NAME ), eq (SEGMENT_ONE .getSegmentId ()), any ());
128131 verify (tokenStore ).deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ());
129- verify (tokenStore ).storeToken (mergedTokenCaptor .capture (),
130- eq (PROCESSOR_NAME ),
131- eq (SEGMENT_TO_MERGE ),
132- any ());
132+ verify (tokenStore ).deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_MERGE ), any ());
133+ verify (tokenStore ).initializeSegment (mergedTokenCaptor .capture (),
134+ eq (PROCESSOR_NAME ),
135+ eq (new Segment (0 , 0 )),
136+ any ());
133137 TrackingToken resultToken = mergedTokenCaptor .getValue ();
134138 assertTrue (resultToken .getClass ().isAssignableFrom (MergedTrackingToken .class ));
135139 assertEquals (testTokenToMerge , ((MergedTrackingToken ) resultToken ).lowerSegmentToken ());
@@ -151,6 +155,8 @@ void runMergeSegmentsAfterClaimingBoth() throws ExecutionException, InterruptedE
151155 .thenReturn (completedFuture (testTokenToMerge ));
152156 when (tokenStore .fetchToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ()))
153157 .thenReturn (completedFuture (testTokenToBeMerged ));
158+ when (tokenStore .initializeSegment (any (), eq (PROCESSOR_NAME ), eq (new Segment (0 , 0 )), any ()))
159+ .thenReturn (FutureUtils .emptyCompletedFuture ());
154160
155161 ArgumentCaptor <TrackingToken > mergedTokenCaptor = ArgumentCaptor .forClass (TrackingToken .class );
156162
@@ -159,10 +165,11 @@ void runMergeSegmentsAfterClaimingBoth() throws ExecutionException, InterruptedE
159165 verify (tokenStore ).fetchSegment (eq (PROCESSOR_NAME ), eq (SEGMENT_ZERO .getSegmentId ()), any ());
160166 verify (tokenStore ).fetchSegment (eq (PROCESSOR_NAME ), eq (SEGMENT_ONE .getSegmentId ()), any ());
161167 verify (tokenStore ).deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ());
162- verify (tokenStore ).storeToken (mergedTokenCaptor .capture (),
163- eq (PROCESSOR_NAME ),
164- eq (SEGMENT_TO_MERGE ),
165- any ());
168+ verify (tokenStore ).deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_MERGE ), any ());
169+ verify (tokenStore ).initializeSegment (mergedTokenCaptor .capture (),
170+ eq (PROCESSOR_NAME ),
171+ eq (new Segment (0 , 0 )),
172+ any ());
166173 TrackingToken resultToken = mergedTokenCaptor .getValue ();
167174 assertTrue (resultToken .getClass ().isAssignableFrom (MergedTrackingToken .class ));
168175 assertEquals (testTokenToMerge , ((MergedTrackingToken ) resultToken ).lowerSegmentToken ());
@@ -188,6 +195,8 @@ void runMergeSegmentsFromWorkPackageAndClaimedSegment() throws ExecutionExceptio
188195 when (tokenStore .releaseClaim (anyString (), anyInt (), any ())).thenReturn (FutureUtils .emptyCompletedFuture ());
189196 when (tokenStore .fetchToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ()))
190197 .thenReturn (completedFuture (testTokenToBeMerged ));
198+ when (tokenStore .initializeSegment (any (), eq (PROCESSOR_NAME ), eq (new Segment (0 , 0 )), any ()))
199+ .thenReturn (FutureUtils .emptyCompletedFuture ());
191200
192201 ArgumentCaptor <TrackingToken > mergedTokenCaptor = ArgumentCaptor .forClass (TrackingToken .class );
193202
@@ -196,10 +205,11 @@ void runMergeSegmentsFromWorkPackageAndClaimedSegment() throws ExecutionExceptio
196205 verify (tokenStore ).fetchSegment (eq (PROCESSOR_NAME ), eq (SEGMENT_ZERO .getSegmentId ()), any ());
197206 verify (tokenStore ).fetchSegment (eq (PROCESSOR_NAME ), eq (SEGMENT_ONE .getSegmentId ()), any ());
198207 verify (tokenStore ).deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ());
199- verify (tokenStore ).storeToken (mergedTokenCaptor .capture (),
200- eq (PROCESSOR_NAME ),
201- eq (SEGMENT_TO_MERGE ),
202- any ());
208+ verify (tokenStore ).deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_MERGE ), any ());
209+ verify (tokenStore ).initializeSegment (mergedTokenCaptor .capture (),
210+ eq (PROCESSOR_NAME ),
211+ eq (new Segment (0 , 0 )),
212+ any ());
203213 TrackingToken resultToken = mergedTokenCaptor .getValue ();
204214 assertTrue (resultToken .getClass ().isAssignableFrom (MergedTrackingToken .class ));
205215 assertEquals (testTokenToMerge , ((MergedTrackingToken ) resultToken ).lowerSegmentToken ());
@@ -236,6 +246,9 @@ void runCompletesExceptionallyThroughUnableToClaimTokenExceptionOnDelete() {
236246 when (workPackageTwo .abort (null )).thenReturn (FutureUtils .emptyCompletedFuture ());
237247 when (tokenStore .fetchToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ()))
238248 .thenReturn (completedFuture (new GlobalSequenceTrackingToken (1 )));
249+ when (tokenStore .deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_MERGE ), any ()))
250+ .thenReturn (FutureUtils .emptyCompletedFuture ());
251+
239252 workPackages .put (SEGMENT_TO_BE_MERGED , workPackageTwo );
240253
241254 doThrow (new UnableToClaimTokenException ("some exception" ))
@@ -263,6 +276,8 @@ void runCompletesExceptionallyThroughOtherException() {
263276 when (workPackageTwo .abort (null )).thenReturn (FutureUtils .emptyCompletedFuture ());
264277 when (tokenStore .fetchToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_BE_MERGED ), any ()))
265278 .thenReturn (completedFuture (new GlobalSequenceTrackingToken (1 )));
279+ when (tokenStore .deleteToken (eq (PROCESSOR_NAME ), eq (SEGMENT_TO_MERGE ), any ()))
280+ .thenReturn (FutureUtils .emptyCompletedFuture ());
266281 workPackages .put (SEGMENT_TO_BE_MERGED , workPackageTwo );
267282
268283 doThrow (new IllegalStateException ("some exception" ))
0 commit comments