]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/acr/MountManager.java
Improve ACR
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / MountManager.java
index 6a6dcaacbe795ffa836f25f7738f62884f291310..36b0cfe5ed051f05a129f40864b2ef4f05380001 100644 (file)
@@ -48,10 +48,19 @@ class MountManager {
        }
 
        synchronized ContentProvider findContentProvider(String path) {
+//             if (ContentUtils.EMPTY.equals(path))
+//                     return partitions.firstEntry().getValue();
                Map.Entry<String, ContentProvider> entry = partitions.floorEntry(path);
                if (entry == null)
-                       throw new IllegalArgumentException("No entry provider found for " + path);
+                       throw new IllegalArgumentException("No entry provider found for path '" + path + "'");
                String mountPath = entry.getKey();
+               if (!path.startsWith(mountPath)) {
+                       // FIXME make it more robust and find when there is no content provider
+                       String[] parent = ContentUtils.getParentPath(path);
+                       return findContentProvider(parent[0]);
+                       // throw new IllegalArgumentException("Path " + path + " doesn't have a content
+                       // provider");
+               }
                ContentProvider contentProvider = entry.getValue();
                assert mountPath.equals(contentProvider.getMountPath());
                return contentProvider;