Add possibility to choose a manifest putter for an insert.
[jSite.git] / src / de / todesbaum / util / freenet / fcp2 / ClientPutComplexDir.java
index 7b9115d..be61b81 100644 (file)
@@ -38,7 +38,7 @@ import de.todesbaum.util.io.Closer;
  * @author David Roden <droden@gmail.com>
  * @version $Id$
  */
-public class ClientPutComplexDir extends ClientPutDir {
+public class ClientPutComplexDir extends ClientPutDir<ClientPutComplexDir> {
 
        /** The file entries of this directory. */
        private List<FileEntry> fileEntries = new ArrayList<FileEntry>();
@@ -90,8 +90,10 @@ public class ClientPutComplexDir extends ClientPutDir {
         *
         * @param fileEntry
         *            The file entry to add to the directory
+        * @throws IOException
+        *             if an I/O error occurs when creating the payload stream
         */
-       public void addFileEntry(FileEntry fileEntry) {
+       public void addFileEntry(FileEntry fileEntry) throws IOException {
                if (fileEntry instanceof DirectFileEntry) {
                        if (payloadFile == null) {
                                try {
@@ -114,7 +116,8 @@ public class ClientPutComplexDir extends ClientPutDir {
                                        payloadOutputStream.flush();
                                        fileEntries.add(fileEntry);
                                } catch (IOException ioe1) {
-                                       /* hmm, ignore? */
+                                       payloadFile.delete();
+                                       throw ioe1;
                                } finally {
                                        Closer.close(payloadOutputStream);
                                        Closer.close(payloadInputStream);