private void prepareToRemove()

in src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java [526:549]


    private void prepareToRemove(InternalResource existing, Collection<InternalResource> incoming) {
        if(existing.getPrivateCopyOfFile() != null) {
            for(final InternalResource r : incoming) {
                if(r.getURL().equals(existing.getURL())) {
                    // We have a resource r in "incoming" that's the same as "existing"
                    if(r.getPrivateCopyOfFile() == null) {
                        // New one has not data file, use the existing one
                        logger.debug("{} has no private data file, using the one from {}", r.getURL(), existing.getURL());
                        r.setPrivateCopyOfFile(existing.getPrivateCopyOfFile());
                        existing.setPrivateCopyOfFile(null);
                    } else if(r.getPrivateCopyOfFile().equals(existing.getPrivateCopyOfFile())) {
                        logger.debug("{} has same private data file as existing resource, keeping it", r.getURL());
                        existing.setPrivateCopyOfFile(null);
                    }
                    break;
                }
            }

            if(existing.getPrivateCopyOfFile() != null) {
                logger.debug("Private data file not needed anymore, deleting it: {}", existing.getURL());
                existing.getPrivateCopyOfFile().delete();
            }
        }
    }