You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/09/21 16:29:52 UTC

svn commit: r290710 - /cocoon/blocks/jcr/trunk/java/org/apache/cocoon/jcr/AbstractRepository.java

Author: sylvain
Date: Wed Sep 21 07:29:48 2005
New Revision: 290710

URL: http://svn.apache.org/viewcvs?rev=290710&view=rev
Log:
We do not always have an object model at hand

Modified:
    cocoon/blocks/jcr/trunk/java/org/apache/cocoon/jcr/AbstractRepository.java

Modified: cocoon/blocks/jcr/trunk/java/org/apache/cocoon/jcr/AbstractRepository.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/jcr/trunk/java/org/apache/cocoon/jcr/AbstractRepository.java?rev=290710&r1=290709&r2=290710&view=diff
==============================================================================
--- cocoon/blocks/jcr/trunk/java/org/apache/cocoon/jcr/AbstractRepository.java (original)
+++ cocoon/blocks/jcr/trunk/java/org/apache/cocoon/jcr/AbstractRepository.java Wed Sep 21 07:29:48 2005
@@ -252,9 +252,17 @@
     // =============================================================================================
 
     private Session getCachedSession(String workspace) {
+        Map objectModel;
+        try {
+            objectModel = ContextHelper.getObjectModel(context);
+        } catch(Exception e) {
+            // We don't have an object model (happens e.g. at init time or in a cron job)
+            return null;
+        }
+
         String attributeName = workspace == null ?
                 JCR_SESSION_REQUEST_ATTRIBUTE : JCR_SESSION_REQUEST_ATTRIBUTE + "/" + workspace;
-        Map objectModel = ContextHelper.getObjectModel(context);
+
         Request request = ObjectModelHelper.getRequest(objectModel);
         Session session = (Session) request.getAttribute(attributeName);
 
@@ -262,17 +270,33 @@
     }
 
     private void cacheSession(Session session, String workspace) {
+        Map objectModel;
+        try {
+            objectModel = ContextHelper.getObjectModel(context);
+        } catch(Exception e) {
+            // We don't have an object model (happens e.g. at init time or in a cron job)
+            return;
+        }
+
         String attributeName = workspace == null ?
                 JCR_SESSION_REQUEST_ATTRIBUTE : JCR_SESSION_REQUEST_ATTRIBUTE + "/" + workspace;
-        Map objectModel = ContextHelper.getObjectModel(context);
+
         Request request = ObjectModelHelper.getRequest(objectModel);
         request.setAttribute(attributeName, session);
     }
 
     private Credentials getCredentials() throws LoginException {
         if (this.loginResolver != null) {
+
+            Map objectModel;
+            try {
+                objectModel = ContextHelper.getObjectModel(context);
+            } catch(Exception e) {
+                // We don't have an object model (happens e.g. at init time or in a cron job)
+                throw new LoginException("No objectModel to evaluate credentials", e);
+            }
+
             try {
-                Map objectModel = ContextHelper.getObjectModel(context);
                 String login = this.loginResolver.resolve(objectModel);
                 String password = this.loginResolver.resolve(objectModel);
                 return new SimpleCredentials(login, password.toCharArray());