From 1e83e846f1e019cb6c5cbec1537b4478bfb6c57b Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Fri, 6 Sep 2024 09:26:20 +0200 Subject: [PATCH] Make sure private methods cannot be annotated --- .../src/main/java/dev/restate/sdk/gen/ElementConverter.java | 3 +++ .../kotlin/dev/restate/sdk/kotlin/gen/KElementConverter.kt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/sdk-api-gen/src/main/java/dev/restate/sdk/gen/ElementConverter.java b/sdk-api-gen/src/main/java/dev/restate/sdk/gen/ElementConverter.java index 270ed43c..fbd0a582 100644 --- a/sdk-api-gen/src/main/java/dev/restate/sdk/gen/ElementConverter.java +++ b/sdk-api-gen/src/main/java/dev/restate/sdk/gen/ElementConverter.java @@ -162,6 +162,9 @@ private Handler fromExecutableElement(ServiceType serviceType, ExecutableElement messager.printMessage( Diagnostic.Kind.ERROR, "You cannot annotate a static init as Restate method"); } + if (element.getModifiers().contains(Modifier.PRIVATE)) { + messager.printMessage(Diagnostic.Kind.ERROR, "The annotated method is private"); + } boolean isAnnotatedWithShared = element.getAnnotation(Shared.class) != null; boolean isAnnotatedWithExclusive = element.getAnnotation(Exclusive.class) != null; diff --git a/sdk-api-kotlin-gen/src/main/kotlin/dev/restate/sdk/kotlin/gen/KElementConverter.kt b/sdk-api-kotlin-gen/src/main/kotlin/dev/restate/sdk/kotlin/gen/KElementConverter.kt index a0c76391..71e76eef 100644 --- a/sdk-api-kotlin-gen/src/main/kotlin/dev/restate/sdk/kotlin/gen/KElementConverter.kt +++ b/sdk-api-kotlin-gen/src/main/kotlin/dev/restate/sdk/kotlin/gen/KElementConverter.kt @@ -135,6 +135,9 @@ class KElementConverter( if (function.functionKind != FunctionKind.MEMBER) { logger.error("Only member function declarations are supported as Restate handlers") } + if (function.getVisibility() == Visibility.PRIVATE) { + logger.error("The annotated function is private", function) + } val isAnnotatedWithShared = function.isAnnotationPresent(dev.restate.sdk.annotation.Shared::class)