mbenson     2004/02/16 11:33:34

  Modified:    .        WHATSNEW
               src/main/org/apache/tools/ant/util LazyFileOutputStream.java
               src/main/org/apache/tools/ant/taskdefs Redirector.java
  Log:
  Redirector exhibited inconsistent behavior with regard to split
  output.  When sent to file only, files would be created in all
  cases; when split file-property, files were only created if
  writes were performed.
  
  Revision  Changes    Path
  1.544     +6 -1      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.543
  retrieving revision 1.544
  diff -u -r1.543 -r1.544
  --- WHATSNEW  16 Feb 2004 08:36:38 -0000      1.543
  +++ WHATSNEW  16 Feb 2004 19:33:33 -0000      1.544
  @@ -12,6 +12,11 @@
   
   * <whichresource> failed to load classes correctly.
   
  +* Redirector exhibited inconsistent behavior with regard to split
  +  output.  When sent to file only, files would be created in all
  +  cases; when split file-property, files were only created if
  +  writes were performed.
  +
   Other changes:
   --------------
   
  @@ -2668,4 +2673,4 @@
   
   * The packagelistloc attribute of <javadoc>'s <link> child will be
     resolved as a file (i.e. it is either absolute or relative to
  -  basedir).
  \ No newline at end of file
  +  basedir).
  
  
  
  1.5       +15 -0     
ant/src/main/org/apache/tools/ant/util/LazyFileOutputStream.java
  
  Index: LazyFileOutputStream.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/util/LazyFileOutputStream.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- LazyFileOutputStream.java 9 Feb 2004 21:05:38 -0000       1.4
  +++ LazyFileOutputStream.java 16 Feb 2004 19:33:34 -0000      1.5
  @@ -33,6 +33,7 @@
       private FileOutputStream fos;
       private File file;
       private boolean append;
  +    private boolean alwaysCreate;
       private boolean opened = false;
       private boolean closed = false;
   
  @@ -67,8 +68,19 @@
        * it.
        */
       public LazyFileOutputStream(File file, boolean append) {
  +        this(file, append, false);
  +    }
  +
  +    /**
  +     * Creates a stream that will eventually write to the file with
  +     * the given name, optionally append to instead of replacing
  +     * it, and optionally always create a file (even if zero length).
  +     */
  +    public LazyFileOutputStream(File file, boolean append,
  +                                boolean alwaysCreate) {
           this.file = file;
           this.append = append;
  +        this.alwaysCreate = alwaysCreate;
       }
   
       /**
  @@ -81,6 +93,9 @@
       }
   
       public synchronized void close() throws IOException {
  +        if (alwaysCreate) {
  +            ensureOpened();
  +        }
           if (opened) {
               fos.close();
           }
  
  
  
  1.15      +2 -8      
ant/src/main/org/apache/tools/ant/taskdefs/Redirector.java
  
  Index: Redirector.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Redirector.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- Redirector.java   9 Feb 2004 21:05:20 -0000       1.14
  +++ Redirector.java   16 Feb 2004 19:33:34 -0000      1.15
  @@ -232,7 +232,7 @@
               errorStream = new LogOutputStream(managingTask, 
Project.MSG_WARN);
           } else {
               if (out != null)  {
  -                outputStream = new LazyFileOutputStream(out, append);
  +                outputStream = new LazyFileOutputStream(out, append, true);
                   managingTask.log("Output redirected to " + out,
                                    Project.MSG_VERBOSE);
               }
  @@ -258,7 +258,7 @@
           }
   
           if (error != null)  {
  -            errorStream = new LazyFileOutputStream(error, append);
  +            errorStream = new LazyFileOutputStream(error, append, true);
               managingTask.log("Error redirected to " + error,
                                Project.MSG_VERBOSE);
           }
  @@ -422,15 +422,9 @@
               inputStream.close();
           }
   
  -        if (outputStream instanceof LazyFileOutputStream) {
  -            ((LazyFileOutputStream) outputStream).open();
  -        }
           outputStream.close();
   
           if (errorStream != outputStream) {
  -            if (errorStream instanceof LazyFileOutputStream) {
  -                ((LazyFileOutputStream) errorStream).open();
  -            }
               errorStream.close();
           }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to