[Mulgara-svn] r2029 - in trunk/src/jar: ant-task/java/org/mulgara/ant/task/rdf content-mbox/java/org/mulgara/content/mbox content-mbox/java/org/mulgara/content/mbox/parser content-mbox/java/org/mulgara/content/mbox/parser/config query/java/org/mulgara/connection resolver/java/org/mulgara/resolver resolver-store/java/org/mulgara/store/statement/xa resolver-store/java/org/mulgara/store/statement/xa11 server/java/org/mulgara/server server-rmi/java/org/mulgara/server/rmi store-nodepool-xa/java/org/mulgara/store/nodepool/xa store-stringpool-xa/java/org/mulgara/store/stringpool/xa util/java/org/mulgara/util util-xa/java/org/mulgara/store/xa

alexhall at mulgara.org alexhall at mulgara.org
Thu Sep 15 17:24:18 UTC 2011


Author: alexhall
Date: 2011-09-15 17:24:18 +0000 (Thu, 15 Sep 2011)
New Revision: 2029

Modified:
   trunk/src/jar/ant-task/java/org/mulgara/ant/task/rdf/RDFLoadLog.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxContentHandler.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxStatements.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxFolderImpl.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxReader.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxStoreImpl.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MimeMessageToPart.java
   trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java
   trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java
   trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/XAStatementStoreImpl.java
   trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa11/XA11StatementStoreImpl.java
   trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java
   trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java
   trunk/src/jar/server/java/org/mulgara/server/ServletMulgaraServer.java
   trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImpl.java
   trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImplTest.java
   trunk/src/jar/store-stringpool-xa/java/org/mulgara/store/stringpool/xa/XAStringPoolImpl.java
   trunk/src/jar/util-xa/java/org/mulgara/store/xa/LockFile.java
   trunk/src/jar/util/java/org/mulgara/util/StringToLongMap.java
Log:
Code clean-up to fix issues identified by Fortify.

