From a05e6ccdba85f5e827245aa581accd2867e40851 Mon Sep 17 00:00:00 2001 From: Tobias Werth Date: Tue, 14 Aug 2018 07:16:52 -0700 Subject: Explicitly cast ByteBuffer in clear() call to Buffer. This works around the following error: java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer; at com.google.devtools.build.lib.profiler.Profiler$BinaryFormatWriter.run(Profiler.java:949) at java.lang.Thread.run(Thread.java:748) JDK 9 introduced an overloaded methods with covariant return type. Closes #5886. PiperOrigin-RevId: 208642556 --- .../java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java | 4 ++-- src/main/java/com/google/devtools/build/lib/profiler/Profiler.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java index 87910efaee..d263e30225 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BazelJavaCompiler.java @@ -76,10 +76,10 @@ public class BazelJavaCompiler { private static class LangtoolsClassLoader extends URLClassLoader { public LangtoolsClassLoader() throws MalformedURLException { - super(new URL[] {getLangtoolsJar().toURI().toURL()}, getPlatformClassLoader()); + super(new URL[] {getLangtoolsJar().toURI().toURL()}, getPlatformClassLoaderInternal()); } - private static ClassLoader getPlatformClassLoader() { + private static ClassLoader getPlatformClassLoaderInternal() { try { return (ClassLoader) ClassLoader.class.getMethod("getPlatformClassLoader").invoke(null); } catch (ReflectiveOperationException e) { diff --git a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java index fb64aa2a31..11f28965b3 100644 --- a/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java +++ b/src/main/java/com/google/devtools/build/lib/profiler/Profiler.java @@ -32,6 +32,7 @@ import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.time.Duration; @@ -946,7 +947,7 @@ public final class Profiler { ObjectDescriber describer = new ObjectDescriber(); TaskData data; while ((data = queue.take()) != POISON_PILL) { - sink.clear(); + ((Buffer) sink).clear(); VarInt.putVarLong(data.threadId, sink); VarInt.putVarInt(data.id, sink); -- cgit v1.2.3