Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/Connector.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/Connector.java	(revision 2763)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/Connector.java	(revision 2764)
@@ -31,4 +31,5 @@
 import net.fckeditor.connector.exception.InvalidCurrentFolderException;
 import net.fckeditor.connector.exception.InvalidNewFolderNameException;
+import net.fckeditor.connector.exception.WriteException;
 import net.fckeditor.handlers.ResourceType;
 
@@ -126,10 +127,10 @@
 	 * @return <code>fileName</code> or the name of the renamed file.
 	 * @throws InvalidCurrentFolderException
-	 * @throws IOException
+	 * @throws WriteException
 	 */
 	public String fileUpload(final ResourceType type,
 			final String currentFolder, final String fileName,
 			final InputStream inputStream)
-			throws InvalidCurrentFolderException, IOException;
+			throws InvalidCurrentFolderException, WriteException;
 
 }
Index: Keditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/exception/UnknownException.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/exception/UnknownException.java	(revision 2763)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/*
- * FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
- * 
- * == BEGIN LICENSE ==
- * 
- * Licensed under the terms of any of the following licenses at your
- * choice:
- * 
- *  - GNU General Public License Version 2 or later (the "GPL")
- *    http://www.gnu.org/licenses/gpl.html
- * 
- *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- *    http://www.gnu.org/licenses/lgpl.html
- * 
- *  - Mozilla Public License Version 1.1 or later (the "MPL")
- *    http://www.mozilla.org/MPL/MPL-1.1.html
- * 
- * == END LICENSE ==
- */
-package net.fckeditor.connector.exception;
-
-import net.fckeditor.connector.Dispatcher;
-
-/**
- * Signals an undefined exception.<br />
- * <br />
- * This is an exception to signal the {@link Dispatcher} what was going wrong.
- * 
- * @version $Id$
- */
-public class UnknownException extends Exception {
-
-	private static final long serialVersionUID = 3177409237059428857L;
-
-}
Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/exception/WriteException.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/exception/WriteException.java	(revision 2764)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/exception/WriteException.java	(revision 2764)
@@ -0,0 +1,35 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * 
+ * == BEGIN LICENSE ==
+ * 
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ * 
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ * 
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ * 
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ * 
+ * == END LICENSE ==
+ */
+package net.fckeditor.connector.exception;
+
+import net.fckeditor.connector.Dispatcher;
+
+/**
+ * Thrown to indicate that during file write action an error has occured.
+ * These is an exception to signal the {@link Dispatcher} what was going wrong.
+ *
+ * @version $Id$
+ */
+public class WriteException extends Exception {
+
+	private static final long serialVersionUID = 7742121738185371543L;
+
+}
Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/impl/AbstracLocalFileSystemConnector.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/impl/AbstracLocalFileSystemConnector.java	(revision 2763)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/connector/impl/AbstracLocalFileSystemConnector.java	(revision 2764)
@@ -38,5 +38,5 @@
 import net.fckeditor.connector.exception.InvalidCurrentFolderException;
 import net.fckeditor.connector.exception.InvalidNewFolderNameException;
-import net.fckeditor.handlers.ConnectorHandler;
+import net.fckeditor.connector.exception.WriteException;
 import net.fckeditor.handlers.RequestCycleHandler;
 import net.fckeditor.handlers.ResourceType;