Modified: trunk/src/jar/ant-task/java/org/mulgara/ant/task/rdf/RDFLoadLog.java
===================================================================
--- trunk/src/jar/ant-task/java/org/mulgara/ant/task/rdf/RDFLoadLog.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/ant-task/java/org/mulgara/ant/task/rdf/RDFLoadLog.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -228,19 +228,21 @@
     if (logFile.exists()) {
 
       BufferedReader inReader = new BufferedReader(new FileReader(logFile));
-      String line = inReader.readLine();
+      try {
+        String line = inReader.readLine();
 
-      // Read in the files previously loaded.
-      while ((line != null) && (line.trim().length() != 0)) {
+        // Read in the files previously loaded.
+        while ((line != null) && (line.trim().length() != 0)) {
 
-        loadedFileSet.add(line);
+          loadedFileSet.add(line);
 
-        // Use list as well to keep files in same log order when written out again.
-        loadedList.add(line);
-        line = inReader.readLine();
+          // Use list as well to keep files in same log order when written out again.
+          loadedList.add(line);
+          line = inReader.readLine();
+        }
+      } finally {
+        inReader.close();
       }
-
-      inReader.close();
     }
 
     return loadedList;

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxContentHandler.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxContentHandler.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxContentHandler.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -71,7 +71,7 @@
 
   /** Logger. */
   @SuppressWarnings("unused")
-  private static Logger log = Logger.getLogger(MBoxContentHandler.class);
+  private static final Logger log = Logger.getLogger(MBoxContentHandler.class);
 
   /** Don't know our MIME type. */
   public Collection<MimeType> getContentTypes() {
@@ -173,7 +173,7 @@
       return false;
     }
 
-    if (!line.toLowerCase().startsWith("from ")) {
+    if (line == null || !line.toLowerCase().startsWith("from ")) {
       return false;
     } else {
 

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxStatements.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxStatements.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/MBoxStatements.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -69,7 +69,7 @@
 public class MBoxStatements extends AbstractTuples implements Statements {
 
   /** Logger. */
-  private static Logger logger =
+  private static final Logger logger =
       Logger.getLogger(MBoxStatements.class.getName());
 
   /** Column index for subjects */

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxFolderImpl.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxFolderImpl.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxFolderImpl.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -98,7 +98,7 @@
 {
 
   /** The category to log to. */
-  private static Logger logger = Logger.getLogger(MboxFolderImpl.class);
+  private static final Logger logger = Logger.getLogger(MboxFolderImpl.class);
 
   static final DateFormat df = new SimpleDateFormat("EEE MMM d H:m:s yyyy");
   public Flags permanentFlags = null;
@@ -275,7 +275,7 @@
       }
     }
     if (((MboxStore)store).getSession().getDebug())
-      System.err.println("DEBUG: mbox: closing "+getFile().getAbsolutePath());
+      logger.debug("mbox: closing "+getFile().getAbsolutePath());
   }
 
   /**
@@ -476,11 +476,12 @@
 
     case HOLDS_FOLDERS:
       try {
-        getFile().mkdirs();
+        if (getFile().mkdirs()) {
         this.type = type;
         notifyFolderListeners(FolderEvent.CREATED);
         return true;
-
+        }
+        throw new MessagingException("Could not create folder: " + getFile());
       } catch (SecurityException e) {
         throw new MessagingException("Access denied", e);
       }
@@ -490,15 +491,18 @@
         synchronized (this) {
           if (messages == null) messages = new ArrayList<Message>();
           OutputStream os = new BufferedOutputStream(getOutputStream());
-          Message[] m = this.collectionToMessageArray(this.messages);
-          for (int i = 0; i < m.length; i++) {
-            Address[] f = m[i].getFrom();
-            String top = "From " + ((f.length>0) ? f[0].toString() : "-") + " "+
-                df.format(m[i].getSentDate()) + "\n";
-            os.write(top.getBytes());
-            m[i].writeTo(os);
+          try {
+            Message[] m = this.collectionToMessageArray(this.messages);
+            for (int i = 0; i < m.length; i++) {
+              Address[] f = m[i].getFrom();
+              String top = "From " + ((f.length>0) ? f[0].toString() : "-") + " "+
+              df.format(m[i].getSentDate()) + "\n";
+              os.write(top.getBytes());
+              m[i].writeTo(os);
+            }
+          } finally {
+            os.close();
           }
-          os.close();
         }
         this.type = type;
         notifyFolderListeners(FolderEvent.CREATED);
@@ -680,28 +684,31 @@
           }
 
           OutputStream os = new BufferedOutputStream(getOutputStream());
-          MboxOutputStream mos = new MboxOutputStream(os);
+          try {
+            MboxOutputStream mos = new MboxOutputStream(os);
 
-          for (int i = 0; i < m.length; i++) {
-            Address[] f = m[i].getFrom();
-            String from = "-";
-            if (f.length > 0) {
-              if (f[0] instanceof InternetAddress) {
-                from = ((InternetAddress)f[0]).getAddress();
-              } else {
-                from = f[0].toString();
+            for (int i = 0; i < m.length; i++) {
+              Address[] f = m[i].getFrom();
+              String from = "-";
+              if (f.length > 0) {
+                if (f[0] instanceof InternetAddress) {
+                  from = ((InternetAddress)f[0]).getAddress();
+                } else {
+                  from = f[0].toString();
+                }
               }
+              Date date = m[i].getSentDate();
+              if (date == null) date = m[i].getReceivedDate();
+              if (date == null) date = new Date();
+
+              String top = "From " + from + " " + df.format(date) + "\n";
+              os.write(top.getBytes());
+              m[i].writeTo(mos);
+              mos.flush();
             }
-            Date date = m[i].getSentDate();
-            if (date == null) date = m[i].getReceivedDate();
-            if (date == null) date = new Date();
-
-            String top = "From " + from + " " + df.format(date) + "\n";
-            os.write(top.getBytes());
-            m[i].writeTo(mos);
-            mos.flush();
+          } finally {
+            os.close();
           }
-          os.close();
           fileLastModified = getFile().lastModified();
         } catch (IOException e) {
           throw new MessagingException("I/O error writing mailbox", e);

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxMessage.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -92,7 +92,7 @@
 public class MboxMessage extends MimeMessage {
 
   /** The category to log to. */
-  private static Logger logger = Logger.getLogger(MboxMessage.class);
+  private static final Logger logger = Logger.getLogger(MboxMessage.class);
 
   /**
    * The offset of the start of this message from the beginning of the file.
@@ -620,7 +620,7 @@
             message.getSize() == getSize() &&
             subjectsEqual(message.getSubject(), getSubject()));
       } catch (javax.mail.MessagingException me) {
-        me.printStackTrace();
+        logger.warn("Exception comparing messages", me);
       }
     }
     return isEqual;
@@ -635,9 +635,7 @@
    * @return the flags are equal.
    */
   public static boolean flagsEqual(Flags flag1, Flags flag2) {
-    return (((flag1 == null) && (flag2 == null)) ||
-            (flag1.equals(flag2))
-            );
+    return ObjectUtil.eq(flag1, flag2);
   }
 
   /**
@@ -675,9 +673,7 @@
    * @return the messages are equal.
    */
   public static boolean messageIdsEqual(String messageId1, String messageId2) {
-    return (((messageId1 == null) && (messageId2 == null)) ||
-            (messageId1.equals(messageId2))
-            );
+    return ObjectUtil.eq(messageId1, messageId2);
   }
 
   /**
@@ -689,9 +685,7 @@
    * @return the dates are equal.
    */
   public static boolean datesEqual(Date date1, Date date2) {
-    return (((date1 == null) && (date2 == null)) ||
-            (date1.equals(date2))
-            );
+    return ObjectUtil.eq(date1, date2);
   }
 
   /**
@@ -703,8 +697,6 @@
    * @return the subjects are equal.
    */
   public static boolean subjectsEqual(String subject1, String subject2) {
-    return (((subject1 == null) && (subject2 == null)) ||
-            (subject1.equals(subject2))
-            );
+    return ObjectUtil.eq(subject1, subject2);
   }
 }

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxReader.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxReader.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxReader.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -100,7 +100,7 @@
   private static final String INDEX_EXTENSION = ".idx";
 
   /** Log category */
-  private static Logger log = Logger.getLogger(MboxReader.class);
+  private static final Logger log = Logger.getLogger(MboxReader.class);
 
   private File file;
   private File indexFile;

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxStoreImpl.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxStoreImpl.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MboxStoreImpl.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -87,11 +87,11 @@
 public class MboxStoreImpl extends Store implements MboxStore {
 
   /** Logger */
-  private static Logger log = Logger.getLogger(MboxStoreImpl.class);
+  private static final Logger log = Logger.getLogger(MboxStoreImpl.class);
 
   static boolean attemptFallback = false;
   Hashtable<String,Folder> folders = new Hashtable<String,Folder>();
-  public static int fetchsize = 1024;
+  public static final int fetchsize = 1024;
 
   /**
    * Constructor.

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MimeMessageToPart.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MimeMessageToPart.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/MimeMessageToPart.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -72,7 +72,7 @@
 public final class MimeMessageToPart {
 
   /** The category to log to. */
-  private static Logger logger = Logger.getLogger(MimeMessageToPart.class);
+  private static final Logger logger = Logger.getLogger(MimeMessageToPart.class);
 
   /** The mbox splitter's session */
   private Session session;
@@ -318,7 +318,7 @@
                         buffer.append(" ").append(rawFromAddresses[i]);
                       }
                     }
