]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/JackrabbitWrapper.java
Make CND import more robust
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jackrabbit / src / main / java / org / argeo / jackrabbit / JackrabbitWrapper.java
index 1505b1cfe9763d50f25c69e7cdda849fe3b1e9f9..86fc95b62522277f461fdbc7a4a66aa6162c03ef 100644 (file)
@@ -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('/',