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 0e65af4e..ade1ea7b 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 @@ -182,7 +182,6 @@ private static LogSink createLogSink() { } public static void main(String[] args) { - // TODO validate arguments, show usage startRuntime(args[0]); } diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ClasspathLoader.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ClasspathLoader.java index 791cfb12..bcc2ac97 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ClasspathLoader.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ClasspathLoader.java @@ -13,7 +13,7 @@ /** * This class loads all of the classes that are in jars on the classpath. - * + *

* It is used to generate a class list and Application CDS archive that includes all the possible classes that could be * loaded by the runtime. This simplifies the process of generating the Application CDS archive. */ @@ -38,7 +38,7 @@ private static void loadClass(String name) { try { Class.forName(name, true, SYSTEM_CLASS_LOADER); } catch (ClassNotFoundException e) { - System.err.println("[WARN] Failed to load " + name + ": " + e.getMessage()); + System.err.println("[WARN] Failed to load " + name + ": " + e.getMessage()); } } @@ -48,13 +48,13 @@ private static void loadClassesInJar(File file) throws IOException { while (en.hasMoreElements()) { JarEntry entry = en.nextElement(); - if(!entry.getName().endsWith(".class")) { + if (!entry.getName().endsWith(".class")) { continue; } String name = pathToClassName(entry.getName()); - if(BLOCKLIST.contains(name)) { + if (BLOCKLIST.contains(name)) { continue; } @@ -65,11 +65,11 @@ private static void loadClassesInJar(File file) throws IOException { private static void loadClassesInClasspathEntry(String entry) throws IOException { File file = new File(entry); - if(!file.exists()) { + if (!file.exists()) { throw new FileNotFoundException("Classpath entry does not exist: " + file.getPath()); } - if(file.isDirectory() || !file.getPath().endsWith(".jar")) { + if (file.isDirectory() || !file.getPath().endsWith(".jar")) { System.err.println("[WARN] Only jar classpath entries are supported. Skipping " + file.getPath()); return; } @@ -79,10 +79,10 @@ private static void loadClassesInClasspathEntry(String entry) throws IOException private static void loadAllClasses() throws IOException { final String classPath = System.getProperty("java.class.path"); - if(classPath == null) { + if (classPath == null) { return; } - for(String classPathEntry : classPath.split(File.pathSeparator)) { + for (String classPathEntry : classPath.split(File.pathSeparator)) { loadClassesInClasspathEntry(classPathEntry); } } diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/EventHandlerLoader.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/EventHandlerLoader.java index 65b95fcb..a8d34716 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/EventHandlerLoader.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/EventHandlerLoader.java @@ -4,13 +4,14 @@ import com.amazonaws.services.lambda.runtime.ClientContext; import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.LambdaRuntimeInternal; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import com.amazonaws.services.lambda.runtime.LambdaRuntimeInternal; - +import com.amazonaws.services.lambda.runtime.api.client.LambdaRequestHandler.UserFaultHandler; import com.amazonaws.services.lambda.runtime.api.client.api.LambdaClientContext; import com.amazonaws.services.lambda.runtime.api.client.api.LambdaCognitoIdentity; import com.amazonaws.services.lambda.runtime.api.client.api.LambdaContext; +import com.amazonaws.services.lambda.runtime.api.client.runtimeapi.InvocationRequest; import com.amazonaws.services.lambda.runtime.api.client.util.UnsafeUtil; import com.amazonaws.services.lambda.runtime.serialization.PojoSerializer; import com.amazonaws.services.lambda.runtime.serialization.events.LambdaEventSerializers; @@ -18,8 +19,6 @@ import com.amazonaws.services.lambda.runtime.serialization.factories.JacksonFactory; import com.amazonaws.services.lambda.runtime.serialization.util.Functions; import com.amazonaws.services.lambda.runtime.serialization.util.ReflectUtil; -import com.amazonaws.services.lambda.runtime.api.client.LambdaRequestHandler.UserFaultHandler; -import com.amazonaws.services.lambda.runtime.api.client.runtimeapi.InvocationRequest; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -42,9 +41,7 @@ import java.util.Map; import java.util.Optional; -import static com.amazonaws.services.lambda.runtime.api.client.UserFault.filterStackTrace; -import static com.amazonaws.services.lambda.runtime.api.client.UserFault.makeUserFault; -import static com.amazonaws.services.lambda.runtime.api.client.UserFault.trace; +import static com.amazonaws.services.lambda.runtime.api.client.UserFault.*; public final class EventHandlerLoader { private static final byte[] _JsonNull = new byte[]{'n', 'u', 'l', 'l'}; @@ -57,12 +54,14 @@ private enum Platform { private static final EnumMap>> typeCache = new EnumMap<>(Platform.class); - private EventHandlerLoader() { } + private EventHandlerLoader() { + } /** * returns the appropriate serializer for the class based on platform and whether the class is a supported event + * * @param platform enum platform - * @param type Type of object used + * @param type Type of object used * @return PojoSerializer * @see Platform for which platforms are used * @see LambdaEventSerializers for how mixins and modules are added to the serializer @@ -76,7 +75,7 @@ private static PojoSerializer getSerializer(Platform platform, Type type // if serializing a Class that is a Lambda supported event, use Jackson with customizations if (type instanceof Class) { - Class clazz = ((Class)type); + Class clazz = ((Class) type); if (LambdaEventSerializers.isLambdaSupportedEvent(clazz.getName())) { return LambdaEventSerializers.serializerFor(clazz, AWSLambda.customerClassLoader); } @@ -150,7 +149,7 @@ private static Platform getPlatform(Context context) { } private static boolean isVoid(Type type) { - return Void.TYPE.equals(type) || (type instanceof Class) && Void.class.isAssignableFrom((Class)type); + return Void.TYPE.equals(type) || (type instanceof Class) && Void.class.isAssignableFrom((Class) type); } /** @@ -393,7 +392,7 @@ public void handleRequest(InputStream inputStream, OutputStream outputStream, Co } } - public static Constructor getConstructor(Class clazz) throws Exception { + private static Constructor getConstructor(Class clazz) throws Exception { final Constructor constructor; try { constructor = clazz.getConstructor(); @@ -409,7 +408,7 @@ public static Constructor getConstructor(Class clazz) throws Exception return constructor; } - public static T newInstance(Constructor constructor) { + private static T newInstance(Constructor constructor) { try { return constructor.newInstance(); } catch (UserFault e) { @@ -458,15 +457,15 @@ public ClassContext(ParameterizedType type, ClassContext curContext) { for (int i = 0; i < types.length; i++) { Type t = types[i]; if (t instanceof TypeVariable) { - types[i] = curContext.resolveTypeVariable((TypeVariable)t); + types[i] = curContext.resolveTypeVariable((TypeVariable) t); } } Type t = type.getRawType(); if (t instanceof Class) { - this.clazz = (Class)t; + this.clazz = (Class) t; } else if (t instanceof TypeVariable) { - this.clazz = (Class)((TypeVariable)t).getGenericDeclaration(); + this.clazz = (Class) ((TypeVariable) t).getGenericDeclaration(); } else { throw new RuntimeException("Type " + t + " is of unexpected type " + t.getClass()); } @@ -499,30 +498,30 @@ private TypeVariable[] getTypeParameters() { * * @return null of no type found. Otherwise the type found. */ - public static Type[] findInterfaceParameters(Class clazz, Class iface) { + private static Type[] findInterfaceParameters(Class clazz, Class iface) { LinkedList clazzes = new LinkedList<>(); - clazzes.addFirst(new ClassContext(clazz, (Type[])null)); + clazzes.addFirst(new ClassContext(clazz, (Type[]) null)); while (!clazzes.isEmpty()) { final ClassContext curContext = clazzes.removeLast(); Type[] interfaces = curContext.clazz.getGenericInterfaces(); for (Type type : interfaces) { if (type instanceof ParameterizedType) { - ParameterizedType candidate = (ParameterizedType)type; + ParameterizedType candidate = (ParameterizedType) type; Type rawType = candidate.getRawType(); if (!(rawType instanceof Class)) { //should be impossible System.err.println("raw type is not a class: " + rawType); continue; } - Class rawClass = (Class)rawType; + Class rawClass = (Class) rawType; if (iface.isAssignableFrom(rawClass)) { return new ClassContext(candidate, curContext).actualTypeArguments; } else { clazzes.addFirst(new ClassContext(candidate, curContext)); } } else if (type instanceof Class) { - clazzes.addFirst(new ClassContext((Class)type, curContext)); + clazzes.addFirst(new ClassContext((Class) type, curContext)); } else { //should never happen? System.err.println("Unexpected type class " + type.getClass().getName()); @@ -531,9 +530,9 @@ public static Type[] findInterfaceParameters(Class clazz, Class iface) { final Type superClass = curContext.clazz.getGenericSuperclass(); if (superClass instanceof ParameterizedType) { - clazzes.addFirst(new ClassContext((ParameterizedType)superClass, curContext)); + clazzes.addFirst(new ClassContext((ParameterizedType) superClass, curContext)); } else if (superClass != null) { - clazzes.addFirst(new ClassContext((Class)superClass, curContext)); + clazzes.addFirst(new ClassContext((Class) superClass, curContext)); } } return null; @@ -541,7 +540,7 @@ public static Type[] findInterfaceParameters(Class clazz, Class iface) { @SuppressWarnings({"rawtypes"}) - public static LambdaRequestHandler wrapRequestHandlerClass(final Class clazz) { + private static LambdaRequestHandler wrapRequestHandlerClass(final Class clazz) { Type[] ptypes = findInterfaceParameters(clazz, RequestHandler.class); if (ptypes == null) { return new UserFaultHandler(makeUserFault("Class " @@ -555,7 +554,7 @@ public static LambdaRequestHandler wrapRequestHandlerClass(final Class clazz) { + private static LambdaRequestHandler wrapRequestStreamHandlerClass(final Class clazz) { final Constructor constructor; try { constructor = getConstructor(clazz); @@ -600,7 +599,7 @@ public static LambdaRequestHandler wrapRequestStreamHandlerClass(final Class clazz) { + private static LambdaRequestHandler loadStreamingRequestHandler(Class clazz) { if (RequestStreamHandler.class.isAssignableFrom(clazz)) { return wrapRequestStreamHandlerClass(clazz.asSubclass(RequestStreamHandler.class)); } else if (RequestHandler.class.isAssignableFrom(clazz)) { @@ -730,10 +729,9 @@ private static final boolean lastParameterIsContext(Class[] params) { public int compare(Method lhs, Method rhs) { //1. Non bridge methods are preferred over bridge methods. - if (! lhs.isBridge() && rhs.isBridge()) { + if (!lhs.isBridge() && rhs.isBridge()) { return -1; - } - else if (!rhs.isBridge() && lhs.isBridge()) { + } else if (!rhs.isBridge() && lhs.isBridge()) { return 1; } @@ -828,13 +826,13 @@ private static LambdaRequestHandler loadEventPojoHandler(HandlerInfo handlerInfo } @SuppressWarnings({"rawtypes"}) - public static LambdaRequestHandler wrapPojoHandler(RequestHandler instance, Type pType, Type rType) { + private static LambdaRequestHandler wrapPojoHandler(RequestHandler instance, Type pType, Type rType) { return wrapRequestStreamHandler(new PojoHandlerAsStreamHandler(instance, Optional.ofNullable(pType), isVoid(rType) ? Optional.empty() : Optional.of(rType) )); } - public static String exceptionToString(Throwable t) { + private static String exceptionToString(Throwable t) { StringWriter writer = new StringWriter(65536); try (PrintWriter wrapped = new PrintWriter(writer)) { t.printStackTrace(wrapped); @@ -849,7 +847,7 @@ public static String exceptionToString(Throwable t) { return buffer.toString(); } - public static LambdaRequestHandler wrapRequestStreamHandler(final RequestStreamHandler handler) { + private static LambdaRequestHandler wrapRequestStreamHandler(final RequestStreamHandler handler) { return new LambdaRequestHandler() { private final ByteArrayOutputStream output = new ByteArrayOutputStream(1024); private Functions.V2 log4jContextPutMethod = null; @@ -860,14 +858,15 @@ private void safeAddRequestIdToLog4j(String log4jContextClassName, Class log4jContextClass = ReflectUtil.loadClass(AWSLambda.customerClassLoader, log4jContextClassName); log4jContextPutMethod = ReflectUtil.loadStaticV2(log4jContextClass, "put", false, String.class, contextMapValueClass); log4jContextPutMethod.call("AWSRequestId", request.getId()); - } catch (Exception e) {} + } catch (Exception e) { + } } public ByteArrayOutputStream call(InvocationRequest request) throws Error, Exception { output.reset(); LambdaCognitoIdentity cognitoIdentity = null; - if(request.getCognitoIdentity() != null && !request.getCognitoIdentity().isEmpty()) { + if (request.getCognitoIdentity() != null && !request.getCognitoIdentity().isEmpty()) { cognitoIdentity = getCognitoSerializer().fromJson(request.getCognitoIdentity()); } diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/Failure.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/Failure.java index ff6c1766..c445bafe 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/Failure.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/Failure.java @@ -36,7 +36,7 @@ public Failure(Throwable t) { this.errorType = t.getClass().getName(); StackTraceElement[] trace = t.getStackTrace(); this.stackTrace = new String[trace.length]; - for( int i = 0; i < trace.length; i++) { + for (int i = 0; i < trace.length; i++) { this.stackTrace[i] = trace[i].toString(); } Throwable cause = t.getCause(); diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/HandlerInfo.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/HandlerInfo.java index eaca0fd0..8f95ba85 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/HandlerInfo.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/HandlerInfo.java @@ -10,7 +10,7 @@ public static class InvalidHandlerException extends RuntimeException { public final Class clazz; public final String methodName; - public HandlerInfo (Class clazz, String methodName) { + public HandlerInfo(Class clazz, String methodName) { this.clazz = clazz; this.methodName = methodName; } @@ -19,7 +19,7 @@ public static HandlerInfo fromString(String handler, ClassLoader cl) throws Clas final int colonLoc = handler.lastIndexOf("::"); final String className; final String methodName; - if(colonLoc < 0) { + if (colonLoc < 0) { className = handler; methodName = null; } else { @@ -27,7 +27,7 @@ public static HandlerInfo fromString(String handler, ClassLoader cl) throws Clas methodName = handler.substring(colonLoc + 2); } - if(className.isEmpty() || (methodName != null && methodName.isEmpty())) { + if (className.isEmpty() || (methodName != null && methodName.isEmpty())) { throw new InvalidHandlerException(); } return new HandlerInfo(Class.forName(className, true, cl), methodName); diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/LambdaEnvironment.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/LambdaEnvironment.java index b2d55204..be509ecb 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/LambdaEnvironment.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/LambdaEnvironment.java @@ -4,13 +4,14 @@ import com.amazonaws.services.lambda.runtime.api.client.util.EnvReader; +import static com.amazonaws.services.lambda.runtime.api.client.ReservedRuntimeEnvironmentVariables.*; import static java.lang.Integer.parseInt; public class LambdaEnvironment { public static final EnvReader ENV_READER = new EnvReader(); - public static final int MEMORY_LIMIT = parseInt(ENV_READER.getEnvOrDefault(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_FUNCTION_MEMORY_SIZE, "128")); - public static final String LOG_GROUP_NAME = ENV_READER.getEnv(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_LOG_GROUP_NAME); - public static final String LOG_STREAM_NAME = ENV_READER.getEnv(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_LOG_STREAM_NAME); - public static final String FUNCTION_NAME = ENV_READER.getEnv(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_FUNCTION_NAME); - public static final String FUNCTION_VERSION = ENV_READER.getEnv(ReservedRuntimeEnvironmentVariables.AWS_LAMBDA_FUNCTION_VERSION); + public static final int MEMORY_LIMIT = parseInt(ENV_READER.getEnvOrDefault(AWS_LAMBDA_FUNCTION_MEMORY_SIZE, "128")); + public static final String LOG_GROUP_NAME = ENV_READER.getEnv(AWS_LAMBDA_LOG_GROUP_NAME); + public static final String LOG_STREAM_NAME = ENV_READER.getEnv(AWS_LAMBDA_LOG_STREAM_NAME); + public static final String FUNCTION_NAME = ENV_READER.getEnv(AWS_LAMBDA_FUNCTION_NAME); + public static final String FUNCTION_VERSION = ENV_READER.getEnv(AWS_LAMBDA_FUNCTION_VERSION); } diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/PojoSerializerLoader.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/PojoSerializerLoader.java index a65f17c7..819f9872 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/PojoSerializerLoader.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/PojoSerializerLoader.java @@ -38,8 +38,8 @@ private static CustomPojoSerializer loadSerializer() if (serializers.hasNext()) { throw new TooManyServiceProvidersFoundException( - "Too many serializers provided inside the META-INF/services folder, only one is allowed" - ); + "Too many serializers provided inside the META-INF/services folder, only one is allowed" + ); } initialized = true; @@ -48,28 +48,28 @@ private static CustomPojoSerializer loadSerializer() public static PojoSerializer getCustomerSerializer(Type type) { if (!initialized) { - customPojoSerializer = loadSerializer(); + customPojoSerializer = loadSerializer(); } - + if (customPojoSerializer == null) { return null; } - + return new PojoSerializer() { @Override public Object fromJson(InputStream input) { return customPojoSerializer.fromJson(input, type); } - + @Override public Object fromJson(String input) { return customPojoSerializer.fromJson(input, type); } - + @Override public void toJson(Object value, OutputStream output) { customPojoSerializer.toJson(value, output, type); } - }; + }; } } diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ReservedRuntimeEnvironmentVariables.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ReservedRuntimeEnvironmentVariables.java index 8b54436c..7a47364a 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ReservedRuntimeEnvironmentVariables.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/ReservedRuntimeEnvironmentVariables.java @@ -19,10 +19,10 @@ * Lambda runtimes set several environment variables during initialization. * Most of the environment variables provide information about the function or runtime. * The keys for these environment variables are reserved and cannot be set in your function configuration. - * @see Using AWS Lambda Environment Variables * + * @see Using AWS Lambda Environment Variables + *

* NOTICE: This class is forked from io.micronaut.function.aws.runtime.ReservedRuntimeEnvironments found at https://github.com/micronaut-projects/micronaut-aws - * */ public interface ReservedRuntimeEnvironmentVariables { @@ -77,7 +77,6 @@ public interface ReservedRuntimeEnvironmentVariables { String AWS_SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY"; /** - * * The access keys obtained from the function's execution role. */ String AWS_SESSION_TOKEN = "AWS_SESSION_TOKEN"; diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/TooManyServiceProvidersFoundException.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/TooManyServiceProvidersFoundException.java index c4b94e37..bba40034 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/TooManyServiceProvidersFoundException.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/TooManyServiceProvidersFoundException.java @@ -1,20 +1,19 @@ /* Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. */ - + package com.amazonaws.services.lambda.runtime.api.client; - + public class TooManyServiceProvidersFoundException extends RuntimeException { public TooManyServiceProvidersFoundException() { - } - + public TooManyServiceProvidersFoundException(String errorMessage) { super(errorMessage); } - + public TooManyServiceProvidersFoundException(Throwable cause) { super(cause); } - + public TooManyServiceProvidersFoundException(String message, Throwable cause) { super(message, cause); } diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/UserFault.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/UserFault.java index 614e8066..bc95af57 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/UserFault.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/UserFault.java @@ -6,7 +6,7 @@ import java.io.StringWriter; public final class UserFault extends RuntimeException { - private static final long serialVersionUID = 0; + private static final long serialVersionUID = -479308856905162038L; public final String msg; public final String exception; @@ -66,8 +66,8 @@ public static String trace(Throwable t) { */ public static T filterStackTrace(T t) { StackTraceElement[] trace = t.getStackTrace(); - for(int i = 0; i < trace.length; i++) { - if(trace[i].getClassName().startsWith(packagePrefix)) { + for (int i = 0; i < trace.length; i++) { + if (trace[i].getClassName().startsWith(packagePrefix)) { StackTraceElement[] newTrace = new StackTraceElement[i]; System.arraycopy(trace, 0, newTrace, 0, i); t.setStackTrace(newTrace); @@ -77,12 +77,12 @@ public static T filterStackTrace(T t) { Throwable cause = t.getCause(); - if(cause != null) { + if (cause != null) { filterStackTrace(cause); } Throwable[] suppressedExceptions = t.getSuppressed(); - for(Throwable suppressed: suppressedExceptions) { + for (Throwable suppressed : suppressedExceptions) { filterStackTrace(suppressed); } @@ -108,7 +108,7 @@ static UserFault makeClassNotFoundUserFault(Throwable e, String className) { } public String reportableError() { - if(this.exception != null || this.trace != null) { + if (this.exception != null || this.trace != null) { return String.format("%s: %s\n%s\n", this.msg, this.exception == null ? "" : this.exception, diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/XRayErrorCause.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/XRayErrorCause.java index 5a05810e..73db5b94 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/XRayErrorCause.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/XRayErrorCause.java @@ -18,7 +18,7 @@ public class XRayErrorCause { public XRayErrorCause(Throwable throwable) { working_directory = System.getProperty("user.dir"); - exceptions = Collections.unmodifiableCollection(Collections.singletonList(new XRayException(throwable))); + exceptions = Collections.singletonList(new XRayException(throwable)); paths = Collections.unmodifiableCollection( Arrays.stream(throwable.getStackTrace()) .map(XRayErrorCause::determineFileName) diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaClientContext.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaClientContext.java index 8887dfb2..3b8976b7 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaClientContext.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaClientContext.java @@ -2,10 +2,10 @@ package com.amazonaws.services.lambda.runtime.api.client.api; -import java.util.Map; - -import com.amazonaws.services.lambda.runtime.ClientContext; import com.amazonaws.services.lambda.runtime.Client; +import com.amazonaws.services.lambda.runtime.ClientContext; + +import java.util.Map; public class LambdaClientContext implements ClientContext { diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaContext.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaContext.java index 689c9110..3d57ce4c 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaContext.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaContext.java @@ -22,16 +22,16 @@ public class LambdaContext implements Context { private final LambdaLogger logger; public LambdaContext( - int memoryLimit, - long deadlineTimeInMs, - String requestId, - String logGroupName, - String logStreamName, - String functionName, - CognitoIdentity identity, - String functionVersion, - String invokedFunctionArn, - ClientContext clientContext + int memoryLimit, + long deadlineTimeInMs, + String requestId, + String logGroupName, + String logStreamName, + String functionName, + CognitoIdentity identity, + String functionVersion, + String invokedFunctionArn, + ClientContext clientContext ) { this.memoryLimit = memoryLimit; this.deadlineTimeInMs = deadlineTimeInMs; diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/FramedTelemetryLogSink.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/FramedTelemetryLogSink.java index bb436217..e0ec836d 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/FramedTelemetryLogSink.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/FramedTelemetryLogSink.java @@ -13,16 +13,16 @@ * FramedTelemetryLogSink implements the logging contract between runtimes and the platform. It implements a simple * framing protocol so message boundaries can be determined. Each frame can be visualized as follows: * - *

+ * 
  * {@code
  * +----------------------+------------------------+---------------------+-----------------------+
  * | Frame Type - 4 bytes | Length (len) - 4 bytes | Timestamp - 8 bytes | Message - 'len' bytes |
  * +----------------------+------------------------+---------------------+-----------------------+
  * }
  * 
- * + *

* The first 4 bytes indicate the type of the frame - log frames have a type defined as the hex value 0xa55a0001. The - * second 4 bytes should indicate the message's length. The next 8 bytes contain UNIX timestamp of the message in + * second 4 bytes should indicate the message's length. The next 8 bytes contain UNIX timestamp of the message in * microsecond accuracy. The next 'len' bytes contain the message. The byte order is big-endian. */ public class FramedTelemetryLogSink implements LogSink { diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/StdOutLogSink.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/StdOutLogSink.java index 5487c5dd..f36c4130 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/StdOutLogSink.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/logging/StdOutLogSink.java @@ -15,5 +15,6 @@ public void log(byte[] message) { } @Override - public void close() {} + public void close() { + } } diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/InvocationRequest.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/InvocationRequest.java index c8df04af..89707d49 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/InvocationRequest.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/InvocationRequest.java @@ -5,7 +5,7 @@ /** * An invocation request represents the response of the runtime API's next invocation API. - * + *

* Copyright (c) 2019 Amazon. All rights reserved. */ public class InvocationRequest { diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/LambdaRuntimeClient.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/LambdaRuntimeClient.java index b0d44232..e01d96e1 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/LambdaRuntimeClient.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/LambdaRuntimeClient.java @@ -16,9 +16,9 @@ /** * LambdaRuntimeClient is a client of the AWS Lambda Runtime HTTP API for custom runtimes. - * + *

* API definition can be found at https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html - * + *

* Copyright (c) 2019 Amazon. All rights reserved. */ public class LambdaRuntimeClient { @@ -77,10 +77,10 @@ private void post(String endpoint, byte[] errorResponse, String errorType, Strin HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", DEFAULT_CONTENT_TYPE); - if(errorType != null && !errorType.isEmpty()) { + if (errorType != null && !errorType.isEmpty()) { conn.setRequestProperty(ERROR_TYPE_HEADER, errorType); } - if(errorCause != null && errorCause.getBytes().length < XRAY_ERROR_CAUSE_MAX_HEADER_SIZE) { + if (errorCause != null && errorCause.getBytes().length < XRAY_ERROR_CAUSE_MAX_HEADER_SIZE) { conn.setRequestProperty(XRAY_ERROR_CAUSE_HEADER, errorCause); } conn.setFixedLengthStreamingMode(errorResponse.length); diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/NativeClient.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/NativeClient.java index a9592e1a..dd9e35fd 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/NativeClient.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/runtimeapi/NativeClient.java @@ -22,31 +22,30 @@ class NativeClient { "aws-lambda-runtime-interface-client.musl.so", }; private static final Throwable[] exceptions = new Throwable[libsToTry.length]; + static { - boolean loaded = false; - for (int i = 0; !loaded && i < libsToTry.length; ++i) { - try (InputStream lib = NativeClient.class.getResourceAsStream( - Paths.get(architecturePathSuffix, libsToTry[i]).toString())) { - Files.copy(lib, Paths.get(nativeLibPath), StandardCopyOption.REPLACE_EXISTING); - System.load(nativeLibPath); - loaded = true; - } catch (UnsatisfiedLinkError e) { - exceptions[i] = e; - } catch (Exception e) { - exceptions[i] = e; - } + boolean loaded = false; + for (int i = 0; !loaded && i < libsToTry.length; ++i) { + try (InputStream lib = NativeClient.class.getResourceAsStream( + Paths.get(architecturePathSuffix, libsToTry[i]).toString())) { + Files.copy(lib, Paths.get(nativeLibPath), StandardCopyOption.REPLACE_EXISTING); + System.load(nativeLibPath); + loaded = true; + } catch (UnsatisfiedLinkError | Exception e) { + exceptions[i] = e; } - if (!loaded) { - for (int i = 0; i < libsToTry.length; ++i) { - System.err.printf("Failed to load the native runtime interface client library %s. Exception: %s\n", libsToTry[i], exceptions[i].getMessage()); - } - System.exit(-1); + } + if (!loaded) { + for (int i = 0; i < libsToTry.length; ++i) { + System.err.printf("Failed to load the native runtime interface client library %s. Exception: %s\n", libsToTry[i], exceptions[i].getMessage()); } - String userAgent = String.format( - "aws-lambda-java/%s-%s" , - System.getProperty("java.vendor.version"), - NativeClient.class.getPackage().getImplementationVersion()); - initializeClient(userAgent.getBytes()); + System.exit(-1); + } + String userAgent = String.format( + "aws-lambda-java/%s-%s", + System.getProperty("java.vendor.version"), + NativeClient.class.getPackage().getImplementationVersion()); + initializeClient(userAgent.getBytes()); } /** diff --git a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/util/LambdaOutputStream.java b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/util/LambdaOutputStream.java index 83ffcb9a..556859a2 100644 --- a/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/util/LambdaOutputStream.java +++ b/aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/util/LambdaOutputStream.java @@ -14,7 +14,7 @@ public LambdaOutputStream(OutputStream inner) { @Override public void write(int b) throws IOException { - write(new byte[] {(byte)b}); + write(new byte[]{(byte) b}); } @Override @@ -25,6 +25,6 @@ public void write(byte[] bytes) throws IOException { @Override public void write(byte[] bytes, int offset, int length) throws IOException { - inner.write(bytes, offset, length); + inner.write(bytes, offset, length); } }