You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-commits@incubator.apache.org by cl...@apache.org on 2007/04/11 20:39:54 UTC

svn commit: r527655 - /incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/collectionconverter/impl/ResidualPropertiesCollectionConverterImpl.java

Author: clombart
Date: Wed Apr 11 13:39:53 2007
New Revision: 527655

URL: http://svn.apache.org/viewvc?view=rev&rev=527655
Log:
Apply patch provided by Felix Meschberger for GRFT-129

Modified:
    incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/collectionconverter/impl/ResidualPropertiesCollectionConverterImpl.java

Modified: incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/collectionconverter/impl/ResidualPropertiesCollectionConverterImpl.java
URL: http://svn.apache.org/viewvc/incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/collectionconverter/impl/ResidualPropertiesCollectionConverterImpl.java?view=diff&rev=527655&r1=527654&r2=527655
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/collectionconverter/impl/ResidualPropertiesCollectionConverterImpl.java (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/collectionconverter/impl/ResidualPropertiesCollectionConverterImpl.java Wed Apr 11 13:39:53 2007
@@ -165,7 +165,10 @@
         // Delete existing values - before checking for collection !
         if (removeExisting) {
             for (PropertyIterator pi = parentNode.getProperties(jcrName); pi.hasNext();) {
-                pi.nextProperty().remove();
+                Property prop = pi.nextProperty();
+                if (!prop.getDefinition().isProtected()) {
+                    prop.remove();
+                }
             }
         }
 
@@ -175,6 +178,13 @@
             for (Iterator ei = map.entrySet().iterator(); ei.hasNext();) {
                 Map.Entry entry = (Map.Entry) ei.next();
                 String name = String.valueOf(entry.getKey());
+                
+                // verify the property is not an existing protected property
+                if (parentNode.hasProperty(name)
+                    && parentNode.getProperty(name).getDefinition().isProtected()) {
+                    continue;
+                }
+                
                 Object value = entry.getValue();
                 if (value instanceof List) {
                     // multi value