ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From co...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/perforce P4HandlerAdapter.java
Date Sat, 01 Feb 2003 05:09:17 GMT
conor       2003/01/31 21:09:17

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/perforce
                        P4HandlerAdapter.java
  Log:
  Avoid perforce task lockup when only output on stderr
  
  PR:	16544
  Submitted by:	Antoine Levy-Lambert
  
  Revision  Changes    Path
  1.8       +33 -13    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java
  
  Index: P4HandlerAdapter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4HandlerAdapter.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -w -u -r1.7 -r1.8
  --- P4HandlerAdapter.java	30 Jul 2002 09:12:11 -0000	1.7
  +++ P4HandlerAdapter.java	1 Feb 2003 05:09:17 -0000	1.8
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -86,18 +86,10 @@
               }
   
               //Now read any input and process
  -
  -            BufferedReader input = new BufferedReader(
  -                    new InputStreamReader(
  -                            new SequenceInputStream(is, es)));
  -
  -            String line;
  -            while ((line = input.readLine()) != null) {
  -                process(line);
  -            }
  -
  -            input.close();
  -
  +            Thread output = new Thread(new Reader(is));
  +            Thread error = new Thread(new Reader(es));
  +            output.start();
  +            error.start();
   
           } catch (Exception e) {
               throw new BuildException(e);
  @@ -122,4 +114,32 @@
   
       public void stop() {
       }
  +    public class Reader implements Runnable {
  +        protected InputStream mystream;
  +        public Reader(InputStream is)
  +        {
  +            mystream=is;
  +        }
  +        public void setStream(InputStream is) {
  +            mystream=is;
  +        }
  +        public void run() {
  +            BufferedReader input = new BufferedReader(
  +                    new InputStreamReader(mystream));
  +
  +            String line;
  +            try {
  +                while ((line = input.readLine()) != null) {
  +                    synchronized (this){
  +                        process(line);
  +                    }
  +                }
   }
  +            catch (Exception e) {
  +                throw new BuildException(e);
  +            }
  +        }
  +
  +    }
  +}
  +
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ant-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: ant-dev-help@jakarta.apache.org


Mime
View raw message