private void readObject()

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());
        }
    }