conor       2003/02/15 18:35:00

  Modified:    src/main/org/apache/tools/ant/taskdefs Tag: ANT_15_BRANCH
                        Jar.java
  Log:
  Merge
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.51.2.15 +17 -11    ant/src/main/org/apache/tools/ant/taskdefs/Jar.java
  
  Index: Jar.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Jar.java,v
  retrieving revision 1.51.2.14
  retrieving revision 1.51.2.15
  diff -u -w -u -r1.51.2.14 -r1.51.2.15
  --- Jar.java  10 Feb 2003 14:24:44 -0000      1.51.2.14
  +++ Jar.java  16 Feb 2003 02:35:00 -0000      1.51.2.15
  @@ -61,7 +61,6 @@
   import org.apache.tools.ant.types.EnumeratedAttribute;
   import org.apache.tools.zip.ZipOutputStream;
   
  -import java.io.IOException;
   import java.io.File;
   import java.io.InputStream;
   import java.io.Reader;
  @@ -70,6 +69,9 @@
   import java.io.PrintWriter;
   import java.io.ByteArrayInputStream;
   import java.io.OutputStreamWriter;
  +import java.io.FileOutputStream;
  +import java.io.FileInputStream;
  +import java.io.IOException;
   import java.io.InputStreamReader;
   import java.util.Enumeration;
   import java.util.zip.ZipEntry;
  @@ -227,7 +229,7 @@
        * or the name of a jar added through a fileset. If its the name of an 
added
        * jar, the task expects the manifest to be in the jar at 
META-INF/MANIFEST.MF.
        *
  -     * @param manifestFile
  +     * @param manifestFile the manifest file to use.
        */
       public void setManifest(File manifestFile) {
           if (!manifestFile.exists()) {
  @@ -241,18 +243,20 @@
       private Manifest getManifest(File manifestFile) {
   
           Manifest newManifest = null;
  -        Reader r = null;
  +        FileInputStream fis = null;
  +        InputStreamReader isr = null;
           try {
  -            r = new FileReader(manifestFile);
  -            newManifest = getManifest(r);
  +            fis = new FileInputStream(manifestFile);
  +            isr = new InputStreamReader(fis, "UTF-8");
  +            newManifest = getManifest(isr);
           } catch (IOException e) {
               throw new BuildException("Unable to read manifest file: "
                                        + manifestFile
                                        + " (" + e.getMessage() + ")", e);
           } finally {
  -            if (r != null) {
  +            if (isr != null) {
                   try {
  -                    r.close();
  +                    isr.close();
                   } catch (IOException e) {
                       // do nothing
                   }
  @@ -367,7 +371,8 @@
           zipDir(null, zOut, "META-INF/");
           // time to write the manifest
           ByteArrayOutputStream baos = new ByteArrayOutputStream();
  -        PrintWriter writer = new PrintWriter(baos);
  +        OutputStreamWriter osw = new OutputStreamWriter(baos, "UTF-8");
  +        PrintWriter writer = new PrintWriter(osw);
           manifest.write(writer);
           writer.flush();
   
  @@ -469,13 +474,13 @@
           }
       }
   
  -    private void filesetManifest(File file, InputStream is) {
  +    private void filesetManifest(File file, InputStream is) throws 
IOException {
           if (manifestFile != null && manifestFile.equals(file)) {
               // If this is the same name specified in 'manifest', this
               // is the manifest to use
               log("Found manifest " + file, Project.MSG_VERBOSE);
               if (is != null) {
  -                manifest = getManifest(new InputStreamReader(is));
  +                manifest = getManifest(new InputStreamReader(is, "UTF-8"));
               } else {
                   manifest = getManifest(file);
               }
  @@ -488,7 +493,8 @@
               try {
                   Manifest newManifest = null;
                   if (is != null) {
  -                    newManifest = getManifest(new InputStreamReader(is));
  +                    newManifest 
  +                        = getManifest(new InputStreamReader(is, "UTF-8"));
                   } else {
                       newManifest = getManifest(file);
                   }
  
  
  

Reply via email to