|
5 | 5 | import java.io.BufferedReader; |
6 | 6 | import java.io.IOException; |
7 | 7 | import java.io.InputStreamReader; |
| 8 | +import java.util.concurrent.TimeUnit; |
8 | 9 |
|
9 | 10 | /** |
10 | 11 | * Displays and modifies entries in the local IP routing table. |
@@ -45,20 +46,22 @@ public void execute(String[] args, ShellContext context) throws IOException { |
45 | 46 | } |
46 | 47 |
|
47 | 48 | Process process = pb.start(); |
48 | | - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); |
49 | | - BufferedReader errorReader = |
50 | | - new BufferedReader(new InputStreamReader(process.getErrorStream())); |
| 49 | + try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); |
| 50 | + BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()))) { |
| 51 | + String line; |
| 52 | + while ((line = reader.readLine()) != null) { |
| 53 | + System.out.println(line); |
| 54 | + } |
51 | 55 |
|
52 | | - String line; |
53 | | - while ((line = reader.readLine()) != null) { |
54 | | - System.out.println(line); |
| 56 | + while ((line = errorReader.readLine()) != null) { |
| 57 | + System.err.println(line); |
| 58 | + } |
55 | 59 | } |
56 | 60 |
|
57 | | - while ((line = errorReader.readLine()) != null) { |
58 | | - System.err.println(line); |
59 | | - } |
60 | | - |
61 | | - process.waitFor(); |
| 61 | + if (!process.waitFor(30, TimeUnit.SECONDS)) { |
| 62 | + process.destroyForcibly(); |
| 63 | + System.out.println("Command timed out."); |
| 64 | + } |
62 | 65 |
|
63 | 66 | } catch (Exception e) { |
64 | 67 | System.out.println("Error executing route: " + e.getMessage()); |
|
0 commit comments