This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag 
org.apache.sling.installer.factory.configuration-1.0.10
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-installer-factory-configuration.git

commit 5b5ddd5c2ed049ba3716fa67c78c4e4ecbf17cf0
Author: Carsten Ziegeler <cziege...@apache.org>
AuthorDate: Mon May 14 16:17:59 2012 +0000

    SLING-2450 : JcrInstaller generates incorrect node name in 
/apps/system/config (or else the installer doesn't process the nodename 
properly)
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/installer/factories/configuration@1338272
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../configuration/impl/AbstractConfigTask.java          |  7 ++++++-
 .../factories/configuration/impl/ConfigTaskCreator.java | 17 ++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/installer/factories/configuration/impl/AbstractConfigTask.java
 
b/src/main/java/org/apache/sling/installer/factories/configuration/impl/AbstractConfigTask.java
index 84cdfa9..c1d82e5 100644
--- 
a/src/main/java/org/apache/sling/installer/factories/configuration/impl/AbstractConfigTask.java
+++ 
b/src/main/java/org/apache/sling/installer/factories/configuration/impl/AbstractConfigTask.java
@@ -80,7 +80,12 @@ abstract class AbstractConfigTask extends InstallTask {
         if ( this.aliasPid == null || this.factoryPid == null ) {
             return null;
         }
-        return factoryPid + "." + this.aliasPid;
+        final String alias = factoryPid + "." + this.aliasPid;
+        final int pos = this.getResource().getEntityId().indexOf(':');
+        if ( this.getResource().getEntityId().substring(pos + 1).equals(alias) 
) {
+            return null;
+        }
+        return alias;
     }
 
     protected Dictionary<String, Object> getDictionary() {
diff --git 
a/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java
 
b/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java
index 3ee9fde..b14dbd3 100644
--- 
a/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java
+++ 
b/src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigTaskCreator.java
@@ -181,7 +181,22 @@ public class ConfigTaskCreator
         final String configPid;
         int n = pid.indexOf('-');
         if (n > 0) {
-            configPid = pid.substring(n + 1);
+            // quick check if this is an existing configuration
+            final String fString = pid.substring(0, n);
+            final String cString = pid.substring(n + 1);
+            boolean useExtendedPid = false;
+            try {
+                if ( ConfigUtil.getConfiguration(this.configAdmin, fString, 
fString + '.' + cString, false) != null ) {
+                    useExtendedPid = true;
+                }
+            } catch ( final Exception ignore) {
+                // ignore this
+            }
+            if ( useExtendedPid ) {
+                configPid = fString + '.' + cString;
+            } else {
+                configPid = pid.substring(n + 1);
+            }
             factoryPid = pid.substring(0, n);
         } else {
             factoryPid = null;

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <commits@sling.apache.org>.

Reply via email to