X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.jackrabbit%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjackrabbit%2FJackrabbitWrapper.java;h=f9f04c4cbd0de9bc469f0a827ae55f4ae624d249;hb=3a3d316af102ba410d1d9e6de349d0c8f7ac044f;hp=1505b1cfe9763d50f25c69e7cdda849fe3b1e9f9;hpb=11dcf593dee796336eaa3f7063c6b36595d31aa6;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitWrapper.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitWrapper.java index 1505b1cfe..f9f04c4cb 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitWrapper.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitWrapper.java @@ -191,9 +191,14 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements reader = new InputStreamReader(new ByteArrayInputStream(cndContent)); // actually imports the CND - CndImporter.registerNodeTypes(reader, session, true); + try { + CndImporter.registerNodeTypes(reader, session, true); + } catch (Exception e) { + log.error("Cannot import data model " + resUrl, e); + return; + } - if (dataModel != null & !dataModel.isNodeType(NodeType.NT_FILE)) { + if (dataModel != null && !dataModel.isNodeType(NodeType.NT_FILE)) { dataModel.remove(); dataModel = null; } @@ -301,6 +306,9 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements */ /** Find which OSGi bundle provided the data model resource */ protected Bundle findDataModelBundle(String resUrl) { + if (bundleContext == null) + return null; + if (resUrl.startsWith("/")) resUrl = resUrl.substring(1); String pkg = resUrl.substring(0, resUrl.lastIndexOf('/')).replace('/', @@ -329,8 +337,10 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements if (exportedPackage != null) { exportingBundle = exportedPackage.getExportingBundle(); } else { - throw new ArgeoException("No OSGi exporting package found for " - + resUrl); + // assume this is in the same bundle + exportingBundle = bundleContext.getBundle(); +// throw new ArgeoException("No OSGi exporting package found for " +// + resUrl); } return exportingBundle; }