[
https://issues.apache.org/jira/browse/HADOOP-18601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17679051#comment-17679051
]
Masatake Iwasaki commented on HADOOP-18601:
-------------------------------------------
MetricsSystem.java and MetricsSystemImpl.java seems to be automatically
modified by building with {{-Pdocs}}. I'm not sure this is the cause. If this
is unrelated, I will file another JIRA.
{noformat}
$ mvn clean install -DskipTests -DskipShade -Pdocs
$ git diff
diff --git
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java
index fef8c4b7e4b..7b21cc302d1 100644
---
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java
+++
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java
@@ -42,6 +42,18 @@
@InterfaceAudience.Private
public abstract MetricsSystem init(String prefix);
+ /**
+ * Register a metrics source
+ * @param <T> the actual type of the source object
+ * @param source object to register
+ * @param name of the source. Must be unique or null (then extracted from
+ * the annotations of the source object.)
+ * @param desc the description of the source (or null. See above.)
+ * @return the source object
+ * @exception MetricsException
+ */
+ public abstract <T> T register(String name, String desc, T source);
+
/**
* Register a metrics source
* @param <T> the actual type of the source object
diff --git
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
index 6c5a71a708f..beb72e42723 100644
---
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
+++
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
@@ -293,6 +293,31 @@ T register(final String name, final String description,
final T sink) {
return sink;
}
+ @Override public synchronized <T extends MetricsSink>
+ T register(final String name, final String description, final T sink) {
+ LOG.debug(name +", "+ description);
+ if (allSinks.containsKey(name)) {
+ if(sinks.get(name) == null) {
+ registerSink(name, description, sink);
+ } else {
+ LOG.warn("Sink "+ name +" already exists!");
+ }
+ return sink;
+ }
+ allSinks.put(name, sink);
+ if (config != null) {
+ registerSink(name, description, sink);
+ }
+ // We want to re-register the sink to pick up new config
+ // when the metrics system restarts.
+ register(name, new AbstractCallback() {
+ @Override public void postStart() {
+ register(name, description, sink);
+ }
+ });
+ return sink;
+ }
+
synchronized void registerSink(String name, String desc, MetricsSink sink) {
checkNotNull(config, "config");
MetricsConfig conf = sinkConfigs.get(name);
{noformat}
> Fix build failure with docs profile
> -----------------------------------
>
> Key: HADOOP-18601
> URL: https://issues.apache.org/jira/browse/HADOOP-18601
> Project: Hadoop Common
> Issue Type: Bug
> Reporter: Masatake Iwasaki
> Assignee: Masatake Iwasaki
> Priority: Major
>
> Build with docs profile failed due to depcheck error.
> {noformat}
> $ mvn clean install -DskipTests -DskipShade -Pdocs
> ...
> [INFO] --- maven-enforcer-plugin:3.0.0:enforce (depcheck) @ hadoop-hdfs ---
> [WARNING]
> Dependency convergence error for xerces:xercesImpl:jar:2.12.2:provided paths
> to dependency are:
> +-org.apache.hadoop:hadoop-hdfs:jar:3.4.0-SNAPSHOT
> +-org.apache.hadoop:hadoop-common:jar:3.4.0-SNAPSHOT:provided
> +-xerces:xercesImpl:jar:2.12.2:provided
> and
> +-org.apache.hadoop:hadoop-hdfs:jar:3.4.0-SNAPSHOT
> +-org.apache.hadoop:hadoop-common:test-jar:tests:3.4.0-SNAPSHOT:test
> +-xerces:xercesImpl:jar:2.12.2:test
> and
> +-org.apache.hadoop:hadoop-hdfs:jar:3.4.0-SNAPSHOT
> +-org.apache.hadoop:hadoop-hdfs-client:jar:3.4.0-SNAPSHOT:provided
> +-xerces:xercesImpl:jar:2.12.2:provided
> and
> +-org.apache.hadoop:hadoop-hdfs:jar:3.4.0-SNAPSHOT
> +-com.google.code.findbugs:findbugs:jar:3.0.1:provided
> +-jaxen:jaxen:jar:1.1.6:provided
> +-xerces:xercesImpl:jar:2.6.2:provided
> and
> +-org.apache.hadoop:hadoop-hdfs:jar:3.4.0-SNAPSHOT
> +-xerces:xercesImpl:jar:2.12.2:compile
> [WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence
> failed with message:
> Failed while enforcing releasability. See above detailed error message.
> [INFO]
> ------------------------------------------------------------------------
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]