You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by as...@apache.org on 2020/06/30 19:13:57 UTC
[mesos] branch 1.8.x updated: Added a workaround for `javah -d
java/jni` race for creating `java/jni`.
This is an automated email from the ASF dual-hosted git repository.
asekretenko pushed a commit to branch 1.8.x
in repository https://gitbox.apache.org/repos/asf/mesos.git
The following commit(s) were added to refs/heads/1.8.x by this push:
new b5a0168 Added a workaround for `javah -d java/jni` race for creating `java/jni`.
b5a0168 is described below
commit b5a0168dcf6b912de8eb479472be344351a4c4e1
Author: Andrei Sekretenko <as...@apache.org>
AuthorDate: Wed May 27 13:04:02 2020 +0200
Added a workaround for `javah -d java/jni` race for creating `java/jni`.
This is a workaround for the race between concurrent runs of `javah`
trying to create the same output directory.
Review: https://reviews.apache.org/r/72549
---
src/Makefile.am | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/Makefile.am b/src/Makefile.am
index ba4d453..912632d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2091,6 +2091,14 @@ BUILT_SOURCES += $(nodist_libjava_la_SOURCES)
# of the java file. Unlike 'javah', 'javac -h' requires java sources to
# generate headers.
java/jni/%.h: $(MESOS_JAR)
+ # NOTE: javah has a race between concurrent runs trying to create
+ # the same output directory:
+ # http://hg.openjdk.java.net/jdk8/jdk8/langtools/file/1ff9d5118aae/src/share/classes/com/sun/tools/javah/JavahTask.java#l475
+ # Thus, we have to create the output directory here.
+ #
+ # TODO(asekretenko): Replace `javah` (deprecated as of JDK 9+)
+ # with `javac` when switching to a newer JDK.
+ mkdir -p java/jni
if HAS_JAVAH
$(JAVA_HOME)/bin/javah -d java/jni \
-classpath $(MESOS_JAR):@PROTOBUF_JAR@ \