OHDSI Home | Forums | Wiki | Github

WhiteRabbit scan for MS Access database

Hi there,

I’m trying to use WhiteRabbit to scan a MS Access database (from a .accdb file). The goal is to then use the White Rabbit scan document within Rabbit-In-A-Hat.
However, I don’t manage to connect to the database. With the following input I get this error message when using the Test connection button.

Do you have an idea on what causes this error ?

Inputs:

  • Working folder: my_local_pathWhiteRabbit_v0.10.2\bin
  • Data type: MS Access
  • Server location: test.accdb (it is located within the working folder)
  • User name: none
  • Password: none
  • Database name: test
  • Delimiter: ,

Returns:

WARNING:Error in the metadata of the table MSysQueries: table's row count in the metadata is 81 but 137 records have been found and loaded by UCanAccess. All will work fine, but it's better to repair your database.

Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError
at com.healthmarketscience.jackcess.impl.query.QueryFormat.(QueryFormat.java:104)
at com.healthmarketscience.jackcess.impl.query.QueryImpl.getQueryType(QueryImpl.java:426)
at com.healthmarketscience.jackcess.impl.query.QueryImpl.(QueryImpl.java:67)
at com.healthmarketscience.jackcess.impl.query.BaseSelectQueryImpl.(BaseSelectQueryImpl.java:36)
at com.healthmarketscience.jackcess.impl.query.SelectQueryImpl.(SelectQueryImpl.java:34)
at com.healthmarketscience.jackcess.impl.query.QueryImpl.create(QueryImpl.java:394)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getQueries(DatabaseImpl.java:1194)
at net.ucanaccess.converters.LoadJet$ViewsLoader.loadViews(LoadJet.java:1311)
at net.ucanaccess.converters.LoadJet$ViewsLoader.access$3000(LoadJet.java:1163)
at net.ucanaccess.converters.LoadJet.loadDB(LoadJet.java:1486)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:245)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at org.ohdsi.databases.DBConnector.connectToMsAccess(DBConnector.java:94)
at org.ohdsi.databases.DBConnector.connect(DBConnector.java:45)
at org.ohdsi.databases.RichConnection.(RichConnection.java:49)
at org.ohdsi.whiteRabbit.WhiteRabbitMain.testConnection(WhiteRabbitMain.java:869)
at org.ohdsi.whiteRabbit.WhiteRabbitMain.access$100(WhiteRabbitMain.java:84)
at org.ohdsi.whiteRabbit.WhiteRabbitMain$2.actionPerformed(WhiteRabbitMain.java:375)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6614)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6379)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2769)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.NumberFormatException: multiple points
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1914)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:461)
at org.apache.commons.lang.SystemUtils.getJavaVersionAsFloat(SystemUtils.java:756)
at org.apache.commons.lang.SystemUtils.(SystemUtils.java:469)
… 55 more
WARNING:Error in the metadata of the table MSysQueries: table’s row count in the metadata is 81 but 137 records have been found and loaded by UCanAccess. All will work fine, but it’s better to repair your database.
Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: Could not initialize class com.healthmarketscience.jackcess.impl.query.QueryFormat
at com.healthmarketscience.jackcess.impl.query.QueryImpl.getQueryType(QueryImpl.java:426)
at com.healthmarketscience.jackcess.impl.query.QueryImpl.(QueryImpl.java:67)
at com.healthmarketscience.jackcess.impl.query.BaseSelectQueryImpl.(BaseSelectQueryImpl.java:36)
at com.healthmarketscience.jackcess.impl.query.SelectQueryImpl.(SelectQueryImpl.java:34)
at com.healthmarketscience.jackcess.impl.query.QueryImpl.create(QueryImpl.java:394)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getQueries(DatabaseImpl.java:1194)
at net.ucanaccess.converters.LoadJet$ViewsLoader.loadViews(LoadJet.java:1311)
at net.ucanaccess.converters.LoadJet$ViewsLoader.access$3000(LoadJet.java:1163)
at net.ucanaccess.converters.LoadJet.loadDB(LoadJet.java:1486)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:245)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at org.ohdsi.databases.DBConnector.connectToMsAccess(DBConnector.java:94)
at org.ohdsi.databases.DBConnector.connect(DBConnector.java:45)
at org.ohdsi.databases.RichConnection.(RichConnection.java:49)
at org.ohdsi.whiteRabbit.WhiteRabbitMain.testConnection(WhiteRabbitMain.java:869)
at org.ohdsi.whiteRabbit.WhiteRabbitMain.access$100(WhiteRabbitMain.java:84)
at org.ohdsi.whiteRabbit.WhiteRabbitMain$2.actionPerformed(WhiteRabbitMain.java:375)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6614)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6379)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2769)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Thanks a lot,

Thomas

Have you Compacted and Repaired? Under the Database Tools tab.

image

Sorry for the delayed answer,

I tried it, the repair seems to have gone well. With the updated database I’m facing a new error message in WhiteRabbit:

Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: Could not initialize class com.healthmarketscience.jackcess.impl.CustomToStringStyle
at com.healthmarketscience.jackcess.impl.ColumnImpl$SortOrder.toString(ColumnImpl.java:2133)
at java.base/java.lang.String.valueOf(String.java:3367)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:167)
at com.healthmarketscience.jackcess.impl.IndexData.newColumnDescriptor(IndexData.java:1394)
at com.healthmarketscience.jackcess.impl.IndexData.read(IndexData.java:453)
at com.healthmarketscience.jackcess.impl.TableImpl.readIndexDefinitions(TableImpl.java:1347)
at com.healthmarketscience.jackcess.impl.TableImpl.(TableImpl.java:253)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.readTable(DatabaseImpl.java:1519)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.readSystemCatalog(DatabaseImpl.java:848)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.(DatabaseImpl.java:525)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:392)
at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:252)
at net.ucanaccess.jdbc.DefaultJackcessOpener.open(DefaultJackcessOpener.java:32)
at net.ucanaccess.jdbc.DBReference.(DBReference.java:160)
at net.ucanaccess.jdbc.DBReferenceSingleton.loadReference(DBReferenceSingleton.java:51)
at net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:98)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at org.ohdsi.databases.DBConnector.connectToMsAccess(DBConnector.java:94)
at org.ohdsi.databases.DBConnector.connect(DBConnector.java:45)
at org.ohdsi.databases.RichConnection.(RichConnection.java:49)
at org.ohdsi.whiteRabbit.WhiteRabbitMain.testConnection(WhiteRabbitMain.java:869)
at org.ohdsi.whiteRabbit.WhiteRabbitMain.access$100(WhiteRabbitMain.java:84)
at org.ohdsi.whiteRabbit.WhiteRabbitMain$2.actionPerformed(WhiteRabbitMain.java:375)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6614)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6379)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2769)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Does the java.lang.NoClassDefFoundError refer to something wrong in the database structure ?

t