diff --git a/api/src/main/java/io/grpc/Status.java b/api/src/main/java/io/grpc/Status.java index 7382cd03ee1..28388424e17 100644 --- a/api/src/main/java/io/grpc/Status.java +++ b/api/src/main/java/io/grpc/Status.java @@ -307,7 +307,7 @@ private static List buildStatusList() { * Return a {@link Status} given a canonical error {@link Code} value. */ public static Status fromCodeValue(int codeValue) { - if (codeValue < 0 || codeValue > STATUS_LIST.size()) { + if (codeValue < 0 || codeValue >= STATUS_LIST.size()) { return UNKNOWN.withDescription("Unknown code " + codeValue); } else { return STATUS_LIST.get(codeValue); diff --git a/api/src/test/java/io/grpc/StatusTest.java b/api/src/test/java/io/grpc/StatusTest.java index 9abeba436f7..5c8a1b2ae86 100644 --- a/api/src/test/java/io/grpc/StatusTest.java +++ b/api/src/test/java/io/grpc/StatusTest.java @@ -43,6 +43,7 @@ public void verifyExceptionMessage() { @Test public void impossibleCodeValue() { assertEquals(Code.UNKNOWN, Status.fromCodeValue(-1).getCode()); + assertEquals(Code.UNKNOWN, Status.fromCodeValue(17).getCode()); } @Test