Added logging changes for people who don't know how to use log4j.
Added catch for duplicate usernames.


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/afe0c51d
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/afe0c51d
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/afe0c51d

Branch: refs/heads/1.x
Commit: afe0c51d67ca1d3f262890ec44363200128e7361
Parents: 6e2ff96
Author: George Reyes <[email protected]>
Authored: Mon Oct 19 16:52:52 2015 -0700
Committer: George Reyes <[email protected]>
Committed: Mon Oct 19 16:52:52 2015 -0700

----------------------------------------------------------------------
 .../apache/usergrid/tools/AdminPointerFix.java   | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/afe0c51d/stack/tools/src/main/java/org/apache/usergrid/tools/AdminPointerFix.java
----------------------------------------------------------------------
diff --git 
a/stack/tools/src/main/java/org/apache/usergrid/tools/AdminPointerFix.java 
b/stack/tools/src/main/java/org/apache/usergrid/tools/AdminPointerFix.java
index 72ae4d7..6243571 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/AdminPointerFix.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/AdminPointerFix.java
@@ -38,6 +38,7 @@ import org.apache.usergrid.persistence.Results;
 import org.apache.usergrid.persistence.cassandra.CassandraService;
 import org.apache.usergrid.persistence.entities.Application;
 import org.apache.usergrid.persistence.entities.User;
+import 
org.apache.usergrid.persistence.exceptions.DuplicateUniquePropertyExistsException;
 
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Multimap;
@@ -78,6 +79,7 @@ public class AdminPointerFix extends ExportingToolBase {
         startSpring();
 
         logger.info( "Starting crawl of all admins" );
+        System.out.println( "Starting crawl of all admins" );
 
         EntityManager em = emf.getEntityManager( 
CassandraService.MANAGEMENT_APPLICATION_ID );
         Application app = em.getApplication();
@@ -115,6 +117,8 @@ public class AdminPointerFix extends ExportingToolBase {
 
             if ( ids.size() > 1 ) {
                 logger.info( "Found multiple users with the username {}", 
username );
+                System.out.println("Found multiple users with the username"+ 
username+". Run DupAdmiRepair.");
+
             }
         }
 
@@ -123,6 +127,8 @@ public class AdminPointerFix extends ExportingToolBase {
 
             if ( ids.size() > 1 ) {
                 logger.info( "Found multiple users with the email {}", email );
+                System.out.println("Found multiple users with the username"+ 
email+". Run DupAdmiRepair.");
+
             }
 
 
@@ -136,13 +142,24 @@ public class AdminPointerFix extends ExportingToolBase {
                 UUID toLoad = tempIds.get( 0 );
 
                 logger.warn( "Could not load target user by email {}, loading 
by UUID {} instead", email, toLoad );
+                System.out.println("Could not load the target user by email: 
"+email+". Loading by the following uuid instead: "+toLoad.toString());
                 targetUser = managementService.getAdminUserByUuid( toLoad );
                 User targetUserEntity = em.get( targetUser.getUuid(), 
User.class );
-                em.update( targetUserEntity );
+                try {
+                    em.update( targetUserEntity );
+                }catch(DuplicateUniquePropertyExistsException dup){
+                    System.out.println("Found duplicate unique property: 
"+dup.getPropertyName()+ ". Duplicate property is: "+dup.getPropertyValue());
+                    if (dup.getPropertyName().equals( "username" )){
+                       targetUserEntity.setUsername( 
targetUserEntity.getEmail() );
+                    }
+                    else
+                        throw dup;
+                }
 
             }
         }
 
         logger.info( "Repair complete" );
+        System.out.println("Repair Complete");
     }
 }

Reply via email to