|
18 | 18 | import java.io.BufferedReader; |
19 | 19 | import java.io.IOException; |
20 | 20 | import java.io.InputStreamReader; |
| 21 | +import java.io.UncheckedIOException; |
21 | 22 | import java.lang.invoke.MethodHandles; |
22 | 23 | import java.lang.invoke.MethodType; |
23 | 24 | import java.lang.reflect.Field; |
24 | 25 | import java.nio.charset.StandardCharsets; |
25 | | -import java.util.Optional; |
26 | 26 |
|
27 | 27 | import static org.apache.commons.lang3.StringUtils.isNotBlank; |
28 | 28 |
|
|
38 | 38 | final class ProcessOutputLogger implements Runnable { |
39 | 39 | @SuppressWarnings("PMD.LoggerIsNotStaticFinal") |
40 | 40 | private final Logger logger; |
41 | | - private final Process process; |
42 | 41 | private final BufferedReader reader; |
43 | 42 |
|
44 | 43 | private ProcessOutputLogger(final Logger logger, final Process process) { |
45 | 44 | this.logger = logger; |
46 | | - this.process = process; |
47 | | - reader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8)); |
| 45 | + this.reader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8)); |
48 | 46 | } |
49 | 47 |
|
50 | 48 | @Override |
51 | 49 | public void run() { |
52 | 50 | try { |
53 | | - while (process.isAlive()) { |
54 | | - try { |
55 | | - Optional.ofNullable(reader.readLine()).ifPresent(logger::info); |
56 | | - } catch (final IOException e) { |
57 | | - logger.error("while reading output", e); |
58 | | - return; |
59 | | - } |
| 51 | + try { |
| 52 | + reader.lines().forEach(logger::info); |
| 53 | + } catch (final UncheckedIOException e) { |
| 54 | + logger.error("while reading output", e); |
60 | 55 | } |
61 | 56 | } finally { |
62 | 57 | try { |
|
0 commit comments