Exception in thread "main" org.apache.tika.exception.TikaException: Unexpected RuntimeException from org.apache.tika.parser.microsoft.JackcessParser@123f1134
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:282)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:143)
at org.apache.tika.cli.TikaCLI$OutputType.process(TikaCLI.java:209)
at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:496)
at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:149)
Caused by: java.lang.IllegalStateException: invalid page number 243
at com.healthmarketscience.jackcess.impl.PageChannel.validatePageNumber(PageChannel.java:203)
at com.healthmarketscience.jackcess.impl.PageChannel.readPage(PageChannel.java:214)
at com.healthmarketscience.jackcess.impl.LongValueColumnImpl.readLongValue(LongValueColumnImpl.java:204)
at com.healthmarketscience.jackcess.impl.LongValueColumnImpl.read(LongValueColumnImpl.java:96)
at com.healthmarketscience.jackcess.impl.ColumnImpl.read(ColumnImpl.java:689)
at com.healthmarketscience.jackcess.impl.TableImpl.getRowColumn(TableImpl.java:847)
at com.healthmarketscience.jackcess.impl.TableImpl.getRow(TableImpl.java:753)
at com.healthmarketscience.jackcess.impl.TableImpl.getRow(TableImpl.java:733)
at com.healthmarketscience.jackcess.impl.CursorImpl.getCurrentRow(CursorImpl.java:699)
at com.healthmarketscience.jackcess.impl.DatabaseImpl$TableFinder.getObjectRow(DatabaseImpl.java:2261)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getPropertiesForObject(DatabaseImpl.java:1415)
at com.healthmarketscience.jackcess.impl.TableImpl.getPropertyMaps(TableImpl.java:471)
at com.healthmarketscience.jackcess.impl.ColumnImpl.getProperties(ColumnImpl.java:647)
at com.healthmarketscience.jackcess.impl.ColumnImpl.reloadPropertiesValidators(ColumnImpl.java:531)
at com.healthmarketscience.jackcess.impl.ColumnImpl.initColumnValidator(ColumnImpl.java:498)
at com.healthmarketscience.jackcess.impl.TableImpl.<init>(TableImpl.java:293)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.readTable(DatabaseImpl.java:1713)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:1055)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:1015)
at com.healthmarketscience.jackcess.impl.DatabaseImpl$TableIterator.next(DatabaseImpl.java:2225)
at com.healthmarketscience.jackcess.impl.DatabaseImpl$TableIterator.next(DatabaseImpl.java:2204)
at org.apache.tika.parser.microsoft.JackcessExtractor.parse(JackcessExtractor.java:149)
at org.apache.tika.parser.microsoft.JackcessParser.parse(JackcessParser.java:102)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
... 5 more</init>
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, that's kind of what i suspected. because jackcess is now using information from the column properties to enforce certain write rules, it is proactively reading the column properties during table init. this didn't happen before. the column properties seem to be in a corrupted section of the database. ugh.
are #149 and #150 the same bug?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
your application only ever reads dbs, right? do you open them read-only? i was thinking that i could skip reading the additional info if the db is opened read-only because it's only necessary when writing.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Do you have the full exception?
Is this useful?
Exception in thread "main" org.apache.tika.exception.TikaException: Unexpected RuntimeException from org.apache.tika.parser.microsoft.JackcessParser@123f1134
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:282)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:143)
at org.apache.tika.cli.TikaCLI$OutputType.process(TikaCLI.java:209)
at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:496)
at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:149)
Caused by: java.lang.IllegalStateException: invalid page number 243
at com.healthmarketscience.jackcess.impl.PageChannel.validatePageNumber(PageChannel.java:203)
at com.healthmarketscience.jackcess.impl.PageChannel.readPage(PageChannel.java:214)
at com.healthmarketscience.jackcess.impl.LongValueColumnImpl.readLongValue(LongValueColumnImpl.java:204)
at com.healthmarketscience.jackcess.impl.LongValueColumnImpl.read(LongValueColumnImpl.java:96)
at com.healthmarketscience.jackcess.impl.ColumnImpl.read(ColumnImpl.java:689)
at com.healthmarketscience.jackcess.impl.TableImpl.getRowColumn(TableImpl.java:847)
at com.healthmarketscience.jackcess.impl.TableImpl.getRow(TableImpl.java:753)
at com.healthmarketscience.jackcess.impl.TableImpl.getRow(TableImpl.java:733)
at com.healthmarketscience.jackcess.impl.CursorImpl.getCurrentRow(CursorImpl.java:699)
at com.healthmarketscience.jackcess.impl.DatabaseImpl$TableFinder.getObjectRow(DatabaseImpl.java:2261)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getPropertiesForObject(DatabaseImpl.java:1415)
at com.healthmarketscience.jackcess.impl.TableImpl.getPropertyMaps(TableImpl.java:471)
at com.healthmarketscience.jackcess.impl.ColumnImpl.getProperties(ColumnImpl.java:647)
at com.healthmarketscience.jackcess.impl.ColumnImpl.reloadPropertiesValidators(ColumnImpl.java:531)
at com.healthmarketscience.jackcess.impl.ColumnImpl.initColumnValidator(ColumnImpl.java:498)
at com.healthmarketscience.jackcess.impl.TableImpl.<init>(TableImpl.java:293)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.readTable(DatabaseImpl.java:1713)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:1055)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.getTable(DatabaseImpl.java:1015)
at com.healthmarketscience.jackcess.impl.DatabaseImpl$TableIterator.next(DatabaseImpl.java:2225)
at com.healthmarketscience.jackcess.impl.DatabaseImpl$TableIterator.next(DatabaseImpl.java:2204)
at org.apache.tika.parser.microsoft.JackcessExtractor.parse(JackcessExtractor.java:149)
at org.apache.tika.parser.microsoft.JackcessParser.parse(JackcessParser.java:102)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
... 5 more</init>
Yes, that's kind of what i suspected. because jackcess is now using information from the column properties to enforce certain write rules, it is proactively reading the column properties during table init. this didn't happen before. the column properties seem to be in a corrupted section of the database. ugh.
are #149 and #150 the same bug?
your application only ever reads dbs, right? do you open them read-only? i was thinking that i could skip reading the additional info if the db is opened read-only because it's only necessary when writing.
Y, we only read, and we do open them read-only.
are #149 and #150 the same bug?
Y, I think so. Sorry!
no worries!
Fixed in trunk, will be in the 2.2.1 release.
Upgraded Jackcess in Tika to 2.2.1. THANK YOU!