Description
At the graph layer, property cardinality (whether the property is single- or multi-valued) is determined based on the values set on the property (i.e., any property with only one value is single-valued, any property with more than one value is multi-valued). At the JCR layer, property cardinality is supposed to be based on the property definition in use for the property.
The SessionCache is currently basing the JCR layer cardinality on the graph layer cardinality instead of the JCR property definition.
Example:
Consider a node that has one value for jcr:mixinTypes. At the graph layer, this property will be single-valued. At the JCR layer, this property should be multi-valued based on the jcr:mixinTypes property definition from the nt:base type (which is inherited by all nodes).