From 73a61f20e8c2f45168eb45dd14733109f3da93de Mon Sep 17 00:00:00 2001 From: "vladimir.bukhtoyarov" Date: Sun, 14 Nov 2021 20:19:33 +0300 Subject: [PATCH] #187 fix NotSerializableException --- .../io/github/bucket4j/VerboseResult.java | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/bucket4j-core/src/main/java/io/github/bucket4j/VerboseResult.java b/bucket4j-core/src/main/java/io/github/bucket4j/VerboseResult.java index 598c034b..6dc29ab0 100644 --- a/bucket4j-core/src/main/java/io/github/bucket4j/VerboseResult.java +++ b/bucket4j-core/src/main/java/io/github/bucket4j/VerboseResult.java @@ -38,26 +38,6 @@ public class VerboseResult implements Serializable { private final T value; private final BucketConfiguration configuration; private final BucketState state; - private final Diagnostics diagnostics = new Diagnostics() { - @Override - public long calculateFullRefillingTime() { - return state.calculateFullRefillingTime(configuration.getBandwidths(), operationTimeNanos); - } - @Override - public long getAvailableTokens() { - return state.getAvailableTokens(configuration.getBandwidths()); - } - - @Override - public long[] getAvailableTokensPerEachBandwidth() { - Bandwidth[] bandwidths = configuration.getBandwidths(); - long[] availableTokens = new long[bandwidths.length]; - for (int i = 0; i < bandwidths.length; i++) { - availableTokens[i] = state.getCurrentSize(i); - } - return availableTokens; - } - }; public VerboseResult(long operationTimeNanos, T value, BucketConfiguration configuration, BucketState state) { this.operationTimeNanos = operationTimeNanos; @@ -98,7 +78,26 @@ public long getOperationTimeNanos() { * @return internal state describer */ public Diagnostics getDiagnostics() { - return diagnostics; + return new Diagnostics() { + @Override + public long calculateFullRefillingTime() { + return state.calculateFullRefillingTime(configuration.getBandwidths(), operationTimeNanos); + } + @Override + public long getAvailableTokens() { + return state.getAvailableTokens(configuration.getBandwidths()); + } + + @Override + public long[] getAvailableTokensPerEachBandwidth() { + Bandwidth[] bandwidths = configuration.getBandwidths(); + long[] availableTokens = new long[bandwidths.length]; + for (int i = 0; i < bandwidths.length; i++) { + availableTokens[i] = state.getCurrentSize(i); + } + return availableTokens; + } + }; } /**