SLING-11362 Prevent potential ClassCastException in tearDown (#13)
diff --git a/core/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java b/core/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
index a8b0b48..029d84a 100644
--- a/core/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
+++ b/core/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java
@@ -217,9 +217,9 @@
protected void tearDown() {
if (this.request != null) {
- MockSlingBindings slingBindings = (MockSlingBindings)this.request.getAttribute(SlingBindings.class.getName());
- if (slingBindings != null) {
- slingBindings.tearDown();
+ SlingBindings slingBindings = (SlingBindings)this.request.getAttribute(SlingBindings.class.getName());
+ if (slingBindings instanceof MockSlingBindings) {
+ ((MockSlingBindings)slingBindings).tearDown();
}
}
diff --git a/core/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java b/core/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java
index a40c75f..65e0b43 100644
--- a/core/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java
+++ b/core/src/test/java/org/apache/sling/testing/mock/sling/context/AbstractSlingContextImplTest.java
@@ -83,6 +83,14 @@
}
@Test
+ public void testNonMockedSlingBindings() {
+ final SlingBindings slingBindings = new SlingBindings();
+ context.request().setAttribute(SlingBindings.class.getName(), slingBindings);
+ SlingBindings bindings = (SlingBindings) context.request().getAttribute(SlingBindings.class.getName());
+ assertNotNull(bindings);
+ }
+
+ @Test
public void testSetCurrentResource() {
context.currentResource("/content/sample/en/jcr:content/par/colctrl");
assertEquals("/content/sample/en/jcr:content/par/colctrl", context.currentResource().getPath());