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 4865927c095d9d079e86bcf87bde2704bb337a79..7e0d324cb15b2dcc79e17a52589882baab93a7b2 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));