You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2006/12/08 16:35:57 UTC
svn commit: r484644 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java
Author: stefan
Date: Fri Dec 8 07:35:55 2006
New Revision: 484644
URL: http://svn.apache.org/viewvc?view=rev&rev=484644
Log:
JCR-659
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java?view=diff&rev=484644&r1=484643&r2=484644
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java Fri Dec 8 07:35:55 2006
@@ -133,18 +133,23 @@
}
// multi- or single-valued property?
- if (va.length == 1) {
- // could be single- or multi-valued (n == 1)
+ if (va.length == 1 && !def.isMultiple()) {
+ Exception e = null;
try {
- // try setting single-value
+ // set single-value
node.setProperty(name, va[0]);
} catch (ValueFormatException vfe) {
- // try setting value array
- node.setProperty(name, va, type);
+ e = vfe;
} catch (ConstraintViolationException cve) {
- // try setting value array
+ e = cve;
+ }
+ if (e != null) {
+ // setting single-value failed, try setting value array
+ // as a last resort (in case there are ambiguous property
+ // definitions)
node.setProperty(name, va, type);
}
+ //
} else {
// can only be multi-valued (n == 0 || n > 1)
node.setProperty(name, va, type);