From 0b086146ffd70574b1069056e35bb11a1d782407 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 07 May 2013 08:09:07 -0400
Subject: [PATCH] [authority] Clear user selection on filter change

---
 src/main/java/com/gitblit/authority/GitblitAuthority.java       |    2 ++
 src/main/java/com/gitblit/authority/UserOidsPanel.java          |   16 ++++++++--------
 src/main/java/com/gitblit/authority/CertificatesTableModel.java |    3 +++
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/gitblit/authority/CertificatesTableModel.java b/src/main/java/com/gitblit/authority/CertificatesTableModel.java
index 44d80e3..333836d 100644
--- a/src/main/java/com/gitblit/authority/CertificatesTableModel.java
+++ b/src/main/java/com/gitblit/authority/CertificatesTableModel.java
@@ -138,6 +138,9 @@
 	
 	public void setUserCertificateModel(UserCertificateModel ucm) {
 		this.ucm = ucm;
+		if (ucm == null) {
+			return;
+		}
 		Collections.sort(ucm.certs, new Comparator<X509Certificate>() {
 			@Override
 			public int compare(X509Certificate o1, X509Certificate o2) {
diff --git a/src/main/java/com/gitblit/authority/GitblitAuthority.java b/src/main/java/com/gitblit/authority/GitblitAuthority.java
index 1c0c142..e0b079e 100644
--- a/src/main/java/com/gitblit/authority/GitblitAuthority.java
+++ b/src/main/java/com/gitblit/authority/GitblitAuthority.java
@@ -804,6 +804,8 @@
 	}
 	
 	private void filterUsers(final String fragment) {
+		table.clearSelection();
+		userCertificatePanel.setUserCertificateModel(null);
 		if (StringUtils.isEmpty(fragment)) {
 			table.setRowSorter(defaultSorter);
 			return;
diff --git a/src/main/java/com/gitblit/authority/UserOidsPanel.java b/src/main/java/com/gitblit/authority/UserOidsPanel.java
index 8c3adf6..5a33b3f 100644
--- a/src/main/java/com/gitblit/authority/UserOidsPanel.java
+++ b/src/main/java/com/gitblit/authority/UserOidsPanel.java
@@ -61,14 +61,14 @@
 	
 	public void setUserCertificateModel(UserCertificateModel ucm) {
 		setEditable(false);
-		displayname.setText(ucm.user.getDisplayName());
-		username.setText(ucm.user.username);
-		emailAddress.setText(ucm.user.emailAddress);
-		organizationalUnit.setText(ucm.user.organizationalUnit);
-		organization.setText(ucm.user.organization);
-		locality.setText(ucm.user.locality);
-		stateProvince.setText(ucm.user.stateProvince);
-		countryCode.setText(ucm.user.countryCode);
+		displayname.setText(ucm == null ? "" : ucm.user.getDisplayName());
+		username.setText(ucm == null ? "" : ucm.user.username);
+		emailAddress.setText(ucm == null ? "" : ucm.user.emailAddress);
+		organizationalUnit.setText(ucm == null ? "" : ucm.user.organizationalUnit);
+		organization.setText(ucm == null ? "" : ucm.user.organization);
+		locality.setText(ucm == null ? "" : ucm.user.locality);
+		stateProvince.setText(ucm == null ? "" : ucm.user.stateProvince);
+		countryCode.setText(ucm == null ? "" : ucm.user.countryCode);
 	}
 	
 	public void setEditable(boolean editable) {

--
Gitblit v1.9.1