Your question is Review Java Code and Find Errors. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
This dispatcher queues outgoing commands to a field device and is meant to retry anything that fails to send, tracking the failure rate for an operator dashboard.
import java.util.ArrayList;
import java.util.List;
public class TelemetryDispatcher {
private List<String> pendingCommands = new ArrayList<>();
private int retryCount = 0;
public void enqueue(String command) {
pendingCommands.add(command);
}
public void dispatchAll() {
for (String command : pendingCommands) {
boolean sent = sendToDevice(command);
if (!sent) {
retryCount++;
pendingCommands.remove(command);
}
}
}
public boolean sendToDevice(String command) {
if (command.length() > 256) {
return false;
}
System.out.println("Sending: " + command);
return true;
}
public double getFailureRate() {
return retryCount / pendingCommands.size();
}
}
Review this Java code and find every error in it, including anything that would crash at runtime and anything that silently produces a wrong number. Explain each one and how you would fix it.