From 59e397b826336dddf36727306aab4f6f96eaa5a4 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 3 May 2023 17:47:10 +0200 Subject: [PATCH 1/4] Better error handling --- src/de/steamwar/sql/internal/SqlTypeMapper.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/de/steamwar/sql/internal/SqlTypeMapper.java b/src/de/steamwar/sql/internal/SqlTypeMapper.java index 34c6173..53a2cc2 100644 --- a/src/de/steamwar/sql/internal/SqlTypeMapper.java +++ b/src/de/steamwar/sql/internal/SqlTypeMapper.java @@ -32,7 +32,12 @@ public final class SqlTypeMapper { private static final Map, SqlTypeMapper> mappers = new IdentityHashMap<>(); public static SqlTypeMapper getMapper(Class clazz) { - return (SqlTypeMapper) mappers.get(clazz); + SqlTypeMapper result = (SqlTypeMapper) mappers.get(clazz); + + if(result == null) + throw new SecurityException("Unregistered mapper requested: " + clazz.getName()); + + return result; } public static > void ordinalEnumMapper(Class type) { From 229f74991e1643d4016b1e39f7e7fca1420df3c8 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 3 May 2023 17:50:27 +0200 Subject: [PATCH 2/4] Fix loading order --- src/de/steamwar/sql/Event.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/de/steamwar/sql/Event.java b/src/de/steamwar/sql/Event.java index 7985232..a853e13 100644 --- a/src/de/steamwar/sql/Event.java +++ b/src/de/steamwar/sql/Event.java @@ -32,6 +32,10 @@ import java.util.List; @AllArgsConstructor public class Event { + static { + SchematicType.Normal.name(); // Ensure SchematicType is loaded. + } + private static final Table table = new Table<>(Event.class); private static final SelectStatement byCurrent = new SelectStatement<>(table, "SELECT * FROM Event WHERE Start < now() AND End > now()"); From 97c38b64b3012daebcbd470ca08adf8a68f85e80 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 3 May 2023 17:52:21 +0200 Subject: [PATCH 3/4] Fix loading order --- src/de/steamwar/sql/SchematicNode.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/de/steamwar/sql/SchematicNode.java b/src/de/steamwar/sql/SchematicNode.java index 7bedbdc..6002739 100644 --- a/src/de/steamwar/sql/SchematicNode.java +++ b/src/de/steamwar/sql/SchematicNode.java @@ -20,9 +20,7 @@ package de.steamwar.sql; import de.steamwar.sql.internal.*; -import lombok.AccessLevel; import lombok.Getter; -import lombok.Setter; import java.sql.Timestamp; import java.time.Instant; @@ -32,6 +30,7 @@ import java.util.function.Predicate; public class SchematicNode { static { + SchematicType.Normal.name(); // Ensure SchematicType is loaded. new SqlTypeMapper<>(SchematicNode.class, null, (rs, identifier) -> { throw new SecurityException("SchematicNode cannot be used as type (recursive select)"); }, (st, index, value) -> st.setInt(index, value.nodeId)); } From a26e69e6f2a43d9890bce0a7f2549eb7ef6ab34e Mon Sep 17 00:00:00 2001 From: Lixfel Date: Mon, 8 May 2023 16:31:11 +0200 Subject: [PATCH 4/4] Fix SchemDownload --- src/de/steamwar/sql/NodeDownload.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/sql/NodeDownload.java b/src/de/steamwar/sql/NodeDownload.java index 585b3db..666cf68 100644 --- a/src/de/steamwar/sql/NodeDownload.java +++ b/src/de/steamwar/sql/NodeDownload.java @@ -26,7 +26,7 @@ import lombok.AllArgsConstructor; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import java.security.Timestamp; +import java.sql.Timestamp; import java.time.Instant; @AllArgsConstructor