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 2009/05/29 16:54:26 UTC

svn commit: r780006 - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/ jackrabbit-jcr-commons/s...

Author: stefan
Date: Fri May 29 14:54:25 2009
New Revision: 780006

URL: http://svn.apache.org/viewvc?rev=780006&view=rev
Log:
JCR-2056: Binary interfaces
JCR-1609: new Property Types


Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBValue.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java
    jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/AbstractProperty.java
    jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/BinaryImpl.java
    jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/QNodeTypeDefinitionImpl.java
    jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java
    jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefWriter.java
    jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueFactoryImpl.java
    jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueValue.java
    jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QNodeTypeDefinitionImpl.java
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QPropertyDefinitionImpl.java
    jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java Fri May 29 14:54:25 2009
@@ -438,7 +438,8 @@
         while (iter.hasNext()) {
             PropertyState prop = (PropertyState) iter.next();
             // being paranoid...
-            if (prop.getType() != PropertyType.REFERENCE) {
+            if (prop.getType() != PropertyType.REFERENCE
+                    && prop.getType() != PropertyType.WEAKREFERENCE) {
                 continue;
             }
             boolean modified = false;
@@ -1879,7 +1880,8 @@
                     }
                 }
 
-                if (newChildState.getType() == PropertyType.REFERENCE) {
+                if (newChildState.getType() == PropertyType.REFERENCE
+                        || newChildState.getType() == PropertyType.WEAKREFERENCE) {
                     refTracker.processedReference(newChildState);
                 }
                 // store new property

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBFileValue.java Fri May 29 14:54:25 2009
@@ -168,8 +168,12 @@
      */
     public int read(byte[] b, long position) throws IOException, RepositoryException {
         InputStream in = getStream();
-        in.skip(position);
-        return in.read(b);
+        try {
+            in.skip(position);
+            return in.read(b);
+        } finally {
+            in.close();
+        }
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBInTempFile.java Fri May 29 14:54:25 2009
@@ -193,7 +193,11 @@
      */
     public int read(byte[] b, long position) throws IOException, RepositoryException {
         RandomAccessFile raf = new RandomAccessFile(file, "r");
-        raf.seek(position);
-        return raf.read(b);
+        try {
+            raf.seek(position);
+            return raf.read(b);
+        } finally {
+            raf.close();
+        }
     }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBValue.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBValue.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBValue.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/BLOBValue.java Fri May 29 14:54:25 2009
@@ -383,8 +383,12 @@
         if (file != null) {
             // this instance is backed by a temp file
             RandomAccessFile raf = new RandomAccessFile(file, "r");
-            raf.seek(position);
-            return raf.read(b);
+            try {
+                raf.seek(position);
+                return raf.read(b);
+            } finally {
+                raf.close();
+            }
         } else if (fsResource != null) {
             // this instance is backed by a resource in the virtual file system
             InputStream in;

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?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- 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 May 29 14:54:25 2009
@@ -153,7 +153,8 @@
             // can only be multi-valued (n == 0 || n > 1)
             node.setProperty(name, va, type);
         }
-        if (type == PropertyType.REFERENCE) {
+        if (type == PropertyType.REFERENCE
+                || type == PropertyType.WEAKREFERENCE) {
             // store reference for later resolution
             refTracker.processedReference(node.getProperty(name));
         }
@@ -215,7 +216,8 @@
         // make sure property is valid according to its definition
         itemOps.validate(prop);
 
-        if (prop.getType() == PropertyType.REFERENCE) {
+        if (prop.getType() == PropertyType.REFERENCE
+                || prop.getType() == PropertyType.WEAKREFERENCE) {
             // store reference for later resolution
             refTracker.processedReference(prop);
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java Fri May 29 14:54:25 2009
@@ -25,6 +25,7 @@
 import org.apache.jackrabbit.spi.commons.name.NameConstants;
 import org.apache.jackrabbit.uuid.UUID;
 import org.apache.jackrabbit.value.ReferenceValue;
+import org.apache.jackrabbit.value.WeakReferenceValue;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -282,7 +283,8 @@
         while (iter.hasNext()) {
             Property prop = (Property) iter.next();
             // being paranoid...
-            if (prop.getType() != PropertyType.REFERENCE) {
+            if (prop.getType() != PropertyType.REFERENCE
+                    && prop.getType() != PropertyType.WEAKREFERENCE) {
                 continue;
             }
             if (prop.getDefinition().isMultiple()) {
@@ -293,7 +295,9 @@
                     UUID original = UUID.fromString(val.getString());
                     UUID adjusted = refTracker.getMappedUUID(original);
                     if (adjusted != null) {
-                        newVals[i] = new ReferenceValue(session.getNodeByUUID(adjusted));
+                        newVals[i] = session.getValueFactory().createValue(
+                                session.getNodeByUUID(adjusted),
+                                prop.getType() != PropertyType.REFERENCE);
                     } else {
                         // reference doesn't need adjusting, just copy old value
                         newVals[i] = val;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java Fri May 29 14:54:25 2009
@@ -598,7 +598,8 @@
             while (iter.hasNext()) {
                 PropertyState prop = (PropertyState) iter.next();
                 // being paranoid...
-                if (prop.getType() != PropertyType.REFERENCE) {
+                if (prop.getType() != PropertyType.REFERENCE
+                    && prop.getType() != PropertyType.WEAKREFERENCE) {
                     continue;
                 }
                 boolean modified = false;
@@ -609,7 +610,9 @@
                     UUID original = val.getUUID();
                     UUID adjusted = refTracker.getMappedUUID(original);
                     if (adjusted != null) {
-                        newVals[i] = InternalValue.create(adjusted);
+                        newVals[i] = InternalValue.create(
+                                adjusted,
+                                prop.getType() != PropertyType.REFERENCE);
                         modified = true;
                     } else {
                         // reference doesn't need adjusting, just copy old value

Modified: jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/AbstractProperty.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/AbstractProperty.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/AbstractProperty.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/AbstractProperty.java Fri May 29 14:54:25 2009
@@ -218,7 +218,8 @@
     public Node getNode() throws RepositoryException {
         Session session = getSession();
         Value value = getValue();
-        if (value.getType() != PropertyType.REFERENCE) {
+        if (value.getType() != PropertyType.REFERENCE
+                && value.getType() != PropertyType.WEAKREFERENCE) {
             value = session.getValueFactory().createValue(
                     value.getString(), PropertyType.REFERENCE);
         }

Modified: jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/BinaryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/BinaryImpl.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/BinaryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/value/BinaryImpl.java Fri May 29 14:54:25 2009
@@ -145,8 +145,12 @@
         if (tmpFile != null) {
             // this instance is backed by a temp file
             RandomAccessFile raf = new RandomAccessFile(tmpFile, "r");
-            raf.seek(position);
-            return raf.read(b);
+            try {
+                raf.seek(position);
+                return raf.read(b);
+            } finally {
+                raf.close();
+            }
         } else {
             // this instance is backed by an in-memory buffer
             int length = Math.min(b.length, buffer.length - (int) position);

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/QNodeTypeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/QNodeTypeDefinitionImpl.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/QNodeTypeDefinitionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/QNodeTypeDefinitionImpl.java Fri May 29 14:54:25 2009
@@ -326,8 +326,9 @@
             }
             // property definitions
             for (int i = 0; i < propertyDefs.length; i++) {
-                // REFERENCE value constraints
-                if (propertyDefs[i].getRequiredType() == PropertyType.REFERENCE) {
+                // [WEAK]REFERENCE value constraints
+                if (propertyDefs[i].getRequiredType() == PropertyType.REFERENCE
+                        || propertyDefs[i].getRequiredType() == PropertyType.WEAKREFERENCE) {
                     String[] ca = propertyDefs[i].getValueConstraints();
                     if (ca != null) {
                         for (int j = 0; j < ca.length; j++) {

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java Fri May 29 14:54:25 2009
@@ -415,6 +415,8 @@
             pd.setRequiredType(PropertyType.BINARY);
         } else if (currentTokenEquals(Lexer.LONG)) {
             pd.setRequiredType(PropertyType.LONG);
+        } else if (currentTokenEquals(Lexer.DECIMAL)) {
+            pd.setRequiredType(PropertyType.DECIMAL);
         } else if (currentTokenEquals(Lexer.DOUBLE)) {
             pd.setRequiredType(PropertyType.DOUBLE);
         } else if (currentTokenEquals(Lexer.BOOLEAN)) {
@@ -425,8 +427,12 @@
             pd.setRequiredType(PropertyType.NAME);
         } else if (currentTokenEquals(Lexer.PATH)) {
             pd.setRequiredType(PropertyType.PATH);
+        } else if (currentTokenEquals(Lexer.URI)) {
+            pd.setRequiredType(PropertyType.URI);
         } else if (currentTokenEquals(Lexer.REFERENCE)) {
             pd.setRequiredType(PropertyType.REFERENCE);
+        } else if (currentTokenEquals(Lexer.WEAKREFERENCE)) {
+            pd.setRequiredType(PropertyType.WEAKREFERENCE);
         } else if (currentTokenEquals(Lexer.UNDEFINED)) {
             pd.setRequiredType(PropertyType.UNDEFINED);
         } else {

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefWriter.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefWriter.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefWriter.java Fri May 29 14:54:25 2009
@@ -322,9 +322,14 @@
     }
 
     private String convertConstraint(String vc, int type) {
-        if (type == PropertyType.REFERENCE || type == PropertyType.NAME || type == PropertyType.PATH) {
-            if (type == PropertyType.REFERENCE)
+        if (type == PropertyType.REFERENCE
+                || type == PropertyType.WEAKREFERENCE
+                || type == PropertyType.NAME
+                || type == PropertyType.PATH) {
+            if (type == PropertyType.REFERENCE
+                    || type == PropertyType.WEAKREFERENCE) {
                 type = PropertyType.NAME;
+            }
 
             try {
                 QValue qv = QValueFactoryImpl.getInstance().create(vc, type);

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueFactoryImpl.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueFactoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueFactoryImpl.java Fri May 29 14:54:25 2009
@@ -289,8 +289,12 @@
 
                 public int read(byte[] b, long position) throws IOException, RepositoryException {
                     InputStream in = getStream();
-                    in.skip(position);
-                    return in.read(b);
+                    try {
+                        in.skip(position);
+                        return in.read(b);
+                    } finally {
+                        in.close();
+                    }
                 }
 
                 public long getSize() throws RepositoryException {

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueValue.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueValue.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueValue.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/QValueValue.java Fri May 29 14:54:25 2009
@@ -110,8 +110,7 @@
      * @see javax.jcr.Value#getBinary()
      */
     public Binary getBinary() throws RepositoryException {
-        // TODO
-        throw new RuntimeException("Not implemented yet, see JCR-2056");
+        return qvalue.getBinary();
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java Fri May 29 14:54:25 2009
@@ -52,6 +52,7 @@
         } else if (jcrValue.getType() == PropertyType.BINARY) {
             // TODO: jsr 283 binary property conversion
             try {
+                //return factory.create(jcrValue.getBinary());
                 return factory.create(jcrValue.getStream());
             } catch (IOException e) {
                 throw new RepositoryException(e);
@@ -168,8 +169,7 @@
                     jcrValue = factory.createValue(qualifiedValue.getBoolean());
                     break;
                 case PropertyType.BINARY:
-                    // TODO: jsr 283 binary handling
-                    jcrValue = factory.createValue(qualifiedValue.getStream());
+                    jcrValue = factory.createValue(qualifiedValue.getBinary());
                     break;
                 case PropertyType.DATE:
                     jcrValue = factory.createValue(qualifiedValue.getCalendar());

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QNodeTypeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QNodeTypeDefinitionImpl.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QNodeTypeDefinitionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QNodeTypeDefinitionImpl.java Fri May 29 14:54:25 2009
@@ -240,8 +240,9 @@
             }
             // property definitions
             for (int i = 0; i < propDefs.length; i++) {
-                // REFERENCE value constraints
-                if (propDefs[i].getRequiredType() == PropertyType.REFERENCE) {
+                // [WEAK]REFERENCE value constraints
+                if (propDefs[i].getRequiredType() == PropertyType.REFERENCE
+                        || propDefs[i].getRequiredType() == PropertyType.WEAKREFERENCE) {
                     String[] ca = propDefs[i].getValueConstraints();
                     if (ca != null) {
                         for (int j = 0; j < ca.length; j++) {

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QPropertyDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QPropertyDefinitionImpl.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QPropertyDefinitionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QPropertyDefinitionImpl.java Fri May 29 14:54:25 2009
@@ -131,7 +131,8 @@
             List vc = new ArrayList();
             ElementIterator it = DomUtil.getChildren(child, VALUECONSTRAINT_ELEMENT, null);
             while (it.hasNext()) {
-                int constType = (requiredType == PropertyType.REFERENCE) ?  PropertyType.NAME : requiredType;
+                int constType = (requiredType == PropertyType.REFERENCE
+                        || requiredType == PropertyType.WEAKREFERENCE) ?  PropertyType.NAME : requiredType;
                 String qValue = DomUtil.getText(it.nextElement());
                 // in case of name and path constraint, the value must be
                 // converted to be in qualified format

Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java?rev=780006&r1=780005&r2=780006&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/QValueFactoryImpl.java Fri May 29 14:54:25 2009
@@ -198,7 +198,7 @@
     }
 
     /**
-     * @see QValueFactory#create(BigDecimal)
+     * @see QValueFactory#create(URI)
      */
     public QValue create(BigDecimal value) {
         return new QValueImpl(value);
@@ -442,8 +442,12 @@
 
                 public int read(byte[] b, long position) throws IOException, RepositoryException {
                     InputStream in = getStream();
-                    in.skip(position);
-                    return in.read(b);
+                    try {
+                        in.skip(position);
+                        return in.read(b);
+                    } finally {
+                        in.close();
+                    }
                 }
 
                 public long getSize() throws RepositoryException {
@@ -856,8 +860,12 @@
 
                 public int read(byte[] b, long position) throws IOException, RepositoryException {
                     InputStream in = getStream();
-                    in.skip(position);
-                    return in.read(b);
+                    try {
+                        in.skip(position);
+                        return in.read(b);
+                    } finally {
+                        in.close();
+                    }
                 }
 
                 public long getSize() throws RepositoryException {