Author: olamy
Date: Thu Dec 13 10:25:23 2012
New Revision: 1421195

URL: http://svn.apache.org/viewvc?rev=1421195&view=rev
Log:
fix some NPE if not writable userManager

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java?rev=1421195&r1=1421194&r2=1421195&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaConfigurableUsersManager.java
 Thu Dec 13 10:25:23 2012
@@ -111,9 +111,10 @@ public class ArchivaConfigurableUsersMan
         throws UserManagerException
     {
         UserManager userManager = findFirstWritable();
-        if ( userManager == null )
+        if ( userManager.isReadOnly() )
         {
-            throw new RuntimeException( "impossible to find a writable 
userManager" );
+            log.warn( "cannot find writable user manager implementation, skip 
user creation" );
+            return null;
         }
         return userManager.createUser( username, fullName, emailAddress );
     }
@@ -121,7 +122,7 @@ public class ArchivaConfigurableUsersMan
     @Override
     public UserQuery createUserQuery()
     {
-        return super.createUserQuery();    //To change body of overridden 
methods use File | Settings | File Templates.
+        return super.createUserQuery();
     }
 
 
@@ -130,9 +131,10 @@ public class ArchivaConfigurableUsersMan
         throws UserNotFoundException, UserManagerException
     {
         UserManager userManager = findFirstWritable();
-        if ( userManager == null )
+        if ( userManager.isReadOnly() )
         {
-            throw new RuntimeException( "impossible to find a writable 
userManager" );
+            log.warn( "cannot find writable user manager implementation, skip 
delete user" );
+            return;
         }
         userManager.deleteUser( username );
     }
@@ -325,8 +327,7 @@ public class ArchivaConfigurableUsersMan
     @Override
     public boolean isReadOnly()
     {
-        //olamy: must be it depends :-)
-        return true;
+        return findFirstWritable() != null;
     }
 
     @Override
@@ -402,7 +403,13 @@ public class ArchivaConfigurableUsersMan
     public User createGuestUser()
         throws UserManagerException
     {
-        return findFirstWritable().createGuestUser();
+        UserManager userManager = findFirstWritable();
+        if ( userManager.isReadOnly() )
+        {
+            log.warn( "cannot find writable user manager implementation, skip 
guest user creation" );
+            return null;
+        }
+        return userManager.createGuestUser();
     }
 
     @Override


Reply via email to