cziegeler    2003/02/07 03:22:27

  Modified:    src/java/org/apache/cocoon/components/source/impl
                        FileSource.java
  Log:
  Close the stream only once - this avoids accidentally deleting the already stored 
file
  
  Revision  Changes    Path
  1.12      +19 -17    
xml-cocoon2/src/java/org/apache/cocoon/components/source/impl/FileSource.java
  
  Index: FileSource.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/impl/FileSource.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- FileSource.java   6 Feb 2003 12:19:46 -0000       1.11
  +++ FileSource.java   7 Feb 2003 11:22:27 -0000       1.12
  @@ -116,24 +116,26 @@
           }
   
           public void close() throws IOException {
  -            super.close();
  -
  -            try {
  -                // Delete destination file
  -                if (this.source.getFile().exists()) {
  -                    this.source.getFile().delete();
  -                }
  -                // Rename temp file to destination file
  -                tmpFile.renameTo(this.source.getFile());
  -
  -            } finally {
  -                // Ensure temp file is deleted, ie lock is released.
  -                // If there was a failure above, written data is lost.
  -                if (tmpFile.exists()) {
  -                    tmpFile.delete();
  +            if (!this.isClosed) {
  +                super.close();
  +                try {
  +                    // Delete destination file
  +                    if (this.source.getFile().exists()) {
  +                        this.source.getFile().delete();
  +                    }
  +                    // Rename temp file to destination file
  +                    tmpFile.renameTo(this.source.getFile());
  +    
  +                } finally {
  +                    // Ensure temp file is deleted, ie lock is released.
  +                    // If there was a failure above, written data is lost.
  +                    if (tmpFile.exists()) {
  +                        tmpFile.delete();
  +                    }
  +                    this.isClosed = true;
                   }
  -                this.isClosed = true;
               }
  +
           }
   
           public boolean canCancel() {
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to