]> WPIA git - gigi.git/blobdiff - src/club/wpia/gigi/ocsp/OCSPIssuerManager.java
fix: prevent possible NPE on failure to list the CA directory
[gigi.git] / src / club / wpia / gigi / ocsp / OCSPIssuerManager.java
index 852968641e69ff379cfad5bfbbed1d77c4086b73..400737f05767a61b06de8db6a4a4fd959bab074a 100644 (file)
@@ -75,7 +75,7 @@ public class OCSPIssuerManager implements Runnable {
     }
 
     private void index(AlgorithmId aid, MessageDigest md, Map<String, OCSPIssuer> toServe, Map<AlgorithmId, Map<OCSPIssuerId, OCSPIssuer>> map) {
-        OCSPResponder.log.info("Indexing OCSP issuers for " + md);
+        OCSPResponder.log.fine("Indexing OCSP issuers for " + md);
         HashMap<OCSPIssuerId, OCSPIssuer> issuers = new HashMap<>();
         for (OCSPIssuer i : toServe.values()) {
             issuers.put(new OCSPIssuerId(aid, md, i.getTarget()), i);
@@ -97,9 +97,15 @@ public class OCSPIssuerManager implements Runnable {
      */
     private void scanAndUpdateCAs(File f, KeyStore keys, Map<String, OCSPIssuer> toServe) {
         if (f.isDirectory()) {
-            for (File f1 : f.listFiles()) {
-                scanAndUpdateCAs(f1, keys, toServe);
+            File[] list = f.listFiles();
+            if (list == null) {
+                return;
+            }
+
+            for (File file : list) {
+                scanAndUpdateCAs(file, keys, toServe);
             }
+
             return;
         }
         if ( !f.getName().equals("ca.crt")) {
@@ -107,7 +113,6 @@ public class OCSPIssuerManager implements Runnable {
         }
         try {
             String keyName = f.getParentFile().getName();
-            OCSPResponder.log.info("CA: " + keyName);
             updateCA(f, keyName, keys, toServe);
         } catch (GeneralSecurityException e) {
             e.printStackTrace();
@@ -169,7 +174,7 @@ public class OCSPIssuerManager implements Runnable {
                 long deltas = expiery.getTime() - now.getTime();
                 deltas /= 1000;
                 deltas /= 60 * 60 * 24;
-                OCSPResponder.log.info("Remaining days for OCSP certificate: " + deltas);
+                OCSPResponder.log.fine("Remaining days for OCSP certificate: " + deltas);
                 if (deltas > 30 * 3) {
                     return;
                 }
@@ -195,7 +200,7 @@ public class OCSPIssuerManager implements Runnable {
         ocspCsr.delete();
         ocspCrt.delete();
         String csr = PEM.encode("CERTIFICATE REQUEST", p10.getEncoded());
-        try (Writer w = new OutputStreamWriter(new FileOutputStream(ocspCsr), "UTF-8")) {
+        try (FileOutputStream fos = new FileOutputStream(ocspCsr); Writer w = new OutputStreamWriter(fos, "UTF-8")) {
             w.write(csr);
         }
     }