paul-bennett / juggle

A declarative search tool for Java APIs
Apache License 2.0
5 stars 0 forks source link

Exception on `juggle private` #99

Closed paul-bennett closed 1 year ago

paul-bennett commented 1 year ago

This simple invocation throws an exception. It shouldn't.

$ juggle private
...
private static java.util.Optional<T> java.util.Locale.getDefaultExtensions(String)
private static java.util.Optional<T> java.util.spi.ToolProvider.lambda$findFirst$1(ClassLoader,String)
java.lang.NullPointerException: Cannot invoke "String.substring(int)" because "canonicalName" is null
    at com.angellane.juggle.sink.TextOutput.decodeClass(TextOutput.java:173)
    at com.angellane.juggle.sink.TextOutput.decodeType(TextOutput.java:115)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1006)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at com.angellane.juggle.sink.TextOutput.decodeParams(TextOutput.java:194)
    at com.angellane.juggle.sink.TextOutput.decode(TextOutput.java:59)
    at com.angellane.juggle.sink.TextOutput.accept(TextOutput.java:34)
    at com.angellane.juggle.sink.TextOutput.accept(TextOutput.java:17)
    at com.angellane.juggle.Juggler.lambda$juggleMembers$11(Juggler.java:210)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
    at java.base/java.util.stream.DistinctOps$1$2.end(DistinctOps.java:168)
    at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
    at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
    at com.angellane.juggle.Juggler.juggleMembers(Juggler.java:210)
    at com.angellane.juggle.Juggler.doJuggle(Juggler.java:217)
    at com.angellane.juggle.Main.run(Main.java:273)
    at picocli.CommandLine.executeUserObject(CommandLine.java:2026)
    at picocli.CommandLine.access$1500(CommandLine.java:148)
    at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
    at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
    at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
    at picocli.CommandLine.execute(CommandLine.java:2170)
    at com.angellane.juggle.Main.main(Main.java:281)
$