[exo-jcr-commits] exo-jcr SVN: r1092 - jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Dec 16 06:27:46 EST 2009


Author: tolusha
Date: 2009-12-16 06:27:46 -0500 (Wed, 16 Dec 2009)
New Revision: 1092

Modified:
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
Log:
EXOJCR-300: create Transient copy from EditableValue

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2009-12-16 11:26:17 UTC (rev 1091)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/ItemImpl.java	2009-12-16 11:27:46 UTC (rev 1092)
@@ -390,7 +390,7 @@
    {
 
       QPath qpath = QPath.makeChildPath(parentNode.getInternalPath(), propertyName);
-      
+
       int state;
 
       String identifier;
@@ -438,7 +438,7 @@
             state = ItemState.UPDATED;
          }
       }
-      
+
       if (defs == null || defs.getAnyDefinition() == null)
          throw new RepositoryException("Property definition '" + propertyName.getAsString() + "' is not found.");
 
@@ -558,14 +558,14 @@
             throw new ConstraintViolationException("Can not remove (by setting null value) mandatory property "
                + locationFactory.createJCRPath(qpath).getAsString(false));
          }
-         
+
          TransientPropertyData newData =
             new TransientPropertyData(qpath, identifier, version, propType, parentNode.getInternalIdentifier(),
                multiValue);
 
          // launch event: pre-remove
          session.getActionHandler().preRemoveItem(prevProp);
-         
+
          dataManager.delete(newData);
          prop = prevProp;
       }
@@ -856,14 +856,9 @@
             return new TransientValueData(value.getString());
          case PropertyType.BINARY :
             ValueData vd;
-            if (value instanceof BaseValue)
+            if (value instanceof BaseValue || value instanceof ExtendedValue)
             {
-               // if the value is normaly created in JCR API
-               vd = ((BaseValue)value).getInternalData();
-            }
-            else if (value instanceof ExtendedValue)
-            {
-               // if te value comes from outside the JCR API scope, e.g. RMI invocation
+               // create Transient copy 
                vd = ((BaseValue)getSession().getValueFactory().createValue(value.getStream())).getInternalData();
             }
             else
@@ -925,7 +920,7 @@
             try
             {
                if (type != PropertyType.BINARY)
-               {  
+               {
                   strVal = ValueDataConvertor.readString(value);
                }
                else



More information about the exo-jcr-commits mailing list