[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