From 3ecf5819c28cd06f004a6deb35e46df2d6197413 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Tue, 29 Jul 2008 10:11:57 +0000
Subject: [PATCH] Fix or indicate possible null pointer dereferencing detected by FindBugs

---
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java           |    2 +-
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java            |    1 +
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java |    1 +
 opendj-sdk/opends/src/server/org/opends/server/backends/LDIFBackend.java             |    1 +
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SortValuesSet.java       |    1 +
 opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java           |   18 ++++++++++--------
 6 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/LDIFBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/LDIFBackend.java
index dfc372f..b2e7428 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/LDIFBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/LDIFBackend.java
@@ -636,6 +636,7 @@
         else
         {
           DN matchedDN = null;
+          // BUG: parentDN can be null when entering the loop
           while (true)
           {
             parentDN = parentDN.getParentDNInSuffix();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
index 225d41a..d1e1a05 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
@@ -4235,7 +4235,8 @@
           AttributeType attrType = AttributeTypeSyntax.decodeAttributeType(
               v.getValue(), schema, false);
           String schemaFile = attrType.getSchemaFile();
-          if (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE))
+          if ((schemaFile != null) &&
+              (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE)))
           {
             // Don't import the file containing the definitions of the
             // Schema elements used for configuration because these
@@ -4287,7 +4288,8 @@
     for (AttributeType removeType : currentAttrTypes.values())
     {
       String schemaFile = removeType.getSchemaFile();
-      if (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE))
+      if ((schemaFile != null) &&
+           (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE)))
       {
         // Don't import the file containing the definitiong of the
         // Schema elements used for configuration because these
@@ -4297,10 +4299,9 @@
       if (!oidList.contains(removeType.getOID()))
       {
         newSchema.deregisterAttributeType(removeType);
-
         if (schemaFile != null)
         {
-          modifiedSchemaFiles.add(schemaFile);
+              modifiedSchemaFiles.add(schemaFile);
         }
       }
     }
@@ -4349,7 +4350,8 @@
           ObjectClass newObjectClass = ObjectClassSyntax.decodeObjectClass(
               v.getValue(), newSchema, true);
           String schemaFile = newObjectClass.getSchemaFile();
-          if (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE))
+          if ((schemaFile != null) &&
+              (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE)))
           {
             // Don't import the file containing the definitions of the
             // Schema elements used for configuration because these
@@ -4406,7 +4408,8 @@
     for (ObjectClass removeClass : currentObjectClasses.values())
     {
       String schemaFile = removeClass.getSchemaFile();
-      if (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE))
+      if ((schemaFile != null) &&
+          (schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE)))
       {
         // Don't import the file containing the definitiong of the
         // Schema elements used for configuration because these
@@ -5276,8 +5279,7 @@
           logError(message);
         }
 
-        Message message = ERR_SCHEMA_RESTORE_SIGNED_HASH_INVALID.get(
-              schemaBackupDir.getPath());
+        Message message = ERR_SCHEMA_RESTORE_SIGNED_HASH_INVALID.get(backupID);
         throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
                                      message);
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java
index 081138c..9ef11f0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryCachePreloader.java
@@ -353,6 +353,7 @@
                 continue;
               }
             }
+            // BUG cursor might be null ? If not why testing below ?
             status = cursor.getNext(key, data, LockMode.DEFAULT);
             if (status != OperationStatus.SUCCESS) {
               // Reset cursor and continue.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SortValuesSet.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SortValuesSet.java
index 5b3ae59..98beeff 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SortValuesSet.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/SortValuesSet.java
@@ -180,6 +180,7 @@
       updatedEntryIDs[pos] = entryID;
 
       byte[] newValuesBytes = attributeValuesToDatabase(values);
+      // BUG valuesBytesOffsets might be null ? If not why testing below ?
       int valuesPos = valuesBytesOffsets[pos];
       byte[] updatedValuesBytes = new byte[valuesBytes.length +
           newValuesBytes.length];
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java
index a9688dc..b1ceb15 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -1885,6 +1885,7 @@
             resultCode = ResultCode.INVALID_ATTRIBUTE_SYNTAX;
           }
         }
+        // BUG: attrType may be NULL
         sortKeys[i] = new SortKey(attrType, ascending[i]);
         orderingRules[i] = attrType.getOrderingMatchingRule();
       }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
index df12add..5c21a27 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VerifyJob.java
@@ -1798,7 +1798,7 @@
     DatabaseEntry presenceKey = AttributeIndex.presenceKey;
 
     // Presence index.
-    if (!attrList.isEmpty() && presenceIndex != null)
+    if ((attrList != null) && !attrList.isEmpty() && presenceIndex != null)
     {
       try
       {

--
Gitblit v1.10.0