From 8d4a14b55a8f1b68a4a13c6b4920e3c267b130a8 Mon Sep 17 00:00:00 2001
From: Valera V.Harseko <vharseko@3a-systems.ru>
Date: Wed, 19 Feb 2020 14:01:56 +0000
Subject: [PATCH] Merge branch 'master' of https://github.com/OpenIdentityPlatform/OpenDJ.git
---
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java | 34 ++++++++++++++++++++++------------
pom.xml | 1 +
2 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
index 3bfa144..2483cc6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
@@ -2955,18 +2955,28 @@
{
Method tmpDirectBufferCleanerMethod = null;
Method tmpDirectBufferCleanerCleanMethod = null;
- boolean tmpCleanSupported;
- try
- {
- tmpDirectBufferCleanerMethod = Class.forName("java.nio.DirectByteBuffer").getMethod("cleaner");
- tmpDirectBufferCleanerMethod.setAccessible(true);
- tmpDirectBufferCleanerCleanMethod = Class.forName("sun.misc.Cleaner").getMethod("clean");
- tmpDirectBufferCleanerCleanMethod.setAccessible(true);
- tmpCleanSupported = true;
- }
- catch (Exception e)
- {
- tmpCleanSupported = false;
+ boolean tmpCleanSupported = false;
+ //
+ // We know that this will fail in Java 9+ since sun.misc.Cleaner was moved to jdk.internal.ref.Cleaner (see JDK-8148117)
+ // Also in Java9+, calling 'setAccessible(true)' to Java internal classes generates warnings:
+ // * WARNING: An illegal reflective access operation has occurred
+ // * WARNING: All illegal access operations will be denied in a future release
+ // unless the JVM is started with the 'add-opens=java.base/java.nio=ALL-UNNAMED' flag
+ // Since this is only an optimization, avoid it completely in Java 9+
+ //
+ if (System.getProperty("java.version").startsWith("1.")) {
+ try
+ {
+ tmpDirectBufferCleanerMethod = Class.forName("java.nio.DirectByteBuffer").getMethod("cleaner");
+ tmpDirectBufferCleanerMethod.setAccessible(true);
+ tmpDirectBufferCleanerCleanMethod = Class.forName("sun.misc.Cleaner").getMethod("clean");
+ tmpDirectBufferCleanerCleanMethod.setAccessible(true);
+ tmpCleanSupported = true;
+ }
+ catch (Exception e)
+ {
+ tmpCleanSupported = false;
+ }
}
CLEAN_SUPPORTED = tmpCleanSupported;
directBufferCleanerMethod = tmpDirectBufferCleanerMethod;
diff --git a/pom.xml b/pom.xml
index eac164d..bf9e830 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,7 @@
<product.name>OpenDJ</product.name>
<product.name.lowercase>opendj</product.name.lowercase>
<product.locales>ca_ES,es,de,fr,ja,ko,pl,zh_CN,zh_TW</product.locales>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<localized.jars.classifier>i18n</localized.jars.classifier>
<freemarker.version>2.3.28</freemarker.version>
<grizzly-framework.version>2.4.4</grizzly-framework.version>
--
Gitblit v1.10.0