diff --git a/src/main/java/com/mediamanager/service/delegate/DelegateActionManager.java b/src/main/java/com/mediamanager/service/delegate/DelegateActionManager.java index fa47150..69d36d6 100644 --- a/src/main/java/com/mediamanager/service/delegate/DelegateActionManager.java +++ b/src/main/java/com/mediamanager/service/delegate/DelegateActionManager.java @@ -66,14 +66,17 @@ public class DelegateActionManager { @SuppressWarnings("unchecked") private ActionHandler instantiateHandler(Class clazz) throws Exception { + if(!ActionHandler.class.isAssignableFrom(clazz)){ + throw new IllegalArgumentException( + clazz.getName() + " is annotated with @Action but does not implement ActionHandler"); + + } logger.debug("Attempting to instantiate handler: {}", clazz.getSimpleName()); Constructor[] constructors = clazz.getDeclaredConstructors(); - Constructor[] constructors = clazz.getDeclaredConstructors(); - // Sort constructors by parameter count (descending) to prefer DI constructors java.util.Arrays.sort(constructors, (c1, c2) -> Integer.compare(c2.getParameterCount(), c1.getParameterCount())); diff --git a/src/main/java/com/mediamanager/service/delegate/handler/genre/GetGenreByIdHandler.java b/src/main/java/com/mediamanager/service/delegate/handler/genre/GetGenreByIdHandler.java index 9dfb2db..4dc4c71 100644 --- a/src/main/java/com/mediamanager/service/delegate/handler/genre/GetGenreByIdHandler.java +++ b/src/main/java/com/mediamanager/service/delegate/handler/genre/GetGenreByIdHandler.java @@ -14,7 +14,7 @@ import org.apache.logging.log4j.Logger; import java.util.Optional; -@Action( "genre.getById") +@Action("genre.getById") public class GetGenreByIdHandler implements ActionHandler { private static final Logger logger = LogManager.getLogger(GetGenreByIdHandler.class);