Index: src/main/java/com/mongodb/DBApiLayer.java =================================================================== --- src/main/java/com/mongodb/DBApiLayer.java (revision b5f8133fe34857f5f197f3e50efc38f29084d0a4) +++ src/main/java/com/mongodb/DBApiLayer.java (revision ) @@ -218,8 +218,20 @@ } } + WriteResult last = null; + + int cur = 0; + int maxsize = _mongo.getMaxBsonObjectSize(); + + OutMessage om = new OutMessage( _mongo , 2002 ); + + om.writeInt( 0 ); // reserved + om.writeCString( _fullNameSpace ); + if ( shouldApply ){ + - for ( int i=0; i 2 * maxsize ){ + last = _connector.say( _db , om , concern ); + om = new OutMessage( _mongo , 2002 ); + - om.writeInt( 0 ); // reserved - om.writeCString( _fullNameSpace ); + om.writeInt( 0 ); // reserved + om.writeCString( _fullNameSpace ); + } - for ( ; cur 2 * maxsize ){ - cur++; - break; + last = _connector.say( _db , om , concern ); + + om = new OutMessage( _mongo , 2002 ); + + om.writeInt( 0 ); // reserved + om.writeCString( _fullNameSpace ); } } + } + + // all chunks were less than 'maxsize' + if ( last == null ) { last = _connector.say( _db , om , concern ); }