Skip to content

Confusing error messages when @BetaFeature and @ExperimentalFeature both used on the same Class. #200

@jonn-smith

Description

@jonn-smith

I just discovered that if you try to use @BetaFeature and @ExperimentalFeature together on the same class, you get a very obtuse error:

> Task :gatkDoc
14:00:47.591 WARN  DefaultDocWorkUnitHandler - No group summary declared for: org.broadinstitute.hellbender.metrics.analysis.BaseDistributionByCycleMetrics
14:00:47.614 WARN  DefaultDocWorkUnitHandler - No group summary declared for: org.broadinstitute.hellbender.metrics.analysis.AlleleFrequencyQCMetric
14:00:47.617 WARN  DefaultDocWorkUnitHandler - No group summary declared for: org.broadinstitute.hellbender.metrics.QualityYieldMetrics
14:00:47.635 WARN  DefaultDocWorkUnitHandler - No group summary declared for: org.broadinstitute.hellbender.metrics.InsertSizeMetrics
Note: Skipping disabled documentation for feature: org.broadinstitute.hellbender.tools.walkers.PairWalker
14:00:49.317 INFO  Reflections - Reflections took 81 ms to scan 1 urls, producing 9 keys and 31 values 
14:00:49.390 INFO  Reflections - Reflections took 61 ms to scan 1 urls, producing 7 keys and 42 values 
error: fatal error encountered: java.lang.NullPointerException: Cannot invoke "java.lang.Class.getSimpleName()" because "this.clazz" is null
error: Please file a bug against the javadoc tool via the Java bug reporting page
  (https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com)
  for duplicates. Include error messages and the following diagnostic in your report. Thank you.
java.lang.NullPointerException: Cannot invoke "java.lang.Class.getSimpleName()" because "this.clazz" is null
        at org.broadinstitute.barclay.help.DocWorkUnit.checkForMultipleMutexAnnotations(DocWorkUnit.java:92)
        at org.broadinstitute.barclay.help.DocWorkUnit.<init>(DocWorkUnit.java:69)
        at org.broadinstitute.hellbender.utils.help.GATKDocWorkUnit.<init>(GATKDocWorkUnit.java:25)
        at org.broadinstitute.hellbender.utils.help.GATKHelpDoclet.createWorkUnit(GATKHelpDoclet.java:50)
        at org.broadinstitute.barclay.help.scanners.DocumentedFeatureScanner.scan(DocumentedFeatureScanner.java:56)
        at org.broadinstitute.barclay.help.scanners.DocumentedFeatureScanner.scan(DocumentedFeatureScanner.java:22)
        at java.compiler@17.0.8/javax.lang.model.util.ElementScanner6.scan(ElementScanner6.java:140)
        at org.broadinstitute.barclay.help.scanners.JavaLanguageModelScanners.getWorkUnits(JavaLanguageModelScanners.java:44)
        at org.broadinstitute.barclay.help.HelpDoclet.processDocs(HelpDoclet.java:287)
        at org.broadinstitute.barclay.help.HelpDoclet.run(HelpDoclet.java:113)
        at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:556)
        at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:393)
        at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:342)
        at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63)
        at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52)
2 errors

It would be great to update Barclay to check for the mutually exclusive annotations and fail more gracefully.

@cmnbroad - what do you think?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions