Skip to content

Commit 66a0fb1

Browse files
committed
ContinuationObject leaks into schema. Fixes #1961
1 parent 632f87c commit 66a0fb1

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/converters/AdditionalModelsConverter.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,21 @@ public Schema resolve(AnnotatedType type, ModelConverterContext context, Iterato
155155
return (chain.hasNext()) ? chain.next().resolve(type, context, chain) : null;
156156
}
157157

158+
/**
159+
* Remove from schema map.
160+
*
161+
* @param clazz the clazz
162+
*/
163+
public static void removeFromSchemaMap(Class clazz) {
164+
modelToSchemaMap.remove(clazz);
165+
}
166+
167+
/**
168+
* Remove from class map.
169+
*
170+
* @param clazz the clazz
171+
*/
172+
public static void removeFromClassMap(Class clazz) {
173+
modelToClassMap.remove(clazz);
174+
}
158175
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,5 +330,27 @@ public SpringDocUtils setModelAndViewClass(Class<?> clazz) {
330330
AbstractOpenApiResource.setModelAndViewClass(clazz);
331331
return this;
332332
}
333+
334+
/**
335+
* Remove from schema map spring doc utils.
336+
*
337+
* @param clazzs the clazzs
338+
* @return the spring doc utils
339+
*/
340+
public SpringDocUtils removeFromSchemaMap(Class<?> clazzs) {
341+
AdditionalModelsConverter.removeFromSchemaMap(clazzs);
342+
return this;
343+
}
344+
345+
/**
346+
* Remove from schema class spring doc utils.
347+
*
348+
* @param clazzs the clazzs
349+
* @return the spring doc utils
350+
*/
351+
public SpringDocUtils removeFromSchemaClass(Class<?> clazzs) {
352+
AdditionalModelsConverter.removeFromClassMap(clazzs);
353+
return this;
354+
}
333355
}
334356

springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v30/app114/SpringDocApp114Test.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
package test.org.springdoc.api.v30.app114;
2626

27+
import java.math.BigDecimal;
28+
2729
import javax.money.MonetaryAmount;
2830

2931
import org.springdoc.core.utils.SpringDocUtils;
@@ -35,7 +37,9 @@
3537
public class SpringDocApp114Test extends AbstractSpringDocV30Test {
3638

3739
static {
38-
SpringDocUtils.getConfig().replaceWithClass(MonetaryAmount.class, org.springdoc.core.converters.models.MonetaryAmount.class);
40+
SpringDocUtils.getConfig()
41+
.removeFromSchemaMap(BigDecimal.class)
42+
.replaceWithClass(MonetaryAmount.class, org.springdoc.core.converters.models.MonetaryAmount.class);
3943
}
4044

4145
@SpringBootApplication

0 commit comments

Comments
 (0)