[hibernate-commits] Hibernate SVN: r11626 - trunk/HibernateExt/search/src/java/org/hibernate/search/util.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jun 4 13:42:10 EDT 2007


Author: epbernard
Date: 2007-06-04 13:42:10 -0400 (Mon, 04 Jun 2007)
New Revision: 11626

Modified:
   trunk/HibernateExt/search/src/java/org/hibernate/search/util/DirectoryProviderHelper.java
Log:
HSEARCH-70 Better usability, create the base directory if it does not exists

Modified: trunk/HibernateExt/search/src/java/org/hibernate/search/util/DirectoryProviderHelper.java
===================================================================
--- trunk/HibernateExt/search/src/java/org/hibernate/search/util/DirectoryProviderHelper.java	2007-06-04 16:21:54 UTC (rev 11625)
+++ trunk/HibernateExt/search/src/java/org/hibernate/search/util/DirectoryProviderHelper.java	2007-06-04 17:42:10 UTC (rev 11626)
@@ -39,7 +39,7 @@
 			log.debug( "No root directory, go with relative " + relative );
 			File sourceFile = new File(relative);
 			if ( ! sourceFile.exists() ) {
-				throw new HibernateException("Unable to read source directory: " + relative);
+				throw new SearchException("Unable to read source directory: " + relative);
 			}
 			//else keep source as it
 		}
@@ -66,12 +66,16 @@
 	public static File determineIndexDir(String directoryProviderName, Properties properties) {
 		String indexBase = properties.getProperty( "indexBase", "." );
 		File indexDir = new File( indexBase );
-		if ( !( indexDir.exists() && indexDir.isDirectory() ) ) {
-			//TODO create the directory?
-			throw new HibernateException( MessageFormat.format( "Index directory does not exists: {0}", indexBase ) );
+		if ( ! indexDir.exists() ) {
+			//if the base directory does not exists, create it
+			//we do not fear concurrent creation since mkdir does not raise exceptions
+			indexDir.mkdir();
 		}
+		else if ( ! indexDir.isDirectory() ) {
+			throw new SearchException( MessageFormat.format( "Index directory is not a directory: {0}", indexBase ) );
+		}
 		if ( !indexDir.canWrite() ) {
-			throw new HibernateException( "Cannot write into index directory: " + indexBase );
+			throw new SearchException( "Cannot write into index directory: " + indexBase );
 		}
 
 		indexDir = new File( indexDir, directoryProviderName );




More information about the hibernate-commits mailing list