diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/AWSLambda.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/AWSLambda.java index 9dc4a095..32b4c682 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/AWSLambda.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/AWSLambda.java @@ -132,7 +132,7 @@ private static LambdaRequestHandler findRequestHandler(final String handlerStrin } public static void setupRuntimeLogger(LambdaLogger lambdaLogger) - throws ClassNotFoundException, IllegalAccessException, NoSuchFieldException { + throws ClassNotFoundException { ReflectUtil.setStaticField( Class.forName("com.amazonaws.services.lambda.runtime.LambdaRuntime"), "logger", @@ -158,9 +158,9 @@ public static String getEnvOrExit(String envVariableName) { private static FileDescriptor intToFd(int fd) throws RuntimeException { try { Class clazz = FileDescriptor.class; - Constructor c = clazz.getDeclaredConstructor(new Class[]{Integer.TYPE}); + Constructor c = clazz.getDeclaredConstructor(Integer.TYPE); c.setAccessible(true); - return c.newInstance(new Integer(fd)); + return c.newInstance(fd); } catch (Exception e) { throw new RuntimeException(e); } @@ -237,8 +237,10 @@ private static void startRuntime(String handler, LambdaLogger lambdaLogger) thro ByteArrayOutputStream payload; try { payload = requestHandler.call(request); - // TODO calling payload.toByteArray() creates a new copy of the underlying buffer runtimeClient.postInvocationResponse(request.getId(), payload.toByteArray()); + if (Thread.currentThread().isInterrupted()) { + shouldExit = true; + } } catch (UserFault f) { userFault = f; UserFault.filterStackTrace(f);