av9ash/GitBugs huggingface dataset:
Bug: MetricsSystem doesn't start the sink adapters on restart
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 22/Jun/20 14:06

In HBase we use dynamic metrics and when a metric is removed, we have to refresh the JMX beans, since there is no API from Java to do it, a hack like stopping the metrics system and restarting it was used (Read the comment on the class [https://github.com/mmpataki/hbase/blob/master/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/impl/JmxCacheBuster.java])

 

It calls the below APIs in the same order

     MetricsSystem.stop

     MetricsSystem.start

 

MetricsSystem.stop stops all the SinkAdapters, *but doesn't remove them from the sink list* (allSinks is the variable). When the metrics system is started again, *it is assumed that the SinkAdapters are restarted, but they are not* due to the check done in the beginning of the function register.
Bug: Failed to load XInclude files with relative path.
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 24/Jun/20 11:08
Affects Version/s: 3.2.1

When we create a configuration file, which load a external XML file with relative path, and try to load it via calling `Configuration.addResource` with `Path(URI)`, we got an error, which failed to load a external XML, after https://issues.apache.org/jira/browse/HADOOP-14216 is merged.
{noformat}
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Fetch fail on include for 'mountTable.xml' with no fallback while loading 'file:/opt/hadoop/etc/hadoop/core-site.xml'
	at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3021)
	at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2973)
	at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2848)
	at org.apache.hadoop.conf.Configuration.iterator(Configuration.java:2896)
	at com.company.test.Main.main(Main.java:29)
Caused by: java.io.IOException: Fetch fail on include for 'mountTable.xml' with no fallback while loading 'file:/opt/hadoop/etc/hadoop/core-site.xml'
	at org.apache.hadoop.conf.Configuration$Parser.handleEndElement(Configuration.java:3271)
	at org.apache.hadoop.conf.Configuration$Parser.parseNext(Configuration.java:3331)
	at org.apache.hadoop.conf.Configuration$Parser.parse(Configuration.java:3114)
	at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3007)
	... 4 more
{noformat}
The cause is that the URI is passed as string to java.io.File constructor and File does not support the file URI, so my suggestion is trying to convert from string to URI at first.
Bug: S3A to support additional token issuers
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 20/May/20 11:21

In {{org.apache.hadoop.fs.s3a.auth.delegation.AbstractDelegationTokenBinding}} the {{createDelegationToken}} should return a list of tokens.
With this functionality, the {{AbstractDelegationTokenBinding}} can get two different tokens at the same time.
{{AbstractDelegationTokenBinding.TokenSecretManager}} should be extended to retrieve secrets and lookup delegation tokens (use the public API for secretmanager in hadoop)
Bug: Intermittent failing of ITestAbfsStreamStatistics in ABFS
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 28/Apr/20 11:07
Affects Version/s: 3.3.0

There are intermittent failures of a test inside ITestAbfsStreamStatistics in ABFS.
Did consecutive runs of the test and failure seemed random. Stack Trace in the comments.

Propose:
- Change the assertion of the test for it to be passed, Since the production code seems fine.
Bug: ABFS: Delegation SAS Generator Updates
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 17/Jun/20 22:55
Affects Version/s: 3.2.1

# The authentication version in the service has been updated from Dec19 to Feb20, so need to update the client.
 # Add support and test cases for getXattr and setXAttr.
 # Update DelegationSASGenerator and related to use Duration instead of int for time periods.
 # Cleanup DelegationSASGenerator switch/case statement that maps operations to permissions.
 # Cleanup SASGenerator classes to use String.equals instead of ==.
Bug: Improve RawFileSystem Performance
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 29/Apr/20 12:10
Affects Version/s: 3.3.0

Improving RawFileSystem performance.

Changes:
 * RawLocalFileSystem could localize the default block size to avoid sync bottleneck with a Configuration object.
