Issue Details (XML | Word | Printable)

Key: JCR-325
Type: Improvement Improvement
Status: Reopened Reopened
Priority: Major Major
Assignee: Jukka Zitting
Reporter: Tobias Bocanegra
Votes: 1
Watchers: 1
Available Workflow Actions

Submit Patch
Operations

If you were logged in you would be able to see more operations.
Jackrabbit Content Repository

docview roundtripping does not work with multivalue non-string properties

Created: 21/Feb/06 10:45 PM   Updated: 15/Jul/08 11:47 PM
Return to search
Component/s: xml
Affects Version/s: 0.9, 1.0
Fix Version/s: None

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works namespace-context.patch 2006-03-22 06:33 AM Jukka Zitting 21 kB
Text File Licensed for inclusion in ASF works xml-refactoring.patch 2006-03-19 08:44 PM Jukka Zitting 69 kB
Environment: jackrabbit r379292
Issue Links:
Incorporates
 


 Description  « Hide
when exporting a multivalue property with docview, the property values are serialized to a space delimited list in the xml attributes:
for example:

<?xml version="1.0" encoding="UTF-8"?>
.
.
<testNode
    jcr:primaryType="refTest"
    refs="b5c12524-5446-4c1a-b024-77f623680271 7b4d4e6f-9515-47d8-a77c-b4beeaf469bc"
/>

the refTest nodetype was:

[refTest]
- refs (reference) multiple

importing this docview fails with: javax.jcr.ValueFormatException: not a valid UUID format
this is due to the fact, that the space delimited list is not exploded anymore. actually this code is commented:

org.apache.jackrabbit.core.xml.DocViewImportHandler, lines 191 - 200:
/*
                // @todo should attribute value be interpreted as LIST type (i.e. multi-valued property)?
                String[] strings = Text.explode(attrValue, ' ', true);
                propValues = new Value[strings.length];
                for (int j = 0; j < strings.length; j++) {
                    // decode encoded blanks in value
                    strings[j] = Text.replace(strings[j], "_x0020_", " ");
                    propValues[j] = InternalValue.create(strings[j]);
                }
*/

i haven't tested, but i assume this also fails for all other non-string property types.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #384197 Wed Mar 08 12:20:37 UTC 2006 stefan JCR-325: docview roundtripping does not work with multivalue non-string properties
Files Changed
MODIFY /incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java
MODIFY /incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/jndi/provider/DummyContext.java
MODIFY /incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewSAXEventGenerator.java

Repository Revision Date User Message
ASF #384850 Fri Mar 10 16:58:17 UTC 2006 stefan JCR-325: multi-value serialization in document view export is not spec-compliant; for the time being just skip multi-valued properties on document view export which is legal according to "6.4.2.5 Multi-value Properties"
Files Changed
MODIFY /incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java
MODIFY /incubator/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewSAXEventGenerator.java

Repository Revision Date User Message
ASF #387959 Wed Mar 22 22:38:25 UTC 2006 jukka JCR-325: Applied the namespace-context.patch that makes the namespace context immutable and thus safe to use even after the processing of the current XML element.
Files Changed
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java
ADD /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/NamespaceContext.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SysViewImportHandler.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/ImportHandler.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/TargetImportHandler.java

Repository Revision Date User Message
ASF #387961 Wed Mar 22 22:52:40 UTC 2006 jukka JCR-325: Applied the xml-refactoring.patch that puts the PropInfo instances in charge of applying the imported property values to content nodes.
Files Changed
ADD /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/BufferedStringValue.java
ADD /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/StringValue.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/DocViewImportHandler.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SessionImporter.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/SysViewImportHandler.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/Importer.java
ADD /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/PropInfo.java
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/TargetImportHandler.java
ADD /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/NodeInfo.java
ADD /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/xml/TextValue.java

Repository Revision Date User Message
ASF #390807 Sun Apr 02 10:40:57 UTC 2006 jukka JCR-325: Added a simple test case for multi-value handling in document view import.
Files Changed
MODIFY /jackrabbit/trunk/jackrabbit/src/test/java/org/apache/jackrabbit/core/xml/DocumentViewTest.java