diff --git a/bundles/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java b/bundles/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java index a881b8f5fb3db52342ffc43b04c7e8aae1cd3023..d81f32afa238367d31141877b90030e0c56adac9 100644 --- a/bundles/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java +++ b/bundles/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java @@ -983,4 +983,16 @@ public class CommonUtils { } return grouped; } + + /** + * Clamps given value to range between lower and upper bounds. + * + * @param value the value to clamp + * @param min the lower boundary to clamp {@code value} to + * @param max the upper boundary to clamp {@code value} to + * @return {@code min} if {@code value} is less than {@code min}, {@code max} if {@code value} is greater than {@code max}, otherwise {@code value} + */ + public static int clamp(int value, int min, int max) { + return Math.max(min, Math.min(value, max)); + } } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/RadixAttributeTransformer.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/RadixAttributeTransformer.java index ff7e16e3f96a74be97ebbb1204ed25720bb2ae26..2323b390730e3f9636e89a4292e74bd4c0c0f771 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/RadixAttributeTransformer.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/data/transformers/RadixAttributeTransformer.java @@ -113,7 +113,7 @@ public class RadixAttributeTransformer implements DBDAttributeTransformer { } } if (radix == 2) { - sb.append(strValue.substring(Math.max(strValue.length() - bits, 1))); + sb.append(strValue, 0, CommonUtils.clamp(strValue.length(), 1, bits)); } else { sb.append(strValue); }