@ -442,11 +442,19 @@ public class kelondroCollectionIndex {
if(arrayrow==null)thrownewkelondroException(arrayFile(this.path,this.filenameStub,this.loadfactor,chunksize,clusteridx,serialnumber).toString(),"array does not contain expected row");
// read the row and define a collection
byte[]indexkey=indexrow.getColBytes(idx_col_key);
byte[]arraykey=arrayrow.getColBytes(0);
if(!(index.order().wellformed(arraykey))){
// cleanup for a bad bug that corrupted the database
index.remove(indexkey);// the RowCollection must be considered lost
array.remove(rownumber);// loose the RowCollection (we don't know how much is lost)
serverLog.logSevere("kelondroCollectionIndex."+array.filename,"lost a RowCollection because of a bad arraykey");
returnnewkelondroRowSet(this.payloadrow,0);
}
kelondroRowSetcollection=newkelondroRowSet(this.payloadrow,arrayrow.getColBytes(1));// FIXME: this does not yet work with different rowdef in case of several rowdef.objectsize()
thrownewkelondroException(array.filename,"array contains wrong row '"+newString(arrayrow.getColBytes(0))+"', expected is '"+newString(indexrow.getColBytes(idx_col_key))+"', the row has been fixed");
serverLog.logSevere("kelondroCollectionIndex."+array.filename,"array contains wrong row '"+newString(arrayrow.getColBytes(0))+"', expected is '"+newString(indexrow.getColBytes(idx_col_key))+"', the row has been fixed");