Community
Participate
Working Groups
I have not actually observed the corruption, but an deducing this from the function behavior. We currently download and install the feature files even if they already exist. The download part I am OK with, but the install is a potential timebomb. I have noticed that when we install nested features, the feature files for feature 1 are installed before we start downloading files for feature 2. If the user cancels the operation, feature 1 is left in the feature9999999.xml state. If this was a feature that already existed prior to the install, we just blew it away. Som we can download feature jar for features that are already installe (no harm) but we MUST NOT actually overwrite files for an existing feature (ie. we skip the install copy step for the feature files and only install diffed plugins)
We need to NOT install feature files if the feature already exists (what about checking, do we check the file system for the directory or the plugin version, b/c we can have a plugin org.plugin1 in com.company.plugin23_2.0.0 right) Then we have to check the abort and remove doesn't remove the feature files
* if feature with same id & version is already on site, skip file copy * if not, check if <id>_<version>/feature.xml exists * if not .... go ahead and copy * if yes, we have an "imposter" feature living in the target directory .... CoreException
Feature.install() checks if a feature with the same id_ver has been installed in the site. UpdateManagerUtils.copyToLocal throws an IO Exception if the to create already exists on the file system.
Created attachment 1041 [details] Dialog if an 'imposter feature' is installed [GIF]
SiteFileContentConsumer and SiteFilePluginContentConsumer now remember which file they installed. During an abort only these files will be deleted. Issue, the directories will stay
Empty directories are removed. Fixed. Version as v20020524_16718
Fixed, 0528