From acb6e29f819730f33301f8e3bcb6e1713e06d249 Mon Sep 17 00:00:00 2001 From: Jacek Centkowski Date: Mon, 20 Jun 2016 18:02:05 +0200 Subject: [PATCH] Fix SSH keys migration to MetaData Issue: When user's keys are migrated they are always marked as invalid. There is an error in 'valid' field migration. It relies on getBoolean implementation that returns 'true' only in case when char value is '1'. Current table definition specifies 'Y' and 'N' values hence it cannot be evaluated to 'true'. Solution: Introduce mapping function that returns boolean value according to 'Y', 'N' values. Change-Id: I08310f85f720b3c95ffb4317c6909fbad581d7b6 Signed-off-by: Jacek Centkowski --- .../java/com/google/gerrit/server/schema/Schema_124.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java index 6354b68e4f..8791c96690 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_124.java @@ -15,6 +15,7 @@ package com.google.gerrit.server.schema; import com.google.common.base.Function; +import com.google.common.base.Strings; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; import com.google.common.collect.Ordering; @@ -84,7 +85,7 @@ public class Schema_124 extends SchemaVersion { String sshPublicKey = rs.getString(3); AccountSshKey key = new AccountSshKey( new AccountSshKey.Id(accountId, seq), sshPublicKey); - boolean valid = rs.getBoolean(4); + boolean valid = toBoolean(rs.getString(4)); if (!valid) { key.setInvalid(); } @@ -143,4 +144,8 @@ public class Schema_124 extends SchemaVersion { } return fixedKeys; } + + private static boolean toBoolean(String v) { + return !Strings.isNullOrEmpty(v) && v.equalsIgnoreCase("Y"); + } }