You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2007/10/17 14:59:27 UTC
svn commit: r585472 - in /jackrabbit/trunk/jackrabbit-core/src:
main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java
test/java/org/apache/jackrabbit/core/fs/AbstractFileSystemTest.java
Author: jukka
Date: Wed Oct 17 05:59:25 2007
New Revision: 585472
URL: http://svn.apache.org/viewvc?rev=585472&view=rev
Log:
JCR-1176: MemoryFileSystem is different from other FileSystems
- Fixed incorrect behavior in MemoryFileSystem
- Fixed incorrect tests in AbstractFileSystemTest
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java
jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/fs/AbstractFileSystemTest.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java?rev=585472&r1=585471&r2=585472&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/mem/MemoryFileSystem.java Wed Oct 17 05:59:25 2007
@@ -92,11 +92,19 @@
}
public void deleteFolder(String folderPath) throws FileSystemException {
- assertExistence(folderPath);
- if (hasChildren(folderPath)) {
- throw new FileSystemException(folderPath + " not empty");
+ assertIsFolder(folderPath);
+ Set allNames = entries.keySet();
+ Set selectedNames = new HashSet();
+ for (Iterator iter = allNames.iterator(); iter.hasNext();) {
+ String name = (String) iter.next();
+ if (name.startsWith(folderPath)) {
+ selectedNames.add(name);
+ }
+ }
+ for (Iterator iter = selectedNames.iterator(); iter.hasNext();) {
+ String name = (String) iter.next();
+ entries.remove(name);
}
- entries.remove(folderPath);
}
public boolean exists(String path) throws FileSystemException {
@@ -203,7 +211,7 @@
for (Iterator iter = allNames.iterator(); iter.hasNext();) {
String name = (String) iter.next();
if (name.matches(folderPath + "/[^/]*") && !name.equals("/")) {
- selectedNames.add(name);
+ selectedNames.add(name.substring(folderPath.length() + 1));
}
}
return (String[]) selectedNames.toArray(new String[0]);
@@ -218,16 +226,17 @@
}
private String[] listInternal(String folderPath, boolean isFolder) {
- String[] entryPaths = list(folderPath);
- Set resultEntryPaths = new HashSet();
- for (int i = 0; i < entryPaths.length; i++) {
- String entryPath = entryPaths[i];
- MemoryFileSystemEntry entry = getEntry(entryPath);
- if (entry.isFolder() == isFolder) {
- resultEntryPaths.add(entryPath);
+ String[] names = list(folderPath);
+ if (folderPath.equals("/")) {
+ folderPath = "";
+ }
+ Set result = new HashSet();
+ for (int i = 0; i < names.length; i++) {
+ if (getEntry(folderPath + "/" + names[i]).isFolder() == isFolder) {
+ result.add(names[i]);
}
}
- return (String[]) resultEntryPaths.toArray(new String[0]);
+ return (String[]) result.toArray(new String[0]);
}
public void move(String srcPath, String destPath) {
Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/fs/AbstractFileSystemTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/fs/AbstractFileSystemTest.java?rev=585472&r1=585471&r2=585472&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/fs/AbstractFileSystemTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/fs/AbstractFileSystemTest.java Wed Oct 17 05:59:25 2007
@@ -141,9 +141,10 @@
fs.createFolder("/folder/subfolder");
try {
fs.deleteFolder("/folder");
- fail("FileSystemException expected");
+ assertFalse(fs.exists("/folder"));
+ assertFalse(fs.exists("/folder/subfolder"));
} catch (FileSystemException e) {
- // ok
+ fail("unexpected FileSystemException");
}
}
@@ -161,18 +162,20 @@
String[] entries = fs.list("/");
assertEquals(2, entries.length);
Arrays.sort(entries);
- assertEquals(entries[0], "/file");
- assertEquals(entries[1], "/folder");
+ System.out.println(entries[0]);
+ System.out.println(entries[1]);
+ assertEquals(entries[0], "file");
+ assertEquals(entries[1], "folder");
entries = fs.list("/folder");
assertEquals(2, entries.length);
Arrays.sort(entries);
- assertEquals(entries[0], "/folder/file");
- assertEquals(entries[1], "/folder/subfolder");
+ assertEquals(entries[0], "file");
+ assertEquals(entries[1], "subfolder");
entries = fs.listFiles("/folder");
assertEquals(1, entries.length);
- assertEquals(entries[0], "/folder/file");
+ assertEquals(entries[0], "file");
}
}