Hi,
I am using the sharable node feature in JackRabbit 1.6. I did an
export using Session.exportSystemView() then I import back using
Session.getWorkspace().importXML(). Everything work fine until I
created some sharable nodes. I got exception from importXML() like
below:
Caused by: javax.jcr.nodetype.NoSuchNodeTypeException:
{http://www.jcp.org/jcr/nt/1.0}share
at
org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.getEffectiveNodeType(NodeTypeRegistry.java:1024)
at
org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.getEffectiveNodeType(NodeTypeRegistry.java:471)
at
org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicableChildNodeDef(EffectiveNodeType.java:682)
at
org.apache.jackrabbit.core.nodetype.EffectiveNodeType.checkAddNodeConstraints(EffectiveNodeType.java:655)
at
org.apache.jackrabbit.core.BatchedItemOperations.checkAddNode(BatchedItemOperations.java:732)
at
org.apache.jackrabbit.core.xml.WorkspaceImporter.resolveUUIDConflict(WorkspaceImporter.java:150)
at
org.apache.jackrabbit.core.xml.WorkspaceImporter.startNode(WorkspaceImporter.java:487)
at
org.apache.jackrabbit.core.xml.SysViewImportHandler.processNode(SysViewImportHandler.java:86)
at
org.apache.jackrabbit.core.xml.SysViewImportHandler.endElement(SysViewImportHandler.java:231)
at
org.apache.jackrabbit.core.xml.ImportHandler.endElement(ImportHandler.java:183)
at
org.apache.jackrabbit.commons.xml.DefaultContentHandler.endElement(DefaultContentHandler.java:83)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at
org.apache.jackrabbit.commons.xml.ParsingContentHandler.parse(ParsingContentHandler.java:62)
at
org.apache.jackrabbit.commons.AbstractWorkspace.importXML(AbstractWorkspace.java:54)
at
org.drools.repository.RulesRepository.importRulesRepositoryFromStream(RulesRepository.java:979)
... 20 more
The code snippet I used to create sharable nodes looks like below roughly:
sharableNodeA().addMixin("mix:shareable");
.....
Session session = repo.getSession();
Workspace workspace = session.getWorkspace();
String path = "/pathA/pathB/sharableNodeB";
workspace.clone(workspace.getName(), sharableNodeA.getPath(),
path, false);
..............
I wonder where the schema mix:shareable is defined? Obviously it is
not defined by http://www.jcp.org/jcr/nt/1.0. Did I do anything wrong
or it is a bug in JackRabbit 1.6?
Thanks,
Jervis Liu