From 7e3e9dba11beddb5269c942cfa7a10acbd4b5aec Mon Sep 17 00:00:00 2001 From: Akihito Nakano Date: Sat, 8 Dec 2018 23:31:57 +0900 Subject: [PATCH] Replace Class.newInstance() with Constructor.newInstance() (#1635) --- .../java/org/openapitools/codegen/CodegenConfigLoader.java | 2 +- .../java/org/openapitools/codegen/CodegenModelFactory.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfigLoader.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfigLoader.java index 29c0898e568..81c547a5f07 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfigLoader.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfigLoader.java @@ -45,7 +45,7 @@ public class CodegenConfigLoader { // else try to load directly try { - return (CodegenConfig) Class.forName(name).newInstance(); + return (CodegenConfig) Class.forName(name).getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new GeneratorNotFoundException("Can't load config class with name '".concat(name) + "'\nAvailable:\n" + availableConfigs.toString(), e); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java index 4f781ed8b7c..bd7c72d874d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModelFactory.java @@ -17,6 +17,7 @@ package org.openapitools.codegen; +import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; @@ -35,7 +36,7 @@ public final class CodegenModelFactory { throw new IllegalArgumentException(implementation.getSimpleName() + " doesn't extend " + type.getDefaultImplementation().getSimpleName()); } try { - implementation.newInstance(); + implementation.getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new IllegalArgumentException(e); } @@ -46,8 +47,8 @@ public final class CodegenModelFactory { public static T newInstance(CodegenModelType type) { Class classType = typeMapping.get(type); try { - return (T) (classType != null ? classType : type.getDefaultImplementation()).newInstance(); - } catch (IllegalAccessException | InstantiationException e) { + return (T) (classType != null ? classType : type.getDefaultImplementation()).getDeclaredConstructor().newInstance(); + } catch (IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e) { throw new RuntimeException(e); } }