if (sf == null)
{
// Deleted ItemState usecase
if (length == SerializationConstants.NULL_FILE)
{
return new StreamPersistedValueData(orderNumber, (SerializationSpoolFile)null);
}
sf = new SerializationSpoolFile(tempDirectory, id, holder);
writeToFile(in, sf, length);
holder.put(id, sf);
return new StreamPersistedValueData(orderNumber, sf);
}
else
{
sf.acquire(this); // workaround for AsyncReplication test
try
{
AbstractPersistedValueData vd = new StreamPersistedValueData(orderNumber, sf);
// skip data in input stream
if (in.skip(length) != length)
{
throw new IOException("Content isn't skipped correctly.");