You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2014/08/18 21:24:05 UTC

svn commit: r1618715 - in /jackrabbit/oak/branches/1.0: ./ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java

Author: mduerig
Date: Mon Aug 18 19:24:05 2014
New Revision: 1618715

URL: http://svn.apache.org/r1618715
Log:
OAK-2038: Invalid type error while importing DocView xml data
Merged revision 1618709

Modified:
    jackrabbit/oak/branches/1.0/   (props changed)
    jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java
    jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java

Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1618709

Modified: jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java?rev=1618715&r1=1618714&r2=1618715&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java Mon Aug 18 19:24:05 2014
@@ -115,7 +115,7 @@ public class PropInfo {
     public int getTargetType(PropertyDefinition def) {
         int target = def.getRequiredType();
         if (target != PropertyType.UNDEFINED) {
-            return type;
+            return target;
         } else if (type != PropertyType.UNDEFINED) {
             return type;
         } else {
@@ -194,4 +194,4 @@ public class PropInfo {
         }
         return null;
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1618715&r1=1618714&r2=1618715&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/branches/1.0/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Mon Aug 18 19:24:05 2014
@@ -18,6 +18,16 @@
  */
 package org.apache.jackrabbit.oak.jcr;
 
+import static java.util.Arrays.asList;
+import static javax.jcr.ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW;
+import static org.apache.jackrabbit.commons.JcrUtils.getChildNodes;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -31,7 +41,6 @@ import java.util.HashSet;
 import java.util.Set;
 import javax.jcr.Binary;
 import javax.jcr.GuestCredentials;
-import javax.jcr.ImportUUIDBehavior;
 import javax.jcr.InvalidItemStateException;
 import javax.jcr.Item;
 import javax.jcr.ItemExistsException;
@@ -54,6 +63,7 @@ import javax.jcr.nodetype.NodeDefinition
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.nodetype.NodeTypeManager;
 import javax.jcr.nodetype.NodeTypeTemplate;
+import javax.jcr.nodetype.PropertyDefinitionTemplate;
 
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitNode;
@@ -2014,7 +2024,7 @@ public class RepositoryTest extends Abst
         node.remove();
         session.save();
         session.importXML("/", new ByteArrayInputStream(out.toByteArray()),
-                ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
+                IMPORT_UUID_CREATE_NEW);
         session.save();
         node = session.getNode("/node");
         assertFalse(uuid.equals(node.getIdentifier()));
@@ -2059,6 +2069,33 @@ public class RepositoryTest extends Abst
         session.logout();
     }
 
+    @Test // OAK-2038
+    public void importWithRegisteredType() throws Exception {
+        Session session = getAdminSession();
+        NodeTypeManager ntMgr = getAdminSession().getWorkspace().getNodeTypeManager();
+        NodeTypeTemplate ntd = ntMgr.createNodeTypeTemplate();
+        ntd.setName("fooType");
+        PropertyDefinitionTemplate propDefTemplate = ntMgr.createPropertyDefinitionTemplate();
+        propDefTemplate.setName("fooProp");
+        propDefTemplate.setRequiredType(PropertyType.STRING);
+        ntd.getPropertyDefinitionTemplates().add(propDefTemplate);
+        ntMgr.registerNodeType(ntd, false);
+
+        Node node = session.getRootNode().addNode("node", "fooType");
+        node.setProperty("fooProp", "fooValue");
+        session.save();
+        
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        session.exportDocumentView("/node", out, true, false);
+        node.remove();
+        session.save();
+
+        session.getWorkspace().importXML(
+                "/", new ByteArrayInputStream(out.toByteArray()), IMPORT_UUID_CREATE_NEW);
+        session.save();
+        assertEquals("fooValue", session.getProperty("/node/fooProp").getString());
+    }
+    
     //------------------------------------------------------------< private >---
 
     private Node getNode(String path) throws RepositoryException {