in src/main/java/org/apache/sling/installer/core/impl/RegisteredResourceImpl.java [125:164]
private void readObject(final java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException {
final int version = in.readInt();
if ( version < 1 || version > VERSION ) {
throw new ClassNotFoundException(this.getClass().getName());
}
Util.setField(this, "url", in.readObject());
Util.setField(this, "urlScheme", in.readObject());
Util.setField(this, "digest", in.readObject());
Util.setField(this, "entity", in.readObject());
Util.setField(this, "dictionary", in.readObject());
Util.setField(this, "attributes", in.readObject());
Util.setField(this, "dataFile", in.readObject());
Util.setField(this, "resourceType", in.readObject());
Util.setField(this, "priority", in.readInt());
this.state = ResourceState.valueOf((String) in.readObject());
if ( version > 1 ) {
this.lastChange = in.readLong();
} else {
this.lastChange = 0;
}
if ( version > 2 ) {
this.dataUri = (String)in.readObject();
} else if ( InstallableResource.TYPE_CONFIG.equals(this.resourceType) && this.dictionary != null ) {
// update digest calculated by older versions
final String updatedDigest = FileDataStore.computeDigest(this.dictionary);
if ( !updatedDigest.equals(this.digest) ) {
this.digest = updatedDigest;
}
}
if (version > 3) {
error = (String)in.readObject();
} else {
error = "";
}
// update file location
if ( this.dataFile != null ) {
this.dataFile = FileDataStore.SHARED.getDataFile(this.dataFile.getName());
}
}