-                    logger.warn(
+                    logger.debug(
                         "Message with " + rawFromAddresses.length +
                         " FROM headers: " +
                         buffer
@@ -344,7 +344,7 @@
                     buffer.append(" ").append(fromAddresses[i]);
                   }
                 }
-                logger.warn(
+                logger.debug(
                     "Message with " + fromAddresses.length + " senders: " +
                     buffer
                     );

Modified: trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java
===================================================================
--- trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/content-mbox/java/org/mulgara/content/mbox/parser/config/ConfigManager.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -57,7 +57,7 @@
 
   /** The category to log to. */
   @SuppressWarnings("unused")
-  private static Logger logger = Logger.getLogger(ConfigManager.class);
+  private static final Logger logger = Logger.getLogger(ConfigManager.class);
 
   /** Singleton instance */
   private static ConfigManager instance;

Modified: trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -150,9 +150,13 @@
    * If a Connection was abandoned by the client without being closed first, attempt to
    * reclaim the session for use by future clients.
    */
-  protected void finalize() throws QueryException {
-    if (!closed) {
-      close();
+  protected void finalize() throws Throwable {
+    try {
+      if (!closed) {
+        close();
+      }
+    } finally {
+      super.finalize();
     }
   }
   

Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/TransactionalAnswer.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -259,10 +259,11 @@
     logger.warn(desc + ": " + System.identityHashCode(this) + ", xa=" + System.identityHashCode(transaction));
   }
 
-  public void finalize() {
-    report("GC-finalizing");
-    if (transaction != null) {
-      logger.warn("TransactionalAnswer not closed");
+  public void finalize() throws Throwable {
+    try {
+      report("GC-finalizing");
+      if (transaction != null) {
+        logger.warn("TransactionalAnswer not closed");
       /*
       try {
         transaction.execute(new AnswerOperation() {
@@ -290,6 +291,9 @@
 //      } catch (TuplesException et) {
 //        logger.warn("Error force-closing TransactionAnswer", et);
 //      }
+      }
+    } finally {
+      super.finalize();
     }
   }
 

Modified: trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/XAStatementStoreImpl.java
===================================================================
--- trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/XAStatementStoreImpl.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/XAStatementStoreImpl.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -344,7 +344,7 @@
       try {
         close();
       } catch (StatementStoreException ex2) {
-        // NO-OP
+        logger.info("Exception closing failed XAStatementStoreImpl", ex2);
       }
       throw ex;
     }
@@ -710,7 +710,7 @@
   }
 
 
-  protected void finalize() {
+  protected void finalize() throws Throwable {
     // close the statement store if it has not already been closed explicitly.
     try {
       close();
@@ -718,6 +718,8 @@
       logger.warn(
           "Exception in finalize while trying to close the statement store.", t
       );
+    } finally {
+      super.finalize();
     }
   }
 

Modified: trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa11/XA11StatementStoreImpl.java
===================================================================
--- trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa11/XA11StatementStoreImpl.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa11/XA11StatementStoreImpl.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -247,7 +247,9 @@
     } catch (IOException ex) {
       try {
         close();
-      } catch (StatementStoreException ex2) { /* no-op */ }
+      } catch (StatementStoreException ex2) {
+        logger.info("Exception closing failed XA11StatementStoreImpl", ex2); 
+      }
       throw ex;
     }
   }
@@ -575,11 +577,13 @@
   /**
    * Try to safely close the store if this was not done explicitly.
    */
-  protected void finalize() {
+  protected void finalize() throws Throwable {
     try {
       close();
     } catch (Throwable t) {
       logger.warn("Exception in finalize while trying to close the statement store.", t);
+    } finally {
+      super.finalize();
     }
   }
 
@@ -704,7 +708,7 @@
           recordingPhaseToken = null;
         }
         try {
-          newCurrent.graphNodes = newCurrent.scanForGraphs();
+          if (newCurrent != null) newCurrent.graphNodes = newCurrent.scanForGraphs();
         } catch (Exception e) {
           logger.error("Error reading graphs while handling exception from phase.prepare", e);
         }

Modified: trunk/src/jar/server/java/org/mulgara/server/ServletMulgaraServer.java
===================================================================
--- trunk/src/jar/server/java/org/mulgara/server/ServletMulgaraServer.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/server/java/org/mulgara/server/ServletMulgaraServer.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -193,7 +193,11 @@
    * @throws Throwable General catch-all for closing problems.
    */
   protected void finalize() throws Throwable {
-    destroy();
+    try {
+      destroy();
+    } finally {
+      super.finalize();
+    }
   }
 
 
@@ -225,7 +229,7 @@
       try {
         hostname = InetAddress.getLocalHost().getHostName();
         log.info("Obtained " + hostname + " automatically for server");
-      } catch (Exception e) {
+      } catch (UnknownHostException e) {
         log.warn("Problem getting host name -> using localhost");
       }
     }
@@ -314,7 +318,9 @@
       File statePath = new File(new File(persistencePath), serverName);
 
       // create the state path if needed
-      if (!statePath.exists()) statePath.mkdirs();
+      if (!statePath.exists()) {
+        if (!statePath.mkdirs()) throw new IOException("Could not create server directory: " + statePath);
+      }
 
       // log that we're creating a Mulgara server
       if (log.isInfoEnabled()) log.info("Starting Mulgara server at " + serverURI + " in directory " + statePath);

Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteAnswerWrapperAnswer.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -55,18 +55,18 @@
  */
 class RemoteAnswerWrapperAnswer extends AbstractAnswer implements Answer, Cloneable {
   /** logger */
-  private static Logger logger =
+  private static final Logger logger =
       Logger.getLogger(AnswerWrapperRemoteAnswer.class.getName());
 
   /**
    * Default timeout period to wait for a new page.
    */
-  public static String PREFETCH_TIMEOUT_PROPERTY = "mulgara.rmi.pagetimeout";
+  public static final String PREFETCH_TIMEOUT_PROPERTY = "mulgara.rmi.pagetimeout";
 
   /**
    * Default timeout period to wait for a new page.
    */
-  public static int DEFAULT_PREFETCH_TIMEOUT = 60000;
+  public static final int DEFAULT_PREFETCH_TIMEOUT = 60000;
 
   /**
    * The wrapped instance.
@@ -513,14 +513,12 @@
   /**
    * Clean up the remote object if it has not already been done.
    */
-  protected void finalize() {
-    if (remoteAnswer != null) {
-      try {
-        remoteAnswer.close();
-      } catch (Exception e) {
-        // forget the exception
-      }
+  protected void finalize() throws Throwable {
+    try {
+      if (remoteAnswer != null) remoteAnswer.close();
+    } finally {
       remoteAnswer = null;
+      super.finalize();
     }
   }
 

Modified: trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImpl.java
===================================================================
--- trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImpl.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImpl.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -414,7 +414,7 @@
   }
 
 
-  protected void finalize() {
+  protected void finalize() throws Throwable {
     // close the node pool if it has not already been closed explicitly.
     try {
       close();
@@ -422,6 +422,9 @@
       logger.warn(
           "Exception in finalize while trying to close the node pool.", t
       );
+      throw t;
+    } finally {
+      super.finalize();
     }
   }
 

Modified: trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImplTest.java
===================================================================
--- trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImplTest.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/store-nodepool-xa/java/org/mulgara/store/nodepool/xa/XANodePoolImplTest.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -26,18 +26,16 @@
  */
 package org.mulgara.store.nodepool.xa;
 
-import java.io.*;
+import java.io.File;
+import java.io.IOException;
 
-// Java 2 standard packages
-import java.util.*;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
 
-// Third party packages
-import junit.framework.*;
 import org.apache.log4j.Logger;
-
-// Locally written packages
-import org.mulgara.store.*;
-import org.mulgara.store.nodepool.*;
+import org.mulgara.store.nodepool.NoSuchNodeException;
+import org.mulgara.store.nodepool.NodePoolException;
 import org.mulgara.store.xa.SimpleXAResourceException;
 import org.mulgara.util.TempDir;
 
@@ -58,6 +56,7 @@
   /**
    * Logger.
    */
+  @SuppressWarnings("unused")
   private final static Logger logger = Logger.getLogger(XANodePoolImplTest.class);
 
   /**

Modified: trunk/src/jar/store-stringpool-xa/java/org/mulgara/store/stringpool/xa/XAStringPoolImpl.java
===================================================================
--- trunk/src/jar/store-stringpool-xa/java/org/mulgara/store/stringpool/xa/XAStringPoolImpl.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/store-stringpool-xa/java/org/mulgara/store/stringpool/xa/XAStringPoolImpl.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -513,7 +513,7 @@
   }
 
 
-  protected void finalize() {
+  protected void finalize() throws Throwable {
     // close the string pool if it has not already been closed explicitly.
     try {
       close(false);
@@ -521,6 +521,8 @@
       logger.warn(
           "Exception in finalize while trying to close the string pool.", t
       );
+    } finally {
+      super.finalize();
     }
   }
 
@@ -2586,6 +2588,10 @@
           throw new Error(getClass() + " doesn't support clone, which it must", e);
         }
       }
+      
+      public int hashCode() {
+        return 0; // Here to quiet the Fortify scan; these will never be put in a hashtable.
+      }
 
       public boolean equals(Object o) {
         boolean isEqual = false;

Modified: trunk/src/jar/util/java/org/mulgara/util/StringToLongMap.java
===================================================================
--- trunk/src/jar/util/java/org/mulgara/util/StringToLongMap.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/util/java/org/mulgara/util/StringToLongMap.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -260,8 +260,12 @@
    * Ensure that resources are cleaned up correctly, if not already done.
    * @see java.lang.Object#finalize()
    */
-  protected void finalize() {
-    delete();
+  protected void finalize() throws Throwable {
+    try {
+      delete();
+    } finally {
+      super.finalize();
+    }
   }
 
   /**

Modified: trunk/src/jar/util-xa/java/org/mulgara/store/xa/LockFile.java
===================================================================
--- trunk/src/jar/util-xa/java/org/mulgara/store/xa/LockFile.java	2011-09-15 01:56:09 UTC (rev 2028)
+++ trunk/src/jar/util-xa/java/org/mulgara/store/xa/LockFile.java	2011-09-15 17:24:18 UTC (rev 2029)
@@ -198,11 +198,15 @@
   }
 
 
-  protected void finalize() {
-    if (lockFile != null) {
-      logger.warn("In finalize.  Lock file was not released: " + lockFile);
+  protected void finalize() throws Throwable {
+    try {
+      if (lockFile != null) {
+        logger.warn("In finalize.  Lock file was not released: " + lockFile);
+      }
+      release();
+    } finally {
+      super.finalize();
     }
-    release();
   }
 
 }



More information about the Mulgara-svn mailing list