Author: vgritsenko
Date: Fri Aug 10 21:18:09 2007
New Revision: 564832

URL: http://svn.apache.org/viewvc?view=rev&rev=564832
Log:
Removed throws from DBObject.isOpened() method.
Cleanup.

Modified:
    xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/CollectionManager.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/Container.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/DBObject.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexManager.java
    
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java Fri Aug 
10 21:18:09 2007
@@ -209,22 +209,24 @@
     }
 
 
+    private String name;
     private String canonicalName;
+    private Collection parent;
+
     // Object ID Stuff
-    private int collectionId;
+    private final Object oidMutex = new Object();
+    private String oidTemplate;
+    private long documentId;
+
+    private boolean internalSymbols;
+    private SymbolTable symbols;
+
     private File collectionRoot;
     private boolean compressed;
-    private long documentId;
-    private DocumentCache documentCache;
     private Filer filer;
-    private IndexManager indexManager;
     private InlineMetaService inlineMetaService;
-    private boolean internalSymbols;
-    private String name;
-    private final Object oidMutex = new Object();
-    private String oidTemplate;
-    private Collection parent;
-    private SymbolTable symbols;
+    private DocumentCache documentCache;
+    private IndexManager indexManager;
 
     // document keys identity map
     private final Map identityMap = new WeakHashMap();
@@ -235,10 +237,10 @@
     }
 
     /**
-     * @param parentCollection
+     * @param parent parent collection
      */
