From 829c283ab28720270657ea52fd1bcdc46ec1f38d Mon Sep 17 00:00:00 2001 From: Adam Miller Date: Thu, 13 Mar 2025 16:00:39 -0700 Subject: [PATCH 1/2] fix: ObjectIdentityBdbManualCacheTest.java fails with -DrunSlowTests=true on Java 9+ --- commons/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commons/pom.xml b/commons/pom.xml index fe4a0a56..53145d99 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -204,7 +204,7 @@ **/Test*.java - -Xmx1g + -Xmx1g --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED From b02590cca0859d029142443eadb7f44855d9bf18 Mon Sep 17 00:00:00 2001 From: Adam Miller Date: Fri, 14 Mar 2025 09:14:26 -0700 Subject: [PATCH 2/2] Use AtomicInteger serializer rather than change accessibility --- commons/pom.xml | 2 +- commons/src/main/java/org/archive/bdb/KryoBinding.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/commons/pom.xml b/commons/pom.xml index 53145d99..fe4a0a56 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -204,7 +204,7 @@ **/Test*.java - -Xmx1g --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED + -Xmx1g diff --git a/commons/src/main/java/org/archive/bdb/KryoBinding.java b/commons/src/main/java/org/archive/bdb/KryoBinding.java index 6b960949..97561e9b 100644 --- a/commons/src/main/java/org/archive/bdb/KryoBinding.java +++ b/commons/src/main/java/org/archive/bdb/KryoBinding.java @@ -21,10 +21,13 @@ package org.archive.bdb; import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.io.Input; import com.esotericsoftware.kryo.io.Output; +import com.esotericsoftware.kryo.serializers.DefaultSerializers; import com.esotericsoftware.kryo.util.Pool; import com.sleepycat.bind.EntryBinding; import com.sleepycat.je.DatabaseEntry; +import java.util.concurrent.atomic.AtomicInteger; + /** * Binding for use with BerkeleyDB-JE that uses Kryo serialization rather * than BDB's (custom version of) Java serialization. @@ -39,6 +42,7 @@ public class KryoBinding implements EntryBinding { Pool kryoPool = new Pool(true, false, POOL_SIZE) { protected AutoKryo create () { AutoKryo kryo = new AutoKryo(); + kryo.addDefaultSerializer(AtomicInteger.class, DefaultSerializers.AtomicIntegerSerializer.class); kryo.autoregister(baseClass); kryo.setRegistrationRequired(false); kryo.setWarnUnregisteredClasses(true);