From f3476cf341c8db0e67b98a2835c472a1dc816a40 Mon Sep 17 00:00:00 2001 From: Thomas Neidhart Date: Tue, 28 Apr 2026 21:41:48 +0200 Subject: [PATCH 1/3] revert NamingUtil.toFileFormat to previous behavior to fix regression --- .../LatestExtensionVersionsByPlatformCacheKeyGenerator.java | 2 +- .../src/main/java/org/eclipse/openvsx/util/NamingUtil.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/org/eclipse/openvsx/cache/LatestExtensionVersionsByPlatformCacheKeyGenerator.java b/server/src/main/java/org/eclipse/openvsx/cache/LatestExtensionVersionsByPlatformCacheKeyGenerator.java index 5b3b38e6f..6e4e0a513 100644 --- a/server/src/main/java/org/eclipse/openvsx/cache/LatestExtensionVersionsByPlatformCacheKeyGenerator.java +++ b/server/src/main/java/org/eclipse/openvsx/cache/LatestExtensionVersionsByPlatformCacheKeyGenerator.java @@ -41,6 +41,6 @@ public Object generate(Object target, Method method, Object... params) { public String generate(Extension extension, boolean preReleases) { var extensionName = extension.getName(); var namespaceName = extension.getNamespace().getName(); - return NamingUtil.toFileFormat(namespaceName, extensionName, null, VersionAlias.LATEST) + ",pre-releases=" + preReleases; + return NamingUtil.toFileFormat(namespaceName, extensionName, VersionAlias.LATEST) + ",pre-releases=" + preReleases; } } diff --git a/server/src/main/java/org/eclipse/openvsx/util/NamingUtil.java b/server/src/main/java/org/eclipse/openvsx/util/NamingUtil.java index 381b4ce78..efa6125d7 100644 --- a/server/src/main/java/org/eclipse/openvsx/util/NamingUtil.java +++ b/server/src/main/java/org/eclipse/openvsx/util/NamingUtil.java @@ -32,13 +32,17 @@ public static String toFileFormat(ExtensionVersion extVersion) { return toFileFormat(namespace.getName(), extension.getName(), extVersion.getTargetPlatform(), extVersion.getVersion()); } + public static String toFileFormat(String namespace, String extension, String version) { + return toExtensionId(namespace, extension) + "-" + version; + } + public static String toFileFormat(String namespace, String extension, String targetPlatform, String version, String suffix) { return toFileFormat(namespace, extension, targetPlatform, version) + suffix; } public static String toFileFormat(String namespace, String extension, String targetPlatform, String version) { var name = toExtensionId(namespace, extension) + "-" + version; - if (targetPlatform != null && !TargetPlatform.isUniversal(targetPlatform)) { + if (!TargetPlatform.isUniversal(targetPlatform)) { name += "@" + targetPlatform; } From a5cc72c3e7a4528af2b15815cd3d6d9a436659e2 Mon Sep 17 00:00:00 2001 From: Thomas Neidhart Date: Tue, 28 Apr 2026 21:42:08 +0200 Subject: [PATCH 2/3] return 404 for builtin extensions rather than 400 --- .../java/org/eclipse/openvsx/adapter/LocalVSCodeService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/org/eclipse/openvsx/adapter/LocalVSCodeService.java b/server/src/main/java/org/eclipse/openvsx/adapter/LocalVSCodeService.java index 6276aba49..314d2f94b 100644 --- a/server/src/main/java/org/eclipse/openvsx/adapter/LocalVSCodeService.java +++ b/server/src/main/java/org/eclipse/openvsx/adapter/LocalVSCodeService.java @@ -284,7 +284,7 @@ private String getSortOrder(int sortOrder) { @Cacheable(value = CacheService.CACHE_LATEST_EXTENSION_VERSION_VSCODE) public ExtensionQueryResult.Extension latest(String namespaceName, String extensionName) { if (BuiltInExtensionUtil.isBuiltIn(namespaceName)) { - throw new ResponseStatusException(HttpStatus.BAD_REQUEST, builtinExtensionMessage()); + throw new NotFoundException(); } var extension = repositories.findActiveExtension(extensionName, namespaceName); From 343c783ad64ed251b302dcfbafab31a1fcab48c0 Mon Sep 17 00:00:00 2001 From: Thomas Neidhart Date: Tue, 28 Apr 2026 21:42:25 +0200 Subject: [PATCH 3/3] fix deserialization of generic list --- .../main/java/org/eclipse/openvsx/cache/CacheConfig.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/eclipse/openvsx/cache/CacheConfig.java b/server/src/main/java/org/eclipse/openvsx/cache/CacheConfig.java index aa8ed0468..562dc05aa 100644 --- a/server/src/main/java/org/eclipse/openvsx/cache/CacheConfig.java +++ b/server/src/main/java/org/eclipse/openvsx/cache/CacheConfig.java @@ -264,7 +264,13 @@ public CacheManager redisCacheManager( ) .withCacheConfiguration( CACHE_LATEST_EXTENSION_VERSIONS_BY_PLATFORM, - redisCacheConfig(new Jackson2JsonRedisSerializer<>(extensionVersionMapper, List.class), latestExtensionVersionsByPlatformTtl) + redisCacheConfig( + new Jackson2JsonRedisSerializer<>( + extensionVersionMapper, + extensionVersionMapper.getTypeFactory().constructParametricType(List.class, ExtensionVersion.class) + ), + latestExtensionVersionsByPlatformTtl + ) ) .withCacheConfiguration( CACHE_SITEMAP,