As below, if I run “awr create” command, and there are not (at least) two snapshots existing in the database, an ugly exception is raised. I get that it should fail, but I think a more elegant message could be shown.
SQL> awr list snap
SQL> awr create
2025-05-12 16:33:38.381 SEVERE oracle.dbtools.raptor.newscriptrunner.ScriptExecutor run java.base/java.util.Objects.requireNonNull(Objects.java:222)
java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:222)
at java.base/java.util.ImmutableCollections$MapN.<init>(ImmutableCollections.java:827)
at java.base/java.util.Map.of(Map.java:1327)
at oracle.dbtools.extension.awrash.core.AWREngine.createReport(AWREngine.java:93)
at oracle.dbtools.extension.awrash.command.CreateReportAction.accept(CreateReportAction.java:52)
at oracle.dbtools.extension.awrash.command.CreateReportAction.accept(CreateReportAction.java:22)
at oracle.dbtools.extension.awrash.command.AWRCommand.handleEvent(AWRCommand.java:82)
at oracle.dbtools.raptor.newscriptrunner.util.command.ParsedCommandListener.handleEvent(ParsedCommandListener.java:62)
at oracle.dbtools.raptor.newscriptrunner.CommandRegistry.fireListeners(CommandRegistry.java:448)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.lambda$run$0(ScriptRunner.java:241)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunnerContext.runWithStoredContext(ScriptRunnerContext.java:835)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.run(ScriptRunner.java:124)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:364)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:245)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.processLine(SqlCli.java:1413)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.runSqlcl(SqlCli.java:1637)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.main(SqlCli.java:403)
SQL> awr create snap
Snapshot taken, ID: 1
SQL> awr create
2025-05-12 16:37:13.522 SEVERE oracle.dbtools.raptor.newscriptrunner.ScriptExecutor run java.base/java.util.Objects.requireNonNull(Objects.java:222)
java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:222)
at java.base/java.util.ImmutableCollections$MapN.<init>(ImmutableCollections.java:827)
at java.base/java.util.Map.of(Map.java:1327)
at oracle.dbtools.extension.awrash.core.AWREngine.createReport(AWREngine.java:93)
at oracle.dbtools.extension.awrash.command.CreateReportAction.accept(CreateReportAction.java:52)
at oracle.dbtools.extension.awrash.command.CreateReportAction.accept(CreateReportAction.java:22)
at oracle.dbtools.extension.awrash.command.AWRCommand.handleEvent(AWRCommand.java:82)
at oracle.dbtools.raptor.newscriptrunner.util.command.ParsedCommandListener.handleEvent(ParsedCommandListener.java:62)
at oracle.dbtools.raptor.newscriptrunner.CommandRegistry.fireListeners(CommandRegistry.java:448)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.lambda$run$0(ScriptRunner.java:241)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunnerContext.runWithStoredContext(ScriptRunnerContext.java:835)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.run(ScriptRunner.java:124)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:364)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:245)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.processLine(SqlCli.java:1413)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.runSqlcl(SqlCli.java:1637)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.main(SqlCli.java:403)
SQL> awr create snap
Snapshot taken, ID: 2
SQL> awr create
Report written to: awr_ORCLPDB1_2025-05-08-09.51.10_2025-05-12-15.37.21.html
SQL>