From 2a389cb3322912e347e8a8ab4cfe22592962dcb3 Mon Sep 17 00:00:00 2001 From: Denis Silakov Date: Fri, 5 Jun 2015 14:53:34 +0300 Subject: [PATCH] Take nanoTime patch from 1.7.0 --- ...-openjdk-use-nanoTime_in_thread-join.patch | 29 +++++++++++++++++++ java-1.8.0-openjdk.spec | 3 ++ 2 files changed, 32 insertions(+) create mode 100644 java-1.8.0-openjdk-use-nanoTime_in_thread-join.patch diff --git a/java-1.8.0-openjdk-use-nanoTime_in_thread-join.patch b/java-1.8.0-openjdk-use-nanoTime_in_thread-join.patch new file mode 100644 index 0000000..86dbe34 --- /dev/null +++ b/java-1.8.0-openjdk-use-nanoTime_in_thread-join.patch @@ -0,0 +1,29 @@ +diff -Naur jdk8.orig/jdk/src/share/classes/java/lang/Thread.java jdk8/jdk/src/share/classes/java/lang/Thread.java +--- jdk8.orig/jdk/src/share/classes/java/lang/Thread.java 2015-06-05 14:50:08.649527076 +0300 ++++ jdk8/jdk/src/share/classes/java/lang/Thread.java 2015-06-05 14:51:43.135521481 +0300 +@@ -36,6 +36,7 @@ + import java.util.concurrent.ConcurrentHashMap; + import java.util.concurrent.ConcurrentMap; + import java.util.concurrent.locks.LockSupport; ++import java.util.concurrent.TimeUnit; + import sun.nio.ch.Interruptible; + import sun.reflect.CallerSensitive; + import sun.reflect.Reflection; +@@ -1233,7 +1234,7 @@ + */ + public final synchronized void join(long millis) + throws InterruptedException { +- long base = System.currentTimeMillis(); ++ long base = System.nanoTime(); + long now = 0; + + if (millis < 0) { +@@ -1251,7 +1252,7 @@ + break; + } + wait(delay); +- now = System.currentTimeMillis() - base; ++ now = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - base); + } + } + } diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 529508c..0196d95 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -233,6 +233,8 @@ Patch402: atomic_linux_zero.inline.hpp.patch # Fixes StackOverflowError on ARM32 bit Zero. See RHBZ#1206656 Patch403: rhbz1206656_fix_current_stack_pointer.patch +# Rely on nanoTime to get Thread.join working when clock is stopped or set back +Patch501: java-1.7.0-openjdk-use-nanoTime_in_thread-join.patch Patch503: d318d83c4e74.patch BuildRequires: autoconf @@ -466,6 +468,7 @@ sh %{SOURCE12} %patch402 %patch403 +%patch501 %patch503 # Extract systemtap tapsets