vgritsenko 2003/08/19 14:13:33
Modified: java/src/org/apache/xindice/core Database.java Log: If PROP_XINDICE_DB_HOME is missing use the current directory. Print warnings. Revision Changes Path 1.30 +21 -3 xml-xindice/java/src/org/apache/xindice/core/Database.java Index: Database.java =================================================================== RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/core/Database.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- Database.java 12 Aug 2003 02:57:30 -0000 1.29 +++ Database.java 19 Aug 2003 21:13:33 -0000 1.30 @@ -75,6 +75,7 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; +import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -301,7 +302,24 @@ File dbrootDir = new File(dbroot); if (!dbrootDir.isAbsolute()) { // Here, DB root already should be absolute. XMLRPC, Embed, and Managed drivers take care of it. - dbrootDir = new File(System.getProperty(Xindice.PROP_XINDICE_DB_HOME), dbroot); + log.warn("The specified database root directory '" + dbroot + "' is relative. " + + "Using property " + Xindice.PROP_XINDICE_DB_HOME + " to resolve."); + + String home = System.getProperty(Xindice.PROP_XINDICE_DB_HOME); + if (home == null) { + log.warn("The specified database root directory '" + dbroot + "' is relative " + + "and there was no " + Xindice.PROP_XINDICE_DB_HOME + " property set, " + + "so Xindice was unable to determine a database location. " + + "Database will be created relative to the current directory."); + + home = "."; + } + try { + // In case home has been specified as relative path convert it to absolute path + dbrootDir = new File(home, dbroot).getCanonicalFile(); + } catch (IOException e) { + throw new XindiceException("Can't get canonical path", e); + } } setCollectionRoot(dbrootDir);