diff --git a/smithy-build/src/main/java/software/amazon/smithy/build/model/ConfigLoader.java b/smithy-build/src/main/java/software/amazon/smithy/build/model/ConfigLoader.java index 5212951daf6..e40e0091295 100644 --- a/smithy-build/src/main/java/software/amazon/smithy/build/model/ConfigLoader.java +++ b/smithy-build/src/main/java/software/amazon/smithy/build/model/ConfigLoader.java @@ -16,6 +16,7 @@ package software.amazon.smithy.build.model; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.List; import java.util.Map; import java.util.Optional; @@ -44,7 +45,11 @@ private ConfigLoader() {} static SmithyBuildConfig load(Path path) { try { String content = IoUtils.readUtf8File(path); - return load(path.getParent(), loadWithJson(path, content).expectObjectNode()); + Path baseImportPath = path.getParent(); + if (baseImportPath == null) { + baseImportPath = Paths.get("."); + } + return load(baseImportPath, loadWithJson(path, content).expectObjectNode()); } catch (ModelSyntaxException e) { throw new SmithyBuildException(e); } diff --git a/smithy-cli/src/main/java/software/amazon/smithy/cli/Cli.java b/smithy-cli/src/main/java/software/amazon/smithy/cli/Cli.java index ee66abc4611..969003ccf50 100644 --- a/smithy-cli/src/main/java/software/amazon/smithy/cli/Cli.java +++ b/smithy-cli/src/main/java/software/amazon/smithy/cli/Cli.java @@ -277,6 +277,12 @@ private void printException(String[] args, Throwable throwable) { setUseAnsiColors(false); } + if (throwable instanceof NullPointerException) { + Colors.BOLD_RED.out("A null pointer exception occurred while running the Smithy CLI. The --stacktrace " + + "argument can be used to get more information. Please open an issue with the Smithy team " + + "on GitHub so this can be investigated: https://github.com/awslabs/smithy/issues"); + } + Colors.BOLD_RED.out(throwable.getMessage()); if (hasArgument(args, STACKTRACE)) { StringWriter sw = new StringWriter();