You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tz...@apache.org on 2020/09/01 07:38:34 UTC
[flink-statefun] 02/04: [FLINK-19096] [sdk] Add toString() for
state classes for better error messages
This is an automated email from the ASF dual-hosted git repository.
tzulitai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-statefun.git
commit dd095c8236f7e0a0b8548ea3dc6b40b5728210d8
Author: Tzu-Li (Gordon) Tai <tz...@apache.org>
AuthorDate: Mon Aug 31 15:59:46 2020 +0800
[FLINK-19096] [sdk] Add toString() for state classes for better error messages
This closes #136.
---
.../main/java/org/apache/flink/statefun/sdk/state/Expiration.java | 5 +++++
.../apache/flink/statefun/sdk/state/PersistedAppendingBuffer.java | 7 +++++++
.../apache/flink/statefun/sdk/state/PersistedStateRegistry.java | 4 +---
.../java/org/apache/flink/statefun/sdk/state/PersistedTable.java | 7 +++++++
.../java/org/apache/flink/statefun/sdk/state/PersistedValue.java | 6 ++++++
5 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/Expiration.java b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/Expiration.java
index d3396f3..8841cc9 100644
--- a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/Expiration.java
+++ b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/Expiration.java
@@ -86,4 +86,9 @@ public final class Expiration implements Serializable {
public Duration duration() {
return duration;
}
+
+ @Override
+ public String toString() {
+ return String.format("Expiration{mode=%s, duration=%s}", mode, duration);
+ }
}
diff --git a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedAppendingBuffer.java b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedAppendingBuffer.java
index 42032c5..60541ff 100644
--- a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedAppendingBuffer.java
+++ b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedAppendingBuffer.java
@@ -160,6 +160,13 @@ public final class PersistedAppendingBuffer<E> {
accessor.clear();
}
+ @Override
+ public String toString() {
+ return String.format(
+ "PersistedAppendingBuffer{name=%s, elementType=%s, expiration=%s}",
+ name, elementType.getName(), expiration);
+ }
+
@ForRuntime
void setAccessor(AppendingBufferAccessor<E> newAccessor) {
this.accessor = Objects.requireNonNull(newAccessor);
diff --git a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedStateRegistry.java b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedStateRegistry.java
index f606675..b806df1 100644
--- a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedStateRegistry.java
+++ b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedStateRegistry.java
@@ -121,9 +121,7 @@ public final class PersistedStateRegistry {
throw new IllegalStateException(
String.format(
"State name '%s' was registered twice; previous registered state object with the same name was a %s, attempting to register a new %s under the same name.",
- stateName,
- previousRegistration.getClass().getName(),
- newStateObject.getClass().getName()));
+ stateName, previousRegistration, newStateObject));
}
registeredStates.put(stateName, newStateObject);
diff --git a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedTable.java b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedTable.java
index a04c126..4826606 100644
--- a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedTable.java
+++ b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedTable.java
@@ -182,6 +182,13 @@ public final class PersistedTable<K, V> {
accessor.clear();
}
+ @Override
+ public String toString() {
+ return String.format(
+ "PersistedTable{name=%s, keyType=%s, valueType=%s, expiration=%s}",
+ name, keyType.getName(), valueType.getName(), expiration);
+ }
+
@ForRuntime
void setAccessor(TableAccessor<K, V> newAccessor) {
Objects.requireNonNull(newAccessor);
diff --git a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedValue.java b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedValue.java
index 3d78b75..7c29493 100644
--- a/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedValue.java
+++ b/statefun-sdk/src/main/java/org/apache/flink/statefun/sdk/state/PersistedValue.java
@@ -165,6 +165,12 @@ public final class PersistedValue<T> {
this.accessor = newAccessor;
}
+ @Override
+ public String toString() {
+ return String.format(
+ "PersistedValue{name=%s, type=%s, expiration=%s}", name, type.getName(), expiration);
+ }
+
private static final class NonFaultTolerantAccessor<E> implements Accessor<E> {
private E element;