@@ -72,6 +72,6 @@
 	public String fileUpload(final ResourceType type,
 			final String currentFolder, final String fileName,
-			final InputStream inputStream) throws SecurityException,
-			InvalidCurrentFolderException, IOException {
+			final InputStream inputStream)
+			throws InvalidCurrentFolderException, WriteException {
 		String absolutePath = getRealUserFilesAbsolutePath(RequestCycleHandler
 				.getUserFilesAbsolutePath(ThreadLocalData.getRequest()));
@@ -80,17 +80,12 @@
 		if (!currentDir.exists() || !currentDir.isDirectory())
 			throw new InvalidCurrentFolderException();
+
 		File newFile = new File(currentDir, fileName);
 		File fileToSave = UtilsFile.getUniqueFile(newFile.getAbsoluteFile());
 
-		// TODO maybe there is no need to catch and rethrow the exceptions, we
-		// may just pass them as-is
 		try {
 			IOUtils.copyLarge(inputStream, new FileOutputStream(fileToSave));
-		} catch (SecurityException e) {
-			// not explicitly thrown by anyone but in case that a
-			// SecurityManager is deployed, this could restrict writing on disk
-			throw e;
 		} catch (IOException e) {
-			throw e;
+			throw new WriteException();
 		}
 		return fileToSave.getName();
@@ -106,5 +101,5 @@
 	public void createFolder(final ResourceType type,
 			final String currentFolder, final String newFolder)
-			throws InvalidCurrentFolderException, SecurityException,
+			throws InvalidCurrentFolderException,
 			InvalidNewFolderNameException, FolderAlreadyExistsException {
 		String absolutePath = getRealUserFilesAbsolutePath(RequestCycleHandler
@@ -114,15 +109,10 @@
 		if (!currentDir.exists() || !currentDir.isDirectory())
 			throw new InvalidCurrentFolderException();
+
 		File newDir = new File(currentDir, newFolder);
-		// TODO maybe there is no need to catch and rethrow the exceptions, we
-		// may just pass them as-is
 		if (newDir.exists())
 			throw new FolderAlreadyExistsException();
-		try {
-			if (!newDir.mkdir())
-				throw new InvalidNewFolderNameException();
-		} catch (SecurityException e) {
-			throw e;
-		}
+		if (!newDir.mkdir())
+			throw new InvalidNewFolderNameException();
 	}
 
@@ -134,6 +124,5 @@
 	 */
 	public List<Map<String, Object>> getFiles(ResourceType type,
-			String currentFolder) throws InvalidCurrentFolderException,
-			SecurityException {
+			String currentFolder) throws InvalidCurrentFolderException {
 		String absolutePath = getRealUserFilesAbsolutePath(RequestCycleHandler
 				.getUserFilesAbsolutePath(ThreadLocalData.getRequest()));
@@ -146,20 +135,14 @@
 		List<Map<String, Object>> files;
 		Map<String, Object> fileMap;
-		// TODO maybe there is no need to catch and rethrow the exceptions, we
-		// may just pass them as-is
-		try {
-			File[] fileList = currentDir
-					.listFiles((FileFilter) FileFileFilter.FILE);
-			files = new ArrayList<Map<String, Object>>(fileList.length);
-			for (File file : fileList) {
-				fileMap = new HashMap<String, Object>(2);
-				fileMap.put(Connector.KEY_NAME, file.getName());
-				fileMap.put(Connector.KEY_SIZE, file.length());
-				files.add(fileMap);
-			}
-			return files;
-		} catch (SecurityException e) {
-			throw e;
+		File[] fileList = currentDir
+				.listFiles((FileFilter) FileFileFilter.FILE);
+		files = new ArrayList<Map<String, Object>>(fileList.length);
+		for (File file : fileList) {
+			fileMap = new HashMap<String, Object>(2);
+			fileMap.put(Connector.KEY_NAME, file.getName());
+			fileMap.put(Connector.KEY_SIZE, file.length());
+			files.add(fileMap);
 		}
+		return files;
 	}
 
@@ -171,6 +154,5 @@
 	 */
 	public List<String> getFolders(final ResourceType type,
-			final String currentFolder) throws InvalidCurrentFolderException,
-			SecurityException {
+			final String currentFolder) throws InvalidCurrentFolderException {
 		String absolutePath = getRealUserFilesAbsolutePath(RequestCycleHandler
 				.getUserFilesAbsolutePath(ThreadLocalData.getRequest()));
@@ -180,12 +162,6 @@
 			throw new InvalidCurrentFolderException();
 
-		// TODO maybe there is no need to catch and rethrow the exceptions, we
-		// may just pass them as-is
-		try {
-			String[] fileList = currentDir.list(DirectoryFileFilter.DIRECTORY);
-			return Arrays.asList(fileList);
-		} catch (SecurityException e) {
-			throw e;
-		}
+		String[] fileList = currentDir.list(DirectoryFileFilter.DIRECTORY);
+		return Arrays.asList(fileList);
 	}
 
@@ -212,9 +188,7 @@
 	 *            Resource type to mkdir.
 	 * @return The file object of the resource type.
-	 * @throws SecurityException
-	 *             If a SecurityManager denies folder creation.
 	 */
 	private static File getOrCreateResourceTypeDir(final String baseDir,
-			final ResourceType type) throws SecurityException {
+			final ResourceType type) {
 		File dir = new File(baseDir, type.getPath());
 		if (!dir.exists())
