X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FMountManager.java;h=36b0cfe5ed051f05a129f40864b2ef4f05380001;hb=3e811ede237ddd38f1565e6980fe0e6d49991fe3;hp=3995dc30fcc84c1f32a55f435d94f6cbb0dd280f;hpb=cc1dd97ebcc32e1bd754073ad23def182f460452;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/MountManager.java b/org.argeo.cms/src/org/argeo/cms/acr/MountManager.java index 3995dc30f..36b0cfe5e 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/MountManager.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/MountManager.java @@ -31,7 +31,7 @@ class MountManager { String[] parentPath = ContentUtils.getParentPath(mountPath); Content parent = systemSession.get(parentPath[0]); Content mount = parent.add(parentPath[1]); - mount.put(CrName.MOUNT.get(), "true"); + mount.put(CrName.mount.qName(), "true"); } @@ -48,10 +48,19 @@ class MountManager { } synchronized ContentProvider findContentProvider(String path) { +// if (ContentUtils.EMPTY.equals(path)) +// return partitions.firstEntry().getValue(); Map.Entry 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;