jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ang...@apache.org
Subject svn commit: r464423 - /jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
Date Mon, 16 Oct 2006 09:15:27 GMT
Author: angela
Date: Mon Oct 16 02:15:27 2006
New Revision: 464423

URL: http://svn.apache.org/viewvc?view=rev&rev=464423
Log:
work in progress

- canAddMixin: should throw NoSuchNodeTypeException but catch LockExc.
  and VersionExc.
- setProperty: missing handling for null entries in values array.

Modified:
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java?view=diff&rev=464423&r1=464422&r2=464423
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
(original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
Mon Oct 16 02:15:27 2006
@@ -745,10 +745,13 @@
             session.getValidator().checkIsWritable(getNodeState(), ItemStateValidator.CHECK_ALL);
             // then make sure the new mixin would not conflict.
             return isValidMixin(getQName(mixinName));
-        } catch (NoSuchNodeTypeException e) {
+        } catch (NodeTypeConflictException e) {
             log.debug("Cannot add mixin '" + mixinName + "': " + e.getMessage());
             return false;
-        } catch (NodeTypeConflictException e) {
+        } catch (LockException e) {
+            log.debug("Cannot add mixin '" + mixinName + "': " + e.getMessage());
+            return false;
+        } catch (VersionException e) {
             log.debug("Cannot add mixin '" + mixinName + "': " + e.getMessage());
             return false;
         }
@@ -1419,7 +1422,19 @@
         // make sure, the final type is not set to undefined        
         if (targetType == PropertyType.UNDEFINED) {
             if (type == PropertyType.UNDEFINED) {
-                targetType = (values.length > 0) ? values[0].getType() : PropertyType.STRING;
+                // try to retrieve type from the values array
+                if (values.length > 0) {
+                    for (int i = 0; i < values.length; i++) {
+                        if (values[i] != null) {
+                            targetType = values[i].getType();
+                            break;
+                        }
+                    }
+                }
+                if (targetType == PropertyType.UNDEFINED) {
+                    // fallback
+                    targetType = PropertyType.STRING;
+                }
             } else {
                 targetType = type;
             }



Mime
View raw message