Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions