@SuppressWarnings({ "unchecked" })
private Object readSortedSetData(final boolean unshared, int cacheIdx, final int len, final SortedSet target, final boolean discardMissing) throws ClassNotFoundException, IOException {
final ArrayList<Object> instanceCache = this.instanceCache;
final int idx;
final FlatNavigableSet filler = new FlatNavigableSet(target.comparator());
if (cacheIdx == -1) {
idx = instanceCache.size();
instanceCache.add(target);
} else {
idx = cacheIdx;
instanceCache.set(idx, target);
}
for (int i = 0; i < len; i ++) {
filler.add(doReadCollectionObject(false, i, len, discardMissing));
}
target.addAll(filler);
final Object resolvedObject = objectResolver.readResolve(target);
instanceCache.set(idx, unshared ? null : resolvedObject);