From f1b0f166b173214b8e387b3f1c946864738568bf Mon Sep 17 00:00:00 2001 From: Francesco Date: Tue, 7 Nov 2023 22:45:46 +0100 Subject: [PATCH] Better exception message on not found field --- .../snapadmin/external/dbmapping/DbObjectSchema.java | 11 +++++++++-- .../ailef/snapadmin/internal/model/UserAction.java | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java b/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java index b525aee..1da5804 100644 --- a/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java +++ b/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java @@ -49,6 +49,7 @@ import tech.ailef.snapadmin.external.annotations.HiddenColumn; import tech.ailef.snapadmin.external.dbmapping.fields.DbField; import tech.ailef.snapadmin.external.dto.MappingError; import tech.ailef.snapadmin.external.exceptions.SnapAdminException; +import tech.ailef.snapadmin.external.exceptions.SnapAdminNotFoundException; import tech.ailef.snapadmin.external.misc.Utils; /** @@ -375,9 +376,15 @@ public class DbObjectSchema { for (String param : params.keySet()) { // Parameters starting with __ are hidden and not related to the object creation - if (param.startsWith("__")) continue; + if (param.startsWith("__") + || param.equals("_csrf")) continue; - String javaFieldName = getFieldByName(param).getJavaName(); + DbField dbField = getFieldByName(param); + + if (dbField == null) + throw new SnapAdminNotFoundException("Cannot find field " + param + " in " + getJavaClass().getName()); + + String javaFieldName = dbField.getJavaName(); Method setter = dbObject.findSetter(javaFieldName); if (setter == null) { diff --git a/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java b/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java index 2e0785f..5facb62 100644 --- a/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java +++ b/src/main/java/tech/ailef/snapadmin/internal/model/UserAction.java @@ -160,5 +160,6 @@ public class UserAction { public void setUsername(String username) { this.username = username; } + }