String name = in.readUTF();
Map<Data, CacheRecord> m = new HashMap<Data, CacheRecord>(subCount);
data.put(name, m);
for (int j = 0; j < subCount; j++) {
Data key = in.readData();
if (key.dataSize() == 0) {
//empty data received so reading done here
break;
}
CacheRecord record = in.readObject();
m.put(key, record);