SLING-7517 - fix fake request object memory leak for interface-based models.
diff --git a/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java b/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
index 9fcdb12..3f50ad8 100644
--- a/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
+++ b/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
@@ -606,8 +606,9 @@
if (!registry.callbacks.isEmpty()) {
registry.seal();
- if (adaptable instanceof ServletRequest) {
- registerRequestCallbackRegistry((ServletRequest) adaptable, registry);
+ if (adaptable instanceof SlingHttpServletRequest &&
+ ((SlingHttpServletRequest) adaptable).getAttribute(REQUEST_MARKER_ATTRIBUTE) == REQUEST_MARKER_VALUE) {
+ registerRequestCallbackRegistry((SlingHttpServletRequest) adaptable, registry);
} else {
registerCallbackRegistry(handler, registry);
}