Skip to content

Commit b093d0e

Browse files
Refactor: Update RouteCommand.java
1 parent 81073b5 commit b093d0e

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

src/main/java/com/mycmd/commands/RouteCommand.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.BufferedReader;
66
import java.io.IOException;
77
import java.io.InputStreamReader;
8+
import java.util.concurrent.TimeUnit;
89

910
/**
1011
* Displays and modifies entries in the local IP routing table.
@@ -45,20 +46,22 @@ public void execute(String[] args, ShellContext context) throws IOException {
4546
}
4647

4748
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+
}
5155

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+
}
5559
}
5660

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+
}
6265

6366
} catch (Exception e) {
6467
System.out.println("Error executing route: " + e.getMessage());

0 commit comments

Comments
 (0)