SLING-8765 : Cache jackrabbit session check
diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResourceFactory.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResourceFactory.java
index e582011..abdef92 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResourceFactory.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrItemResourceFactory.java
@@ -47,9 +47,12 @@
 
     private final HelperData helper;
 
-    public JcrItemResourceFactory(Session session, HelperData helper) {
+    private final boolean isJackrabbit;
+
+    public JcrItemResourceFactory(final Session session, final HelperData helper) {
         this.helper = helper;
         this.session = session;
+        this.isJackrabbit = session instanceof JackrabbitSession;
     }
 
     /**
@@ -180,7 +183,7 @@
         Item item = null;
         try {
          // Use fast getItemOrNull if session is a JackrabbitSession
-            if (session instanceof JackrabbitSession) {
+            if (this.isJackrabbit) {
                 item = ((JackrabbitSession) session).getItemOrNull(path);
             }
             // Fallback to slower itemExists & getItem pattern