Skip to content

Commit e394110

Browse files
committed
fix ObjectId compareTo and more tests
1 parent daa17fa commit e394110

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

src/main/com/mongodb/ObjectId.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,13 @@ public int compareTo( ObjectId id ){
238238
if ( id == null )
239239
return -1;
240240

241-
int x = id._time - _time;
242-
if ( x != 0 )
243-
return x;
241+
long xx = id.getTime() - getTime();
242+
if ( xx > 0 )
243+
return -1;
244+
else if ( xx < 0 )
245+
return 1;
244246

245-
x = id._machine - _machine;
247+
int x = id._machine - _machine;
246248
if ( x != 0 )
247249
return -x;
248250

src/test/com/mongodb/ByteTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ public void testArray1(){
158158
public void testObjcetId(){
159159
assertTrue( (new ObjectId()).compareTo( new ObjectId() ) < 0 );
160160
assertTrue( (new ObjectId(0 , 0 , 0 )).compareTo( new ObjectId() ) < 0 );
161+
assertTrue( (new ObjectId(0 , 0 , 0 )).compareTo( new ObjectId( 0 , 0 , 1 ) ) < 0 );
162+
163+
assertTrue( (new ObjectId(5 , 5 , 5 )).compareTo( new ObjectId( 5 , 5 , 6 ) ) < 0 );
164+
assertTrue( (new ObjectId(5 , 5 , 5 )).compareTo( new ObjectId( 5 , 6 , 5 ) ) < 0 );
165+
assertTrue( (new ObjectId(5 , 5 , 5 )).compareTo( new ObjectId( 6 , 5 , 5 ) ) < 0 );
166+
161167
}
162168

163169

0 commit comments

Comments
 (0)