diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java index 639fe16249..e73b1849b3 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java @@ -404,9 +404,11 @@ protected Object getObjectValue(String value, Column column, BinaryEncoding enco String charValue = value.toString(); if ((StringUtils.isBlank(charValue) && getDdlBuilder().getDatabaseInfo().isBlankCharColumnSpacePadded()) || (StringUtils.isNotBlank(charValue) && getDdlBuilder().getDatabaseInfo().isNonBlankCharColumnSpacePadded())) { - if (column.getCharOctetLength() == 0 || column.getSizeAsInt() == column.getCharOctetLength()) { + if (column.getSizeAsInt() != column.getCharOctetLength()) { + // using multiple-byte character set, the size is maximum number of characters objectValue = StringUtils.rightPad(charValue, column.getSizeAsInt(), ' '); } else { + // single-byte character set or field defined as number of bytes objectValue = charValue + StringUtils.repeat(" ", column.getCharOctetLength() - value.getBytes().length); } }