diff --git a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java index 0aa5c96e59e59ce9649ed08d473a2561b7912153..0ebb6f12870819207ed9589835a09160667af47c 100644 --- a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java +++ b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java @@ -1226,10 +1226,19 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv String extension = FileUtils.getFileSuffix(originalFilename); String nameOnly = originalFilename.substring(0, originalFilename.length() - extension.length() - 1); String thumbnailExtension = preferedThumbnailType(extension); - StringBuilder sb = new StringBuilder(128); - sb.append("._oo_th_").append(fill).append("_").append(maxWidth).append("_").append(maxHeight) - .append("_").append(nameOnly).append(".").append(thumbnailExtension); + sb.append("._oo_th_").append(fill).append("_").append(maxWidth).append("_").append(maxHeight).append("_"); + + if(nameOnly.length() + sb.length() + thumbnailExtension.length() > 230) { + log.info("File name too long: {}", nameOnly); + int maxLength = 230 - sb.length() - thumbnailExtension.length(); + if(maxLength < 1) { + maxLength = 1; + } + nameOnly = nameOnly.substring(0, maxLength); + } + + sb.append(nameOnly).append(".").append(thumbnailExtension); return sb.toString(); }