[ 
https://issues.apache.org/jira/browse/JCR-2678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12889197#action_12889197
 ] 

Stefan Guggisberg commented on JCR-2678:
----------------------------------------

what do you mean by "you damage your data"?

why would you not be able to use your repository anymore?

AFAIU the problem is that a multi-value property with a single value becomes a 
single-value property.
i agree that it is a problem and inconvenient but certainly not a critical 
issue.
you can still retrieve its value. as a workaround you could read the values 
using a utility method, e.g.

Values[] safeGetValues(Property prop) throws RepositoryException {
    if (prop.getDefinition().isMultiple()) {
        return prop.getValues();
    } else {
        return new Value[]{prop.getValue()};
    }
}


> RepositoryCopier has problems with multi-valued properties
> ----------------------------------------------------------
>
>                 Key: JCR-2678
>                 URL: https://issues.apache.org/jira/browse/JCR-2678
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 1.6.2
>         Environment: Jackrabbit 1.6.2
>            Reporter: Sascha Theves
>             Fix For: 1.6.3
>
>
> When using the RepositoryCopier to backup and restore your repository you run 
> into problems with multi-valued properties where you have only one value 
> assigned.
> The backup works fine but when you try to restore the backup and want to get 
> the values of a multi-valued property you get:
> java.lang.RuntimeException: property /ns:someNode/ns:multiValued is a 
> single-valued property, so it's value can not be retrieved as an array
>       at 
> org.apache.jackrabbit.core.PropertyImpl.internalGetValues(PropertyImpl.java:441)
>       at 
> org.apache.jackrabbit.core.PropertyImpl.getValues(PropertyImpl.java:475)
>       at xxx.MyClass.getProperty(MyClass.java:274)
> You can reproduce that by using the RepositoryCopier to copy your repository 
> and then read it back again. You must have a node with a multi-valued 
> property in it where you have only _one_ value contained in the property to 
> the time the backup is created.
> The node type definition looks like:
> // The namespace declaration
> <ns='http://noPlaceLikeHome/'>
> <nt='http://www.jcp.org/jcr/nt/1.0'>
> // Node type name
> [ns:myNodeType]
> - ns:multiValued (string)
> multiple

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to