Program: 65478
Project: 65478
Buggy source:
public IndexReader(IDocArchiveReader archive,String name) throws IOException {
  if (archive.exists(name)) {
    RAInputStream input=archive.getInputStream(name);
    try {
      int version=readVersion(input.readInt(),name);
switch (version) {
case VERSION_0:
{
          valueType=BTreeMap.LONG_VALUE;
          int type=input.readInt();
          if (type == INLINE_MAP) {
            DataInputStream di=new DataInputStream(input);
            int entries=IOUtil.readInt(di);
            map=new HashMap<String,Object>(entries);
            for (int i=0; i < entries; i++) {
              String key=IOUtil.readString(di);
              long offset=IOUtil.readLong(di);
              map.put(key,new Long(offset));
            }
          }
 else {
            btree=BTreeMap.openTreeMap(archive,name,valueType);
          }
        }
case VERSION_1:
{
        valueType=BTreeMap.BOOKMARK_VALUE;
        int type=input.readInt();
        if (type == INLINE_MAP) {
          DataInputStream di=new DataInputStream(input);
          int entries=IOUtil.readInt(di);
          map=new HashMap<String,Object>(entries);
          for (int index=0; index < entries; index++) {
            String key=IOUtil.readString(di);
            BookmarkContent bookmark=new BookmarkContent();
            bookmark.readStream(di);
            map.put(key,bookmark);
          }
        }
 else {
          btree=BTreeMap.openTreeMap(archive,name,valueType);
        }
      }
default :
{
      throw new IOException("String_Node_Str" + version);
    }
}
}
  finally {
input.close();
}
}
}

Fixed version (ground truth):
public IndexReader(IDocArchiveReader archive,String name) throws IOException {
  if (archive.exists(name)) {
    RAInputStream input=archive.getInputStream(name);
    try {
      int version=readVersion(input.readInt(),name);
switch (version) {
case VERSION_0:
{
          valueType=BTreeMap.LONG_VALUE;
          int type=input.readInt();
          if (type == INLINE_MAP) {
            DataInputStream di=new DataInputStream(input);
            int entries=IOUtil.readInt(di);
            map=new HashMap<String,Object>(entries);
            for (int i=0; i < entries; i++) {
              String key=IOUtil.readString(di);
              long offset=IOUtil.readLong(di);
              map.put(key,new Long(offset));
            }
          }
 else {
            btree=BTreeMap.openTreeMap(archive,name,valueType);
          }
          break;
        }
case VERSION_1:
{
        valueType=BTreeMap.BOOKMARK_VALUE;
        int type=input.readInt();
        if (type == INLINE_MAP) {
          DataInputStream di=new DataInputStream(input);
          int entries=IOUtil.readInt(di);
          map=new HashMap<String,Object>(entries);
          for (int index=0; index < entries; index++) {
            String key=IOUtil.readString(di);
            BookmarkContent bookmark=new BookmarkContent();
            bookmark.readStream(di);
            map.put(key,bookmark);
          }
        }
 else {
          btree=BTreeMap.openTreeMap(archive,name,valueType);
        }
        break;
      }
default :
{
      throw new IOException("String_Node_Str" + version);
    }
}
}
  finally {
input.close();
}
}
}