Interesting, it turns out this has to do with changing the name of the
database.

Is there a way to turn off this behaviour/bug?

Thanks,
Marco

2011/12/7 Marco Rietveld <[email protected]>

> Hi all (Thomas?),
>
> I'm getting a "File corrupted while reading record" error with 1.3.161
> and I can't seem to figure out what I'm doing wrong. I also do
>    System.setProperty("h2.lobInDatabase", "true");
> in the code.
>
> I am doing something a little wacky, so it might be due to what how
> and what I'm saving to the db, but I'd like to make sure that there
> isn't a way to configure h2 to get around this problem.
>
> I have a bunch of unit tests that use persistence/JPA (with
> hibernate).  However, I'm proxying the EntityManager(Factory) and
> UserTransaction instances used so that when any data is actually
> committed to the database, a _copy_ of that data is stored elsewhere
> for later retrieval. I first run the unit tests so that they generate
> a "base" database, and then I _move_ that .h2.db file to a different
> location. When the unit tests run again, they save the data and the
> copy data in a test database -- at the end of each unit test, the data
> in the test db and the data in a copy of the base db are compared.
>
> However, when I'm reading information from the copied base db, I get a
> "File corrupted while reading record" error, that apparently has
> something to do with pagestore
>
> The stack trace:
>
> -------------------------------------------------------------------------------------------------------------------------------
> Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading
> record: "<project-dir>/target/test-classes/marshalling/baseData-
> current.h2.db". Possible solution: use the recovery tool [90030-161]
>        at org.h2.message.DbException.getJdbcSQLException(DbException.java:
> 329)
>        at org.h2.message.DbException.get(DbException.java:169)
>        at org.h2.message.DbException.get(DbException.java:146)
>        at org.h2.store.PageStore.readVariableHeader(PageStore.java:848)
>        at org.h2.store.PageStore.openExisting(PageStore.java:346)
>        at org.h2.store.PageStore.open(PageStore.java:278)
>        at org.h2.engine.Database.getPageStore(Database.java:2090)
>        at org.h2.engine.Database.open(Database.java:551)
>        at org.h2.engine.Database.openDatabase(Database.java:219)
>        at org.h2.engine.Database.<init>(Database.java:214)
>        at org.h2.engine.Engine.openSession(Engine.java:56)
>        at org.h2.engine.Engine.openSession(Engine.java:159)
>        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138)
>        at org.h2.engine.Engine.createSession(Engine.java:121)
>        at org.h2.engine.Engine.createSession(Engine.java:28)
>        at
> org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:
> 285)
>        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
>        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
>        at org.h2.Driver.connect(Driver.java:72)
>        at
>
> bitronix.tm.resource.jdbc.lrc.LrcXADataSource.getXAConnection(LrcXADataSource.java:
> 102)
>
> -------------------------------------------------------------------------------------------------------------------------------
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to