From 4be841e9c4dfde3814fcbf502c904e491ceb9439 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Thu, 21 Apr 2016 09:06:32 +0000 Subject: [PATCH] SSDM-3521 : Limit size of error string to 500 chars. SVN: 36247 --- .../openbis/generic/server/dataaccess/db/AbstractDAO.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAO.java index 4865927c095..7e0d324cb15 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAO.java @@ -70,7 +70,8 @@ public abstract class AbstractDAO extends HibernateDaoSupport { private static ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); - + private static final int MAX_STRING_ERROR_LENGTH = 500; + protected AbstractDAO(final SessionFactory sessionFactory) { assert sessionFactory != null : "Unspecified session factory"; @@ -98,6 +99,9 @@ public abstract class AbstractDAO extends HibernateDaoSupport for (ConstraintViolation v : violations) { Object invalidValue = v.getInvalidValue(); + if(invalidValue instanceof String && (((String) invalidValue).length() > MAX_STRING_ERROR_LENGTH)) { + invalidValue = String.format("%s... (complete value was %d characters)", ((String) invalidValue).substring(0, MAX_STRING_ERROR_LENGTH), ((String) invalidValue).length()); + } msg += ", " + String.format(v.getMessage(), invalidValue); } throw new DataIntegrityViolationException(msg.substring(2)); -- GitLab