11package ru .kgn .typescript .tsc ;
22
3+ import org .apache .maven .plugin .logging .Log ;
4+
35import java .io .BufferedReader ;
46import java .io .File ;
5- import java .io .FileReader ;
6- //import java.io.IOException;
77import java .io .IOException ;
88import java .io .InputStreamReader ;
99import java .util .ArrayList ;
1010import java .util .Arrays ;
1111import java .util .List ;
12- import org .apache .maven .plugin .logging .Log ;
12+
13+ //import java.io.IOException;
1314
1415/**
1516 *
@@ -44,20 +45,17 @@ public void compile(List<String> arguments) throws TypeScriptCompilationExceptio
4445 ProcessBuilder processBuilder = new ProcessBuilder (commands );
4546 processBuilder .redirectErrorStream (true );
4647 processBuilder .directory (workingDirectory );
48+
49+ BufferedReader reader = null ;
4750 try {
4851 Process process = processBuilder .start ();
49- BufferedReader reader = new BufferedReader (new InputStreamReader (process .getInputStream ()));
52+ reader = new BufferedReader (new InputStreamReader (process .getInputStream ()));
53+ String line ;
54+ while ((line = reader .readLine ()) != null ) {
55+ log .info (line );
56+ }
5057 process .waitFor ();
5158 int resultCode = process .exitValue ();
52- sb = new StringBuilder ();
53- String line = reader .readLine ();
54- while (line != null ) {
55- sb .append (line );
56- sb .append ('\n' );
57- line = reader .readLine ();
58- }
59- reader .close ();
60- log .info (sb .toString ());
6159
6260 if (resultCode != 0 ) {
6361 //TODO: Error has been acquired
@@ -73,6 +71,14 @@ public void compile(List<String> arguments) throws TypeScriptCompilationExceptio
7371 TypeScriptCompilationException exception = new TypeScriptCompilationException (ex );
7472 exception .setResultCode (-1 );
7573 throw exception ;
74+ } finally {
75+ if (reader != null ) {
76+ try {
77+ reader .close ();
78+ } catch (IOException e ) {
79+ log .warn ("Failed to close input stream of subprocess" , e );
80+ }
81+ }
7682 }
7783 }
7884}
0 commit comments