-    public Collection(Collection parentCollection) {
-        this.parent = parentCollection;
+    public Collection(Collection parent) {
+        this.parent = parent;
     }
 
     private void checkFiler(int faultCode) throws DBException {
@@ -246,17 +248,25 @@
             throw new DBException(faultCode,
                                   "Collection '" + name + "' cannot store 
resources (no filer)");
         }
+        if (!filer.isOpened()) {
+            throw new DBException(FaultCodes.COL_COLLECTION_CLOSED,
+                                  "Collection '" + name + "' is closed.");
+        }
     }
 
     /**
      * @see org.apache.xindice.core.DBObject#close()
      */
     public boolean close() throws DBException {
+        // Close children collections first
+        super.close();
+
+        // Close its own filer
         if (filer != null) {
             indexManager.close();
             filer.close();
         }
-        super.close();
+
         return true;
     }
 
@@ -272,7 +282,7 @@
     }
 
     /**
-     * @see 
org.apache.xindice.core.CollectionManager#createCollection(java.lang.String, 
org.apache.xindice.util.Configuration)
+     * @see CollectionManager#createCollection(String, Configuration)
      */
     public final Collection createCollection(String path, Configuration 
config) throws DBException {
         Collection col = super.createCollection(path, config);
@@ -348,11 +358,6 @@
      * @see org.apache.xindice.core.DBObject#drop()
      */
     public boolean drop() throws DBException {
-        if (this == getDatabase()) {
-            throw new DBException(FaultCodes.DBE_CANNOT_DROP,
-                                  "You cannot drop the database");
-        }
-
         DBObserver.getInstance().dropCollection(this);
 
         // Drop the meta if necessary
@@ -1050,14 +1055,20 @@
 
     /**
      * Returns whether or not meta data is enabled.
+     *
      * @return boolean whether or not meta data is enabled.
      */
     public boolean isMetaEnabled() {
         return getDatabase().isMetaEnabled();
     }
 
-    public boolean isOpened() throws DBException {
-        return true;
+    public boolean isOpened() {
+        // Collection without filer is always open ... for now.
+        if (filer == null) {
+            return true;
+        }
+
+        return filer.isOpened();
     }
 
     /**
@@ -1421,12 +1432,13 @@
         this.canonicalName = canonicalName;
 
         // Calculate The OID Template
-        collectionId = Math.abs(canonicalName.hashCode());
         StringBuffer sb = new StringBuffer("00000000000000000000000000000000");
         String host = Integer.toString(host_id, 16);
-        String collection = Integer.toString(collectionId, 16);
         sb.insert(8 - host.length(), host);
+
+        String collection = 
Integer.toString(Math.abs(canonicalName.hashCode()), 16);
         sb.insert(16 - collection.length(), collection);
+        
         sb.setLength(32);
         oidTemplate = sb.toString();
     }
@@ -1516,8 +1528,8 @@
             internalSymbols = (symConfig != null);
             if (internalSymbols) {
                 if (log.isTraceEnabled()) {
-                    log.trace(localDebugHeader
-                              + "Internal symbols=<" + 
TextWriter.toString(symConfig.getElement()) + ">");
+                    log.trace(localDebugHeader +
+                              "Internal symbols=<" + 
TextWriter.toString(symConfig.getElement()) + ">");
                 }
 
                 try {

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/CollectionManager.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/CollectionManager.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/CollectionManager.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/CollectionManager.java 
Fri Aug 10 21:18:09 2007
@@ -41,10 +41,11 @@
 
     private static final Log log = LogFactory.getLog(CollectionManager.class);
 
-    private static final String COLLECTION = "collection";
     private static final String COLLECTIONS = "collections";
+    private static final String COLLECTION  = "collection";
+    private static final String NAME        = "name";
+
     private static final String[] EMPTY_STRINGS = new String[0];
-    private static final String NAME = "name";
 
     private final Map collections = Collections.synchronizedMap(new HashMap());
     private Configuration config;
@@ -54,8 +55,7 @@
     }
 
     /**
-     *
-     * @param collection
+     * @param collection a collection to add
      */
     protected void addCollection(Collection collection) {
         this.collections.put(collection.getName(), collection);
@@ -65,6 +65,7 @@
      * Returns number of child collections
      *
      * @return number of collections
+     * @throws DBException never
      */
     public final long countCollections() throws DBException {
         return (long) collections.size();
@@ -77,6 +78,7 @@
      * @param path The relative path of the Collection
      * @param cfg The Collection's configuration
      * @return The newly created Collection
+     * @throws DBException if operation failed
      */
     public Collection createCollection(String path, Configuration cfg) throws 
DBException {
         if (path == null || "".equals(path)) {
@@ -97,25 +99,19 @@
                     continue;
                 }
 
-                if (st.hasMoreTokens()) {
-                    cm = (CollectionManager) cm.collections.get(path);
-                } else {
+                if (!st.hasMoreTokens()) {
                     return cm.createCollection(path, cfg);
                 }
+                
+                cm = (CollectionManager) cm.collections.get(path);
             }
 
             throw new DBException(FaultCodes.COL_COLLECTION_NOT_FOUND,
                                   "Parent Collection '" + path + "' doesn't 
exist");
         }
 
-        if (path.indexOf('/') != -1) {
-            throw new DBException(FaultCodes.COL_CANNOT_CREATE, "Name cannot 
contain '/'");
-        }
-
-        Collection collection = new Collection((Collection) this);
+        // Get collection name and do a check
         String n = cfg.getAttribute(NAME);
-
-        // Do a name check to see if all is well
         if (n == null || n.trim().equals("")) {
             throw new DBException(FaultCodes.COL_CANNOT_CREATE,
                                   "No name specified in collection 
configuration");
@@ -126,7 +122,8 @@
                                   "Name does not match with path name");
         }
 
-        synchronized(collections) {
+        Collection collection = new Collection((Collection) this);
+        synchronized (collections) {
             try {
                 if (getCollection(n) != null) {
                     throw new DBException(FaultCodes.COL_DUPLICATE_COLLECTION,
@@ -149,6 +146,7 @@
                 throw new DBException(FaultCodes.COL_CANNOT_CREATE,
                                       "Error Creating Collection '" + path + 
"'", e);
             }
+
             return collection;
         }
     }
@@ -176,6 +174,7 @@
      *
      * @param collection The Collection to drop
      * @return Whether or not the Collection was dropped
+     * @throws DBException if operation failed
      */
     public boolean dropCollection(Collection collection) throws DBException {
         if (collection == null) {
@@ -224,6 +223,7 @@
      *
      * @param path The Collection path
      * @return The Collection (or null)
+     * @throws DBException if operation failed
      */
     public Collection getCollection(String path) throws DBException {
         if (path == null) {
@@ -234,20 +234,25 @@
             CollectionManager cm = this;
             StringTokenizer st = new StringTokenizer(path, "/");
             while (cm != null && st.hasMoreTokens()) {
-                path = st.nextToken();
+                path = st.nextToken().trim();
+                if (path.length() == 0) {
+                    continue;
+                }
+
                 cm = (CollectionManager) cm.collections.get(path);
             }
+
             return (Collection) cm;
-        } else {
-            return (Collection) collections.get(path);
         }
+        
+        return (Collection) collections.get(path);
     }
 
     /**
      * @return The collections map
      */
     protected Map getCollections() {
-        return this.collections;
+        return Collections.unmodifiableMap(this.collections);
     }
 
     /**
@@ -262,9 +267,12 @@
      * Strings.
      *
      * @return The Collection list
+     * @throws DBException never
      */
     public final String[] listCollections() throws DBException {
-        return (String[]) collections.keySet().toArray(EMPTY_STRINGS);
+        synchronized (collections) {
+            return (String[]) collections.keySet().toArray(EMPTY_STRINGS);
+        }
     }
 
     /**

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/Container.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/Container.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/Container.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/Container.java Fri Aug 
10 21:18:09 2007
@@ -87,4 +87,3 @@
      */
     void commit(Document document) throws DBException;
 }
-

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/DBObject.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/DBObject.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/DBObject.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/DBObject.java Fri Aug 10 
21:18:09 2007
@@ -36,6 +36,7 @@
      * DBObject, such as disk files, etc.
      *
      * @return Whether or not the DBObject was created
+     * @throws DBException if operation failed
      */
     boolean create() throws DBException;
 
@@ -43,6 +44,7 @@
      * open opens the DBObject
      *
      * @return Whether or not the DBObject was opened
+     * @throws DBException if operation failed
      */
     boolean open() throws DBException;
 
@@ -51,7 +53,7 @@
      *
      * @return The open status of the DBObject
      */
-    boolean isOpened() throws DBException;
+    boolean isOpened();
 
     /**
      * exists returns whether or not a physical representation of this
@@ -60,6 +62,7 @@
      * perform a connection check.
      *
      * @return Whether or not the physical resource exists
+     * @throws DBException if operation failed
      */
     boolean exists() throws DBException;
 
@@ -69,6 +72,7 @@
      * references to the DBObject in its own context.
      *
      * @return Whether or not the DBObject was dropped
+     * @throws DBException if operation failed
      */
     boolean drop() throws DBException;
 
@@ -76,6 +80,7 @@
      * close closes the DBObject
      *
      * @return Whether or not the DBObject was closed
+     * @throws DBException if operation failed
      */
     boolean close() throws DBException;
 }

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java Fri Aug 10 
21:18:09 2007
@@ -446,4 +446,16 @@
         // observer
         DBObserver.getInstance().setDatabaseConfig(this, getCollections(), 
config);
     }
+
+
+    /**
+     * Database can not be dropped.
+     *
+     * @return nothing.
+     * @throws DBException Always throws DBE_CANNOT_DROP fault code.
+     */
+    public boolean drop() throws DBException {
+        throw new DBException(FaultCodes.DBE_CANNOT_DROP,
+                              "You cannot drop the database");
+    }
 }

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java Fri Aug 
10 21:18:09 2007
@@ -666,6 +666,7 @@
                                          "Error closing " + file.getName(), e);
             }
         }
+
         return true;
     }
 

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexManager.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexManager.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexManager.java 
(original)
+++ 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/IndexManager.java 
Fri Aug 10 21:18:09 2007
@@ -206,7 +206,7 @@
      */
     public synchronized void close() {
         // wait for all scheduled tasks to finish
-        synchronized(lock) {
+        synchronized (lock) {
             while (taskCount > 0) {
                 try {
                     lock.wait();
@@ -215,6 +215,7 @@
                 }
             }
         }
+
         // close all indexers
         for (Iterator i = indexes.values().iterator(); i.hasNext(); ) {
             Indexer idx = (Indexer) i.next();

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java?view=diff&rev=564832&r1=564831&r2=564832
==============================================================================
--- 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java 
(original)
+++ 
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java 
Fri Aug 10 21:18:09 2007
@@ -895,7 +895,7 @@
      *
      * @return true if open, false otherwise
      */
-    public synchronized boolean isOpened() throws DBException {
+    public synchronized boolean isOpened() {
         return itsValues != null && itsOpen;
     }
 


Reply via email to