Program: 98202
Project: 98202
Buggy source:
@Override public void deleteObjects(long schemaOid,ArrayList<PersistenceCapableImpl> objects){
  PagedPosIndex oi=schemaIndex.getSchema(schemaOid).getObjectIndex();
  for (  PersistenceCapableImpl co : objects) {
    long oid=co.jdoZooGetOid();
    long pos=oidIndex.removeOidNoFail(oid,-1);
    if (pos == -1) {
      throw new JDOObjectNotFoundException("String_Node_Str" + Util.oidToString(oid));
    }
    do {
      long nextPos=oi.removePosLongAndCheck(pos,freeIndex);
      nextPos=nextPos | PagedPosIndex.MARK_SECONDARY;
      pos=nextPos;
    }
 while (pos != PagedPosIndex.MARK_SECONDARY);
  }
  ZooClassDef clsDef=schemaIndex.getSchema(schemaOid).getClassDef();
  for (  ZooFieldDef field : clsDef.getAllFields()) {
    if (!field.isIndexed()) {
      continue;
    }
    SchemaIndexEntry schemaTop=schemaIndex.getSchema(field.getDeclaringType().getOid());
    LongLongIndex fieldInd=(LongLongIndex)schemaTop.getIndex(field);
    try {
      Field jField=field.getJavaField();
      if (field.isString()) {
        for (        PersistenceCapableImpl co : objects) {
          long l=BitTools.toSortableLong((String)jField.get(co));
          fieldInd.removeLong(l,co.jdoZooGetOid());
        }
      }
 else {
switch (field.getPrimitiveType()) {
case BOOLEAN:
          for (          PersistenceCapableImpl co : objects) {
            fieldInd.removeLong(jField.getBoolean(co) ? 1 : 0,co.jdoZooGetOid());
          }
        break;
case BYTE:
      for (      PersistenceCapableImpl co : objects) {
        fieldInd.removeLong(jField.getByte(co),co.jdoZooGetOid());
      }
    break;
case DOUBLE:
  System.out.println("String_Node_Str");
break;
case FLOAT:
System.out.println("String_Node_Str");
break;
case INT:
for (PersistenceCapableImpl co : objects) {
fieldInd.removeLong(jField.getInt(co),co.jdoZooGetOid());
}
break;
case LONG:
for (PersistenceCapableImpl co : objects) {
fieldInd.removeLong(jField.getLong(co),co.jdoZooGetOid());
}
break;
case SHORT:
for (PersistenceCapableImpl co : objects) {
fieldInd.removeLong(jField.getShort(co),co.jdoZooGetOid());
}
break;
default :
throw new IllegalArgumentException("String_Node_Str" + field.getPrimitiveType());
}
}
}
 catch (SecurityException e) {
throw new JDOFatalDataStoreException("String_Node_Str" + field.getName(),e);
}
catch (IllegalArgumentException e) {
throw new JDOFatalDataStoreException("String_Node_Str" + field.getName(),e);
}
catch (IllegalAccessException e) {
throw new JDOFatalDataStoreException("String_Node_Str" + field.getName(),e);
}
}
}

Fixed version (ground truth):
@Override public void deleteObjects(long schemaOid,ArrayList<PersistenceCapableImpl> objects){
  PagedPosIndex oi=schemaIndex.getSchema(schemaOid).getObjectIndex();
  for (  PersistenceCapableImpl co : objects) {
    long oid=co.jdoZooGetOid();
    long pos=oidIndex.removeOidNoFail(oid,-1);
    if (pos == -1) {
      throw new JDOObjectNotFoundException("String_Node_Str" + Util.oidToString(oid));
    }
    do {
      long nextPos=oi.removePosLongAndCheck(pos,freeIndex);
      nextPos=nextPos | PagedPosIndex.MARK_SECONDARY;
      pos=nextPos;
    }
 while (pos != PagedPosIndex.MARK_SECONDARY);
  }
  ZooClassDef clsDef=schemaIndex.getSchema(schemaOid).getClassDef();
  for (  ZooFieldDef field : clsDef.getAllFields()) {
    if (!field.isIndexed()) {
      continue;
    }
    SchemaIndexEntry schemaTop=schemaIndex.getSchema(field.getDeclaringType().getOid());
    LongLongIndex fieldInd=(LongLongIndex)schemaTop.getIndex(field);
    try {
      Field jField=field.getJavaField();
      if (field.isString()) {
        for (        PersistenceCapableImpl co : objects) {
          String str=(String)jField.get(co);
          long l=(str != null ? BitTools.toSortableLong(str) : DataDeSerializerNoClass.NULL);
          fieldInd.removeLong(l,co.jdoZooGetOid());
        }
      }
 else {
switch (field.getPrimitiveType()) {
case BOOLEAN:
          for (          PersistenceCapableImpl co : objects) {
            fieldInd.removeLong(jField.getBoolean(co) ? 1 : 0,co.jdoZooGetOid());
          }
        break;
case BYTE:
      for (      PersistenceCapableImpl co : objects) {
        fieldInd.removeLong(jField.getByte(co),co.jdoZooGetOid());
      }
    break;
case CHAR:
  for (  PersistenceCapableImpl co : objects) {
    fieldInd.removeLong(jField.getChar(co),co.jdoZooGetOid());
  }
break;
case DOUBLE:
System.out.println("String_Node_Str");
break;
case FLOAT:
System.out.println("String_Node_Str");
break;
case INT:
for (PersistenceCapableImpl co : objects) {
fieldInd.removeLong(jField.getInt(co),co.jdoZooGetOid());
}
break;
case LONG:
for (PersistenceCapableImpl co : objects) {
fieldInd.removeLong(jField.getLong(co),co.jdoZooGetOid());
}
break;
case SHORT:
for (PersistenceCapableImpl co : objects) {
fieldInd.removeLong(jField.getShort(co),co.jdoZooGetOid());
}
break;
default :
throw new IllegalArgumentException("String_Node_Str" + field.getPrimitiveType());
}
}
}
 catch (SecurityException e) {
throw new JDOFatalDataStoreException("String_Node_Str" + field.getName(),e);
}
catch (IllegalArgumentException e) {
throw new JDOFatalDataStoreException("String_Node_Str" + field.getName(),e);
}
catch (IllegalAccessException e) {
throw new JDOFatalDataStoreException("String_Node_Str" + field.getName(),e);
}
}
}