[
https://issues.apache.org/jira/browse/OAK-1916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14043588#comment-14043588
]
Michael Dürig commented on OAK-1916:
------------------------------------
Above patch adds support for array properties of other types than long. However
this seems to uncover a problem with the SegementMK:
{code}
MicroKernel mk = new
NodeStoreKernel(NodeStoreFixture.SEGMENT_MK.createNodeStore());
NodeStore nodeStore = new KernelNodeStore(mk);
new Jcr(nodeStore).createRepository();
{code}
results in a NPE:
{noformat}
java.lang.NullPointerException
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.writeProperty(SegmentWriter.java:818)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.writeProperty(SegmentWriter.java:813)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.writeNode(SegmentWriter.java:1021)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter$2.childNodeChanged(SegmentWriter.java:990)
at
org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:396)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.writeNode(SegmentWriter.java:981)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.writeNode(SegmentWriter.java:1009)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder.getNodeState(SegmentNodeBuilder.java:61)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder.updated(SegmentNodeBuilder.java:46)
at
org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.updated(MemoryNodeBuilder.java:205)
at
org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.setProperty(MemoryNodeBuilder.java:489)
at
org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.setProperty(MemoryNodeBuilder.java:495)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.addNode(NodeStoreKernel.java:293)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.addNode(NodeStoreKernel.java:273)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.addNode(NodeStoreKernel.java:273)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.addNode(NodeStoreKernel.java:273)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.addNode(NodeStoreKernel.java:273)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.addNode(NodeStoreKernel.java:273)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.applyJsop(NodeStoreKernel.java:176)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.applyJsop(NodeStoreKernel.java:155)
at
org.apache.jackrabbit.oak.kernel.NodeStoreKernel.commit(NodeStoreKernel.java:519)
at
org.apache.jackrabbit.oak.kernel.KernelNodeStore.commit(KernelNodeStore.java:262)
at
org.apache.jackrabbit.oak.kernel.KernelNodeStoreBranch.persist(KernelNodeStoreBranch.java:111)
at
org.apache.jackrabbit.oak.kernel.KernelNodeStoreBranch.persist(KernelNodeStoreBranch.java:41)
at
org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch$Persisted.persistTransientHead(AbstractNodeStoreBranch.java:625)
at
org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch$Persisted.access$000(AbstractNodeStoreBranch.java:529)
at
org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch$BranchState.persist(AbstractNodeStoreBranch.java:352)
at
org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch$InMemory.setRoot(AbstractNodeStoreBranch.java:476)
at
org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch.setRoot(AbstractNodeStoreBranch.java:220)
at
org.apache.jackrabbit.oak.kernel.KernelRootBuilder.purge(KernelRootBuilder.java:185)
at
org.apache.jackrabbit.oak.kernel.KernelRootBuilder.merge(KernelRootBuilder.java:141)
at
org.apache.jackrabbit.oak.kernel.KernelNodeStore.merge(KernelNodeStore.java:164)
at
org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:45)
at org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:512)
at org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:189)
{noformat}
[~jukkaz], could you have a look at this when you have some time to spare?
> NodeStoreKernel doesn't handle array properties correctly
> ---------------------------------------------------------
>
> Key: OAK-1916
> URL: https://issues.apache.org/jira/browse/OAK-1916
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: mk
> Reporter: Michael Dürig
> Attachments: OAK-1916.patch
>
>
> {{NodeStoreKernel}} currently only supports array properties of type long.
> For other types it will fail with an {{IllegalStateException}}. See also the
> FIXME in the code.
--
This message was sent by Atlassian JIRA
(v6.2#6252)