Index: src/edu/ucsb/nceas/metacat/DBQuery.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DBQuery.java	(revision 606)
+++ src/edu/ucsb/nceas/metacat/DBQuery.java	(revision 607)
@@ -15,7 +15,7 @@
  * '$Revision$'
  */
 
-package edu.ucsb.nceas.metacat; 
+package edu.ucsb.nceas.metacat;
 
 import java.io.*;
 import java.util.Vector;
@@ -656,10 +656,10 @@
     }
     
     // Check for READ permission on @docid for @user and/or @group
-    AccessControlList aclobj = new AccessControlList();
-    boolean hasPermission = aclobj.hasPermission(conn,"READ",user,docid);
+    AccessControlList aclobj = new AccessControlList(conn);
+    boolean hasPermission = aclobj.hasPermission("READ",user,docid);
     if ( !hasPermission && group != null ) {
-      hasPermission = aclobj.hasPermission(conn,"READ",group,docid);
+      hasPermission = aclobj.hasPermission("READ",group,docid);
     }
     
     return hasPermission;
Index: src/edu/ucsb/nceas/metacat/AccessControlList.java
===================================================================
--- src/edu/ucsb/nceas/metacat/AccessControlList.java	(revision 606)
+++ src/edu/ucsb/nceas/metacat/AccessControlList.java	(revision 607)
@@ -62,22 +62,23 @@
   /**
    * Construct an instance of the AccessControlList class.
    * It is used by the permission check up from DBQuery and DocumentImpl
-   */
-  public AccessControlList () //throws SQLException, ClassNotFoundException
-  {
-    //MetaCatUtil util = new MetaCatUtil();
-    //this.conn = util.openDBConnection();
-  }
-
-  /**
-   * Construct an instance of the AccessControlList class.
-   * It is used by the permission check up from DBQuery and DocumentImpl
    *
    * @param conn the JDBC connection where acl data are loaded
    */
-  public AccessControlList ( Connection conn )
+  public AccessControlList ( Connection conn ) throws SQLException
   {
-    this.conn = conn;
+    Connection dbconn = conn;
+    if ( dbconn == null || dbconn.isClosed() ) {
+      System.out.println("AccessControlList: " + 
+                         "DB connection was closed. Open a new one");
+      try {
+        MetaCatUtil util = new MetaCatUtil();
+        dbconn = util.openDBConnection();
+      } catch (Exception e) {
+        throw new SQLException(e.getMessage());
+      }
+    }
+    this.conn = dbconn;
   }
 
   /**
@@ -343,28 +344,15 @@
   }
 
   /** Check for @permission for @principal on @resourceId from db connection */
-  public boolean hasPermission ( Connection conn, String permission,
+  public boolean hasPermission ( String permission,
                                  String principal, String resourceId )
                  throws SQLException
   {
-    Connection dbconn = conn;
-    
-    if ( dbconn == null ) {
-      System.out.println("AccessControlList.hasPermission(): " + 
-                         "DB connection was closed. Open a new one");
-      try {
-        MetaCatUtil util = new MetaCatUtil();
-        dbconn = util.openDBConnection();
-      } catch (Exception e) {
-        throw new SQLException(e.getMessage());
-      }
-    }
-      
     PreparedStatement pstmt;
     // check public access to @resourceId from xml_documents table
     if ( permission.equals("READ") ) {
       try {
-        pstmt = dbconn.prepareStatement(
+        pstmt = conn.prepareStatement(
                 "SELECT 'x' FROM xml_documents " +
                 "WHERE docid LIKE ? AND public_access = 1");
         // Bind the values to the query
@@ -390,7 +378,7 @@
     // check if @principal is owner of @resourceId in xml_documents table
     if ( principal != null ) {
       try {
-        pstmt = dbconn.prepareStatement(
+        pstmt = conn.prepareStatement(
                 "SELECT 'x' FROM xml_documents " +
                 "WHERE docid LIKE ? AND user_owner LIKE ?");
         // Bind the values to the query
@@ -417,7 +405,7 @@
       int ticketCount = 0;
       String permOrder = "";
       try {
-        pstmt = dbconn.prepareStatement(
+        pstmt = conn.prepareStatement(
                 "SELECT permission, perm_order, ticket_count " +
                 "FROM xml_access " +
                 "WHERE docid LIKE ? " + 
