]> source.dussan.org Git - jackcess.git/commitdiff
more tweaking to invalid file handling
authorJames Ahlborn <jtahlborn@yahoo.com>
Tue, 13 Jun 2006 14:39:54 +0000 (14:39 +0000)
committerJames Ahlborn <jtahlborn@yahoo.com>
Tue, 13 Jun 2006 14:39:54 +0000 (14:39 +0000)
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@53 f203690c-595d-4dc9-a70b-905162fa7fd2

src/java/com/healthmarketscience/jackcess/Database.java
src/java/com/healthmarketscience/jackcess/JetFormat.java

index 209173ebd41d8df488233725ba56d27f050fe531..d5f12feb0af7917972aae55a7379b561f5f155be 100644 (file)
@@ -177,8 +177,8 @@ public class Database {
    * @param mdbFile File containing the database
    */
   public static Database open(File mdbFile) throws IOException, SQLException {
-    if(!JetFormat.mayBeMdbFile(mdbFile)) {
-      throw new FileNotFoundException("database file is empty or nonexistent");
+    if(!mdbFile.exists() || !mdbFile.canRead()) {
+      throw new FileNotFoundException("given file does not exist: " + mdbFile);
     }
     return new Database(openChannel(mdbFile));
   }
index 0ecfdcdbaa724f2ecef0df0fbb4c856864aa952e..1ed2134123cdde00006790a90745c0631d0789a2 100644 (file)
@@ -115,22 +115,15 @@ public abstract class JetFormat {
   
   public static final JetFormat VERSION_4 = new Jet4Format();
 
-  /**
-   * @return <code>true</code> if the given file could possibly be a database
-   *         file.
-   */
-  public static boolean mayBeMdbFile(File file) throws IOException
-  {
-    // no chance of reading the file format if none of these is true
-    return(file.exists() && file.canRead() && (file.length() >= 1L));
-  }
-  
   /**
    * @return The Jet Format represented in the passed-in file
    */
   public static JetFormat getFormat(FileChannel channel) throws IOException {
     ByteBuffer buffer = ByteBuffer.allocate(1);
     int bytesRead = channel.read(buffer, OFFSET_VERSION);
+    if(bytesRead < 1) {
+      throw new IOException("Empty database file");
+    }
     buffer.flip();
     byte version = buffer.get();
     if (version == CODE_VERSION_4) {