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"); } }
