From 508de0445548c7b095357a980cf42fb3703c7e73 Mon Sep 17 00:00:00 2001 From: ia3andy Date: Mon, 12 Aug 2019 10:50:32 +0200 Subject: [PATCH] Fix NPE in BasicRestProjectGenerator when a resource is missing Throw a dedicated IOException instead. Closes #3331 --- .../generators/rest/BasicRestProjectGenerator.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/devtools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java b/devtools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java index bd9c600c8f77d6..c1cedb1196c02f 100644 --- a/devtools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java +++ b/devtools/common/src/main/java/io/quarkus/generators/rest/BasicRestProjectGenerator.java @@ -2,10 +2,7 @@ import static java.lang.String.format; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStreamReader; +import java.io.*; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -111,8 +108,12 @@ private void generate(final String templateName, final Map conte throws IOException { if (!writer.exists(outputFilePath)) { String path = templateName.startsWith("/") ? templateName : "/" + templateName; + InputStream resourceStream = getClass().getResourceAsStream(path); + if (resourceStream == null) { + throw new IOException("Template resource is missing: " + path); + } try (final BufferedReader stream = new BufferedReader( - new InputStreamReader(getClass().getResourceAsStream(path), StandardCharsets.UTF_8))) { + new InputStreamReader(resourceStream, StandardCharsets.UTF_8))) { String template = stream.lines().collect(Collectors.joining("\n")); for (Entry e : context.entrySet()) { if (e.getValue() != null) { // Exclude null values (classname and path can be null)