You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/12/18 01:32:07 UTC

svn commit: r1050551 - /jackrabbit/trunk/jackrabbit-webapp/src/main/java/org/apache/jackrabbit/j2ee/RepositoryStartupServlet.java

Author: jukka
Date: Sat Dec 18 00:32:07 2010
New Revision: 1050551

URL: http://svn.apache.org/viewvc?rev=1050551&view=rev
Log:
JCR-2850: RMI problems prevent proper startup of the Jackrabbit webapp

Catch all RMI exceptions and just log warnings for them.

Modified:
    jackrabbit/trunk/jackrabbit-webapp/src/main/java/org/apache/jackrabbit/j2ee/RepositoryStartupServlet.java

Modified: jackrabbit/trunk/jackrabbit-webapp/src/main/java/org/apache/jackrabbit/j2ee/RepositoryStartupServlet.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webapp/src/main/java/org/apache/jackrabbit/j2ee/RepositoryStartupServlet.java?rev=1050551&r1=1050550&r2=1050551&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webapp/src/main/java/org/apache/jackrabbit/j2ee/RepositoryStartupServlet.java (original)
+++ jackrabbit/trunk/jackrabbit-webapp/src/main/java/org/apache/jackrabbit/j2ee/RepositoryStartupServlet.java Sat Dec 18 00:32:07 2010
@@ -483,7 +483,7 @@ public class RepositoryStartupServlet ex
      * the repository with an RMI registry.
      * @throws ServletException if an error occurs.
      */
-    private void registerRMI() throws ServletException {
+    private void registerRMI() {
         RMIConfig rc = config.getRmiConfig();
         if (!rc.isValid() || !rc.enabled()) {
             return;
@@ -492,16 +492,16 @@ public class RepositoryStartupServlet ex
         // try to create remote repository
         Remote remote;
         try {
-            Class clazz = Class.forName(getRemoteFactoryDelegaterClass());
+            Class<?> clazz = Class.forName(getRemoteFactoryDelegaterClass());
             RemoteFactoryDelegater rmf = (RemoteFactoryDelegater) clazz.newInstance();
             remote = rmf.createRemoteRepository(repository);
         } catch (RemoteException e) {
-            log.error("Unable to create RMI repository.", e);
-            throw new ServletExceptionWithCause("Unable to create remote repository.", e);
+            log.warn("Unable to create RMI repository.", e);
+            return;
         } catch (Throwable t) {
-            log.error("Unable to create RMI repository.", t);
-            throw new ServletExceptionWithCause(
-                    "Unable to create RMI repository. jcr-rmi.jar might be missing.", t);
+            log.warn("Unable to create RMI repository."
+                    + " The jcr-rmi jar might be missing.", t);
+            return;
         }
 
         try {
@@ -551,7 +551,7 @@ public class RepositoryStartupServlet ex
                 try {
                     reg = LocateRegistry.getRegistry(rc.getRmiHost(), rc.rmiPort());
                 } catch (RemoteException re) {
-                    log.error("Cannot create the reference to the registry at "
+                    log.warn("Cannot create the reference to the registry at "
                             + rc.getRmiHost() + ":" + rc.getRmiPort(), re);
                 }
             }
@@ -569,13 +569,10 @@ public class RepositoryStartupServlet ex
             } else {
                 log.info("RMI registry missing, cannot bind repository via RMI");
             }
-
         } catch (RemoteException e) {
-            throw new ServletExceptionWithCause(
-                    "Unable to bind repository via RMI: " + rc.getRmiUri(), e);
+            log.warn("Unable to bind repository via RMI: " + rc.getRmiUri(), e);
         } catch (AlreadyBoundException e) {
-            throw new ServletExceptionWithCause(
-                    "Unable to bind repository via RMI: " + rc.getRmiUri(), e);
+            log.warn("Unable to bind repository via RMI: " + rc.getRmiUri(), e);
         }
     }