From 993ec4b03686b8b5ddc920932f98960ab227ef56 Mon Sep 17 00:00:00 2001
From: Mattias-Sehlstedt <60173714+Mattias-Sehlstedt@users.noreply.github.com>
Date: Mon, 13 Apr 2026 17:06:41 +0200
Subject: [PATCH 1/2] Upgrade swagger-core from version 2.2.47 to 2.2.48
---
pom.xml | 2 +-
.../core/configuration/SpringDocRequiredModule.java | 2 +-
.../DataRestDelegatingMethodParameterCustomizer.java | 6 ++----
.../java/org/springdoc/core/fn/builders/schema/Builder.java | 2 +-
.../org/springdoc/core/utils/SpringDocAnnotationsUtils.java | 2 +-
springdoc-openapi-tests/pom.xml | 2 +-
.../springdoc-openapi-actuator-webflux-tests/pom.xml | 2 +-
.../springdoc-openapi-actuator-webmvc-tests/pom.xml | 2 +-
.../springdoc-openapi-data-rest-tests/pom.xml | 2 +-
.../springdoc-openapi-function-webflux-tests/pom.xml | 2 +-
.../springdoc-openapi-function-webmvc-tests/pom.xml | 2 +-
.../springdoc-openapi-groovy-tests/pom.xml | 2 +-
.../springdoc-openapi-hateoas-tests/pom.xml | 2 +-
.../springdoc-openapi-javadoc-tests/pom.xml | 2 +-
.../springdoc-openapi-kotlin-webflux-tests/pom.xml | 2 +-
.../springdoc-openapi-kotlin-webmvc-tests/pom.xml | 2 +-
.../springdoc-openapi-security-tests/pom.xml | 2 +-
17 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2238c8ef3..a93c9a51f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
0.7.0
1.5.0
- 2.2.47
+ 2.2.48
5.32.2
1.13.1
0.9.1
diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java
index bdcc9f17b..60379850d 100644
--- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java
+++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java
@@ -57,7 +57,7 @@ public Boolean hasRequiredMarker(AnnotatedMember annotatedMember) {
if (schemaAnnotation.required() || requiredMode == Schema.RequiredMode.REQUIRED) {
return true;
}
- else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || (StringUtils.isNotEmpty(schemaAnnotation.defaultValue()) && !Schema.DEFAULT_SENTINEL.equals(schemaAnnotation.defaultValue()))) {
+ else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || StringUtils.isNotEmpty(schemaAnnotation.defaultValue())) {
return false;
}
}
diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java
index 2ae21e5f9..5d681ec08 100644
--- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java
+++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java
@@ -366,8 +366,7 @@ public String[] allowableValues() {
@Override
public String defaultValue() {
- String defaultValue = getDefaultValue(parameterName, pageableDefault, parameterSchema.defaultValue());
- return defaultValue != null ? defaultValue : io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL;
+ return getDefaultValue(parameterName, pageableDefault, parameterSchema.defaultValue());
}
@Override
@@ -758,8 +757,7 @@ public String[] allowableValues() {
@Override
public String defaultValue() {
- String defaultValue = getArrayDefaultValue(parameterName, pageableDefault, sortDefault, schema.defaultValue());
- return defaultValue != null ? defaultValue : io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL;
+ return getArrayDefaultValue(parameterName, pageableDefault, sortDefault, schema.defaultValue());
}
@Override
diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java
index 3115083e3..5ea175794 100644
--- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java
+++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java
@@ -197,7 +197,7 @@ public class Builder {
/**
* Provides a default value.
*/
- private String defaultValue = Schema.DEFAULT_SENTINEL;
+ private String defaultValue = "";
/**
* Provides a discriminator property value.
diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java
index 43fc85739..4648f3933 100644
--- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java
+++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java
@@ -504,7 +504,7 @@ public static Object castDefaultValue(Schema schema, Object defaultValue) {
*/
public static Object resolveDefaultValue(String defaultValueStr, ObjectMapper objectMapper) {
Object defaultValue = null;
- if (StringUtils.isNotEmpty(defaultValueStr) && !io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL.equals(defaultValueStr)) {
+ if (StringUtils.isNotEmpty(defaultValueStr)) {
try {
defaultValue = objectMapper.readTree(defaultValueStr);
}
diff --git a/springdoc-openapi-tests/pom.xml b/springdoc-openapi-tests/pom.xml
index f66c71499..df7f4e9fe 100644
--- a/springdoc-openapi-tests/pom.xml
+++ b/springdoc-openapi-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
pom
4.0.0
diff --git a/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml
index 1133fc3d0..aacb3825f 100644
--- a/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
diff --git a/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml
index 0a06452e9..95d18e53f 100644
--- a/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
diff --git a/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml
index 531c8a2ca..a31f0ac97 100644
--- a/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
springdoc-openapi-data-rest-tests
diff --git a/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml
index 3eec491a9..93479ab01 100644
--- a/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
diff --git a/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml
index 75c04e299..1a22650e8 100644
--- a/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
diff --git a/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml
index 303752232..f15ba3a31 100644
--- a/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml
@@ -3,7 +3,7 @@
org.springdoc
springdoc-openapi-tests
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
springdoc-openapi-groovy-tests
${project.artifactId}
diff --git a/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml
index ef2ceff5f..1a98d43b3 100644
--- a/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
springdoc-openapi-hateoas-tests
diff --git a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml
index 66b2a5cf1..e7be050d6 100644
--- a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml
@@ -2,7 +2,7 @@
org.springdoc
springdoc-openapi-tests
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
diff --git a/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml
index e5c8e955c..7f09cf189 100644
--- a/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
springdoc-openapi-kotlin-webflux-tests
diff --git a/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml
index 0da030bfe..c4028baa6 100644
--- a/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml
@@ -2,7 +2,7 @@
springdoc-openapi-tests
org.springdoc
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
4.0.0
springdoc-openapi-kotlin-webmvc-tests
diff --git a/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml
index 8418dcace..bf84ee17c 100644
--- a/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml
+++ b/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml
@@ -3,7 +3,7 @@
org.springdoc
springdoc-openapi-tests
- 2.8.17-SNAPSHOT
+ 2.8.18-SNAPSHOT
springdoc-openapi-security-tests
${project.artifactId}
From dda7ba0b0909867f0fe754a9e4128990a92d6643 Mon Sep 17 00:00:00 2001
From: Mattias-Sehlstedt <60173714+Mattias-Sehlstedt@users.noreply.github.com>
Date: Mon, 4 May 2026 17:20:58 +0200
Subject: [PATCH 2/2] Upgrade swagger-core from version 2.2.48 to 2.2.49
---
pom.xml | 2 +-
.../springdoc/api/AbstractOpenApiResource.java | 17 -----------------
.../core/providers/ObjectMapperProvider.java | 5 -----
.../springdoc/core/utils/SpringDocUtils.java | 2 ++
.../src/test/resources/results/3.1.0/app18.json | 3 ++-
5 files changed, 5 insertions(+), 24 deletions(-)
diff --git a/pom.xml b/pom.xml
index a93c9a51f..a7a094031 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
0.7.0
1.5.0
- 2.2.48
+ 2.2.49
5.32.2
1.13.1
0.9.1
diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java
index 9b6d5ffa5..f9cddd859 100644
--- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java
+++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java
@@ -385,9 +385,6 @@ protected OpenAPI getOpenApi(String serverBaseUrl, Locale locale) {
}
getPaths(mappingsMap, finalLocale, openAPI);
- if (OpenApiVersion.OPENAPI_3_1 == springDocConfigProperties.getApiDocs().getVersion())
- handleComponentSchemaTypes(openAPI);
-
if (springDocConfigProperties.isTrimKotlinIndent())
this.trimIndent(openAPI);
@@ -458,20 +455,6 @@ private void trimIndent(OpenAPI openAPI) {
trimPaths(openAPI);
}
- /**
- * Fix component schemas for OAS 3.1 post-processing.
- *
- * @param openAPI the open api
- */
- private static void handleComponentSchemaTypes(OpenAPI openAPI) {
- if (openAPI.getComponents() == null || openAPI.getComponents().getSchemas() == null) {
- return;
- }
- for (Schema> schema : openAPI.getComponents().getSchemas().values()) {
- SpringDocUtils.fixNullOnlyAdditionalProperties(schema);
- }
- }
-
/**
* Trim the indent for descriptions in the 'components' of open api.
*
diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java
index 9b5962438..11124f58e 100644
--- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java
+++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java
@@ -35,7 +35,6 @@
import io.swagger.v3.core.util.Yaml;
import io.swagger.v3.core.util.Yaml31;
import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.core.util.PrimitiveType;
import io.swagger.v3.oas.models.media.Schema;
import org.springdoc.core.mixins.SortedOpenAPIMixin;
import org.springdoc.core.mixins.SortedOpenAPIMixin31;
@@ -81,14 +80,10 @@ public ObjectMapperProvider(SpringDocConfigProperties springDocConfigProperties)
if (springDocConfigProperties.isExplicitObjectSchema()) {
System.setProperty(Schema.EXPLICIT_OBJECT_SCHEMA_PROPERTY, "true");
}
- else {
- PrimitiveType.explicitObjectType = false;
- }
}
else {
jsonMapper = Json.mapper();
yamlMapper = Yaml.mapper();
- PrimitiveType.explicitObjectType = null;
}
}
diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java
index e705d1b09..7441f5a51 100644
--- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java
+++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java
@@ -187,6 +187,8 @@ else if (schema.getItems() != null && schema.getItems().getType() != null
/**
* Fix additionalProperties incorrectly set to {"type": "null"} when @Nullable
* propagates from a Map field to its Object value type (resolved as "any type" = {}).
+ *
+ * Tracked under swagger-core#5115.
*
* @param schema the schema to fix
*/
diff --git a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json
index 414562e3a..fe57b40c4 100644
--- a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json
+++ b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json
@@ -68,7 +68,8 @@
"schema": {
"type": "integer",
"format": "int32",
- "exclusiveMinimum": 0
+ "exclusiveMinimum": 0,
+ "minimum": 0
}
}
],