From 1c71b26ed8857e1e429d27846749cbed6c05cc9b Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Sat, 19 Apr 2025 12:06:33 +0200 Subject: [PATCH] Objects: 1 less field in JDataVersionedWrapperLazy --- .../objects/JDataVersionedWrapperLazy.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java index 49818e19..ccb677cc 100644 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java +++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java @@ -3,11 +3,10 @@ package com.usatiuk.objects; import java.util.function.Supplier; public class JDataVersionedWrapperLazy implements JDataVersionedWrapper { + private JData _data; private final long _version; private final int _estimatedSize; private Supplier _producer; - private Runnable _cacheCallback; - private JData _data; public JDataVersionedWrapperLazy(long version, int estimatedSize, Supplier producer) { _version = version; @@ -19,8 +18,12 @@ public class JDataVersionedWrapperLazy implements JDataVersionedWrapper { if (_data != null) { throw new IllegalStateException("Cache callback can be set only before data is loaded"); } - - _cacheCallback = cacheCallback; + var oldProducer = _producer; + _producer = () -> { + var ret = oldProducer.get(); + cacheCallback.run(); + return ret; + }; } public JData data() { @@ -32,10 +35,6 @@ public class JDataVersionedWrapperLazy implements JDataVersionedWrapper { return _data; _data = _producer.get(); - if (_cacheCallback != null) { - _cacheCallback.run(); - _cacheCallback = null; - } _producer = null; return _data; }