From 33f618629c8cfa8b92b913b047575d4166a091f3 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Mon, 02 Jun 2008 08:44:47 +0000
Subject: [PATCH] Fix for issue 3307 (NullPointerException in ADSContext when no certificate defined)
---
opends/src/ads/org/opends/admin/ads/ADSContext.java | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/opends/src/ads/org/opends/admin/ads/ADSContext.java b/opends/src/ads/org/opends/admin/ads/ADSContext.java
index fb5a95b..1621110 100644
--- a/opends/src/ads/org/opends/admin/ads/ADSContext.java
+++ b/opends/src/ads/org/opends/admin/ads/ADSContext.java
@@ -789,16 +789,25 @@
try
{
SearchControls sc1 = new SearchControls();
-
sc1.setSearchScope(SearchControls.ONELEVEL_SCOPE);
final String attrIDs[] = { "ds-cfg-public-key-certificate;binary" };
sc1.setReturningAttributes(attrIDs);
- SearchResult certEntry =
- dirContext.search(getInstanceKeysContainerDN(),
- "(ds-cfg-key-id="+keyId+")", sc).next();
- Attribute certAttr = certEntry.getAttributes().get(attrIDs[0]);
- properties.put(ServerProperty.INSTANCE_PUBLIC_KEY_CERTIFICATE,
- certAttr.get());
+
+ NamingEnumeration<SearchResult> ne2 = dirContext.search(
+ getInstanceKeysContainerDN(),
+ "(ds-cfg-key-id="+keyId+")", sc);
+ if (ne2.hasMore())
+ {
+ SearchResult certEntry = ne2.next();
+ Attribute certAttr = certEntry.getAttributes().get(attrIDs[0]);
+ properties.put(ServerProperty.INSTANCE_PUBLIC_KEY_CERTIFICATE,
+ certAttr.get());
+ }
+ else
+ {
+ LOG.log(Level.WARNING, "Could not find public key for "+
+ properties);
+ }
}
catch (NameNotFoundException x)
{
--
Gitblit v1.10.0