[https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java#L666]
 * Exists() override method for optimization.
Bug: Fix broken links in AWS documentation
Status: Open | Priority: Minor | Resolution: 
Created: 02/Jun/20 21:20

Broken links are found in the following page:

[hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/index.md|https://github.com/apache/hadoop/compare/trunk...piotte13:trunk#diff-3043a79259e7448fccbf133c3612b700]
Bug: add hadoop-azure ITest to fail if all abfs or wasb tests are skipped
Status: Open | Priority: Minor | Resolution: 
Created: 21/May/20 16:25
Affects Version/s: 3.2.1

Currently the hadoop-azure 'mvn verify' test run will complete if no credentials are provided -the wasb tests skipped on the assumption there is an abfs test setup; the abfs tests assume the run is for wasb

we need a test which fails when both credential sets are missing.
Bug: `Configuration` javadoc describes supporting environment variables, but the feature is not available
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 15/May/20 19:51
Affects Version/s: 2.10.0

In Hadoop 2.10.0, the javadoc on the `Configuration` class describes the ability to read values from environment variables. However, this feature isn't implemented until HADOOP-9642, which shipped in 3.0.0.
Bug: Fix invalid metastore configuration in S3GuardTool tests
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 02/May/20 03:33
Affects Version/s: 3.3.0

The WARN message shown in S3GuardTool tests implies mismatch between property name and the value.
{noformat}
2020-05-02 11:57:44,266 [setup] WARN  conf.Configuration (Configuration.java:getBoolean(1694)) - Invalid value for boolean: org.apache.hadoop.fs.s3a.s3guard.NullMetadataStore, choose default value: false for fs.s3a.metadatastore.authoritative
{noformat}
Bug: HADOOP-16953. tune s3guard disabled warnings
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 02/Apr/20 09:38
Affects Version/s: 3.3.0

config option org.apache.hadoop.fs.s3a.s3guard.disabled.warn.level should be  fs.s3a.s3guard.disabled.warn.level

need to fix that and add the existing one as deprecated
Bug: Add capability in hadoop-client to automatically login from a client/service keytab
Status: Open | Priority: Minor | Resolution: 
Created: 22/Apr/20 01:16
Affects Version/s: 3.2.1

With existing Hadoop client implementation, client applications for services that are using kerberized clusters, need to handle Keytab based login in their code, before doing HDFS or M/R API calls.

To avoid that, we are proposing adding Keytab based auto login to hadoop client library with configurable and default paths for Keytabs. 
This functionality helps new service owners as well as those transitioning from non-kerberized cluster to kerberized ones.

Auto login, should avoid extra login attempts in case a valid TGT is already available.
Bug: TestFileContextResolveAfs#testFileContextResolveAfs creates dangling link and fails for subsequent runs
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 11/Apr/20 22:22
Affects Version/s: 3.2.1

In the test testFileContextResolveAfs, the symlink TestFileContextResolveAfs2 (linked to TestFileContextResolveAfs1) cannot be deleted when the test finishes.

This is because TestFileContextResolveAfs1 was always deleted before TestFileContextResolveAfs2 when they were both passed into FileSystem#deleteOnExit. This caused TestFileContextResolveAfs2 to become a dangling link, which FileSystem in Hadoop currently cannot delete. (This is because Files#exists will return false for dangling links.)

As a result, the test `testFileContextResolveAfs` only passed for the first run. And for later runs of this test, it will fail by throwing the following exception: 
{code:java}
fs.FileUtil (FileUtil.java:symLink(821)) - Command 'ln -s mypath/TestFileContextResolveAfs1 mypath/TestFileContextResolveAfs2' failed 1 with: ln: mypath/TestFileContextResolveAfs2: File exists

java.io.IOException: Error 1 creating symlink file:mypath/TestFileContextResolveAfs2 to mypath/TestFileContextResolveAfs1
{code}
Bug: S3Guard auth mode should be set to false by default in integration tests.
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 13/Apr/20 11:53
Affects Version/s: 3.2.0

As per the doc [https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/testing.md#testing-s3a-with-s3guard-enabled]

, it says if s3Guard profile is enabled all tests runs in "non-authoritative" mode. But as per the code [https://github.com/apache/hadoop/blob/8d49229c3764a205f21750225005a2c9a8124ab9/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/S3ATestUtils.java#L485]

the default value is set to true.  So either we fix the doc or code.
Bug: TODO comments exist in trunk while the related issues are already fixed.
Status: Resolved | Priority: Trivial | Resolution: Fixed
Created: 18/May/20 08:23
Affects Version/s: 2.10.1

In a research project, we analyzed the source code of Hadoop looking for comments with on-hold SATDs (self-admitted technical debt) that could be fixed already. An on-hold SATD is a TODO/FIXME comment blocked by an issue. If this blocking issue is already resolved, the related todo can be implemented (or sometimes it is already implemented, but the comment is left in the code causing confusions). As we found a few instances of these in Hadoop, we decided to collect them in a ticket, so they are documented and can be addressed sooner or later.

A list of code comments that mention already closed issues.
 * A code comment suggests making the setJobConf method deprecated along with a mapred package HADOOP-1230. HADOOP-1230 has been closed a long time ago, but the method is still not annotated as deprecated.
{code:java}
 /**
   * This code is to support backward compatibility and break the compile  
   * time dependency of core on mapred.
   * This should be made deprecated along with the mapred package HADOOP-1230. 
   * Should be removed when mapred package is removed.
   */ {code}
Comment location: [https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ReflectionUtils.java#L88]

 * A comment mentions that the return type of the getDefaultFileSystem method should be changed to AFS when HADOOP-6223 is completed.
 Indeed, this change was done in the related commit of HADOOP-6223: ([https://github.com/apache/hadoop/commit/3f371a0a644181b204111ee4e12c995fc7b5e5f5#diff-cd86a2b9ce3efd2232c2ace0e9084508L395)]
 Thus, the comment could be removed.
{code:java}
@InterfaceStability.Unstable /* return type will change to AFS once
HADOOP-6223 is completed */
{code}
Comment location: [https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileContext.java#L512]
Bug: WordMedian example has a logical error
Status: Open | Priority: Trivial | Resolution: 
Created: 12/May/20 07:40
Affects Version/s: 3.2.1

This is the WordMedian example in `Hadoop-mapreduce-examples-3.2.1.jar`. The 'else if' statement is inaccessible because it is a subset of the 'if' statement.

!image-2020-05-12-15-35-51-583.png!
Bug: update  org.apache.httpcomponents:httpclient to 4.5.13 and httpcore to 4.4.13
Status: Resolved | Priority: Blocker | Resolution: Fixed
Created: 25/Aug/20 01:12
Affects Version/s: 3.3.0

Update the dependencies
 * org.apache.httpcomponents:httpclient from 4.5.6 to 4.5.12
 * org.apache.httpcomponents:httpcore from 4.4.10 to 4.4.13
Bug: whitespace not allowed in paths when saving files to s3a via committer
Status: Resolved | Priority: Blocker | Resolution: Fixed
Created: 03/Jul/20 14:08
Affects Version/s: 3.2.0

When saving results through spark dataframe on latest 3.0.1-snapshot compiled against hadoop-3.2 with the following specs
 --conf spark.hadoop.mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory 
 --conf spark.sql.parquet.output.committer.class=org.apache.spark.internal.io.cloud.BindingParquetOutputCommitter 
 --conf spark.sql.sources.commitProtocolClass=org.apache.spark.internal.io.cloud.PathOutputCommitProtocol 
 --conf spark.hadoop.fs.s3a.committer.name=partitioned 
 --conf spark.hadoop.fs.s3a.committer.staging.conflict-mode=replace 
 we are unable to save the file with whitespace character in the path. It works fine without.

I was looking into the recent commits with regards to qualifying the path, but couldn't find anything obvious. Is this a known bug?

When saving results through spark dataframe on latest 3.0.1-snapshot compiled against hadoop-3.2 with the following specs
--conf spark.hadoop.mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory  
--conf spark.sql.parquet.output.committer.class=org.apache.spark.internal.io.cloud.BindingParquetOutputCommitter 
--conf spark.sql.sources.commitProtocolClass=org.apache.spark.internal.io.cloud.PathOutputCommitProtocol 
--conf spark.hadoop.fs.s3a.committer.name=partitioned 
--conf spark.hadoop.fs.s3a.committer.staging.conflict-mode=replace 
we are unable to save the file with whitespace character in the path. It works fine without.

I was looking into the recent commits with regards to qualifying the path, but couldn't find anything obvious. Is this a known bug?

!image-2020-07-03-16-08-52-340.png!
Bug: HADOOP-17244. S3A directory delete tombstones dir markers prematurely.
Status: Resolved | Priority: Blocker | Resolution: Fixed
Created: 04/Sep/20 18:07
Affects Version/s: 3.3.1

Test failure: {{ITestS3AFileContextMainOperations#testRenameDirectoryAsNonExistentDirectory}}

This is repeatable on -Dauth runs (we haven't been running them, have we?)

Either its from the recent dir marker changes (initial hypothesis) or its been lurking a while and not been picked up.
Bug: Replace Guava Optional with Java8+ Optional
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 01/Jul/20 14:38
Affects Version/s: 3.3.1

{code:java}
Targets
    Occurrences of 'com.google.common.base.Optional' in project with mask '*.java'
Found Occurrences  (3 usages found)
    org.apache.hadoop.yarn.server.nodemanager  (2 usages found)
        DefaultContainerExecutor.java  (1 usage found)
            71 import com.google.common.base.Optional;
        LinuxContainerExecutor.java  (1 usage found)
            22 import com.google.common.base.Optional;
    org.apache.hadoop.yarn.server.resourcemanager.recovery  (1 usage found)
        TestZKRMStateStorePerf.java  (1 usage found)
            21 import com.google.common.base.Optional;

{code}
Bug: Upgrade to jQuery 3.5.1 in hadoop-yarn-common
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 26/Sep/20 01:08
Affects Version/s: 3.3.1

Found via HDFS-15598. Looks like HADOOP-17283 didn't update rat exclusion rule.

{noformat}
Lines that start with ????? in the ASF License  report indicate files that do not have an Apache license header:
 !????? /home/jenkins/jenkins-home/workspace/hadoop-multibranch_PR-2339/src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/webapps/static/jquery/jquery-3.4.1.min.js
{noformat}
Bug: Add RootedOzFS AbstractFileSystem to core-default.xml
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 04/Sep/20 18:22
Affects Version/s: 3.4.0

When "ofs" is default, when running mapreduce job, YarnClient fails with below exception.
{code:java}
Caused by: org.apache.hadoop.fs.UnsupportedFileSystemException: fs.AbstractFileSystem.ofs.impl=null: No AbstractFileSystem configured for scheme: ofs
 at org.apache.hadoop.fs.AbstractFileSystem.createFileSystem(AbstractFileSystem.java:176)
 at org.apache.hadoop.fs.AbstractFileSystem.get(AbstractFileSystem.java:265)
 at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:341)
 at org.apache.hadoop.fs.FileContext$2.run(FileContext.java:338)
 at java.security.AccessController.doPrivileged(Native Method){code}

Observed that o3fs is also not defined, will use this jira to add those too.
Bug: Upgrade slf4j to 1.7.30 ( To Address: CVE-2018-8088)
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 24/Aug/20 10:51
Affects Version/s: 3.3.1

To address the following CVE, upgrade the slf4j to latest stable release 1.7.30.

[https://nvd.nist.gov/vuln/detail/CVE-2018-8088]
 

Note: We don't use EventData but should consider upgrading.
Bug: Jetty upgrade to 9.4.x causes MR app fail with IOException
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 08/Jul/20 17:17
Affects Version/s: 3.1.1

I think we should catch IOException here instead of BindException in HttpServer2#bindForPortRange
{code:java}
 for(Integer port : portRanges) {
      if (port == startPort) {
        continue;
      }
      Thread.sleep(100);
      listener.setPort(port);
      try {
        bindListener(listener);
        return;
      } catch (BindException ex) {
        // Ignore exception. Move to next port.
        ioException = ex;
      }
    }
{code}

Stacktrace:

{code:java}
 HttpServer.start() threw a non Bind IOException | HttpServer2.java:1142
java.io.IOException: Failed to bind to xxxxx/xxx.xx.xx.xx:27101
	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:346)
	at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:307)
	at org.apache.hadoop.http.HttpServer2.bindListener(HttpServer2.java:1190)
	at org.apache.hadoop.http.HttpServer2.bindForPortRange(HttpServer2.java:1258)
	at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:1282)
	at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:1139)
	at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:451)
	at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:440)
	at org.apache.hadoop.mapreduce.v2.app.client.MRClientService.serviceStart(MRClientService.java:148)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.serviceStart(MRAppMaster.java:1378)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster$7.run(MRAppMaster.java:1998)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.initAndStartAppMaster(MRAppMaster.java:1994)
	at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1890)
Caused by: java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(Native Method)
	at sun.nio.ch.Net.bind(Net.java:433)
	at sun.nio.ch.Net.bind(Net.java:425)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:220)
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:342)
	... 17 more
{code}
Bug: Service-user cost shouldn't be accumulated to totalDecayedCallCost and totalRawCallCost.
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 22/Sep/20 14:02
Affects Version/s: 3.4.0

HADOOP-17165 has introduced a very useful feature: service-user. After this feature I think we shouldn't add the service-user's cost into totalDecayedCallCost and totalRawCallCost anymore. Because it may give all the identities the priority 0(Supposing we have a big service-user).
Bug: Support BCFKS keystores for Hadoop Credential Provider
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 24/Sep/20 20:16
Affects Version/s: 3.3.0

Hadoop Credential Provider provides an extensible mechanism to manage sensitive tokens like passwords for the cluster. It currently only support JCEKS store type from JDK. 

This ticket is opened to add support BCFKS (Bouncy Castle FIPS) key store type for some higher security requirement use cases assuming OS/JDK has been updated with FIPS security provider for Java Security.
Bug: Adding ReadAhead Counters in ABFS
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 07/Jul/20 10:49
Affects Version/s: 3.3.0

Adding ReadAheads Counters in ABFS to track the behavior of the ReadAhead feature in ABFS. This would include 2 counters:
|READ_AHEAD_BYTES_READ|number of bytes read by readAhead|
|READ_AHEAD_REMOTE_BYTES_READ|number of bytes not used after readAhead was used|
Bug: Implement service-user feature in DecayRPCScheduler
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 30/Jul/20 08:11
Affects Version/s: 3.4.0

In our cluster, we want to use FairCallQueue to limit heavy users, but not want to restrict certain users who are submitting important requests. This jira proposes to implement the service-user feature that the user is always scheduled high-priority queue.
According to HADOOP-9640, the initial concept of FCQ has this feature, but not implemented finally.
Bug: Implement wrapper for guava newArrayList and newLinkedList
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 23/Jul/20 13:29
Affects Version/s: 3.3.5

guava Lists class provide some wrappers to java ArrayList and LinkedList.

Replacing the method calls throughout the code can be invasive because guava offers some APIs that do not exist in java util. This Jira is the task of implementing those missing APIs in hadoop common in a step toward getting rid of guava.
 * create a wrapper class org.apache.hadoop.util.unguava.Lists 
 * implement the following interfaces in Lists:
 ** public static <E> ArrayList<E> newArrayList()
 ** public static <E> ArrayList<E> newArrayList(E... elements)
 ** public static <E> ArrayList<E> newArrayList(Iterable<? extends E> elements)
 ** public static <E> ArrayList<E> newArrayList(Iterator<? extends E> elements)
 ** public static <E> ArrayList<E> newArrayListWithCapacity(int initialArraySize)
 ** public static <E> LinkedList<E> newLinkedList()
 ** public static <E> LinkedList<E> newLinkedList(Iterable<? extends E> elements)
 ** public static <E> List<E> asList(@Nullable E first, E[] rest)
Bug: [JDK11] Fix javadoc errors in hadoop-common module
Status: Resolved | Priority: Major | Resolution: Fixed
Created: 03/Aug/20 02:13
Affects Version/s: 3.4.0

Full error log: https://gist.github.com/aajisaka/5504dd485cc4bc98a6a245830d450919

{noformat}
[ERROR] /Users/aajisaka/git/hadoop/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/ssl/DelegatingSSLSocketFactory.java:57: error: unexpected end tag: </p>
[ERROR]  * </p>
[ERROR]    ^
[ERROR] /Users/aajisaka/git/hadoop/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/WeightedTimeCostProvider.java:33: error: self-closing element not allowed
[ERROR]  * <p/>This allows for configuration of how heavily each of the operations
[ERROR]    ^
...
{noformat}

How to reproduce the failure:
* Remove {{<javadoc.skip.jdk11>true</javadoc.skip.jdk11>}} from pom.xml
* Run {{mvn process-sources javadoc:javadoc-no-fork}}