I had the same issue with a production database...
I am using v191.
I found a posting on stackoverflow
h2-general-error-java-lang-nullpointerexception-50000-182
<http://stackoverflow.com/questions/27360272/h2-general-error-java-lang-nullpointerexception-50000-182>
There was a possible solution posted by Justin Nguyen
<http://stackoverflow.com/users/5967180/justin-nguyen> that worked for me.
He suggested creating a custom class to cleanup the undo log and this fixed
my issue.
public static void main(final String[] args) {
// open the store (in-memory if fileName is null)
final MVStore store = MVStore.open("C:\\temp\\h2db.mv.db");
final MVMap<Object, Object> openMap = store.openMap("undoLog");
openMap.clear();
// close the store (this will persist changes)
store.close();
}
This does not explain why the problem is occurring, but it allowed me to
move forward. It appears this error has been happening for a while - I
have seen it referenced with much older version numbers as well.
I saw one comment that made it appear it was caused by shutting down
immediately ( ie power loss ). That was not my case, but perhaps
Thomas can speak to it better.
On Wednesday, November 30, 2016 at 11:59:35 PM UTC-5, Herman Banken wrote:
>
> When opening the database after a forced stop (hanging SELECT) it fails
> with a NPE. This is using IntelliJ's built-in browser which uses
> the h2-1.4.193.jar driver jar. Same holds for when connecting using Play
> Frameworks Slick, but instead of the error you'll only see the 1s timeout.
>
> My database is too large to be send (1.5GB) and takes too long to trash
> and regenerate, so I hope to be able to restore the database in some way.
>
> Stacktrace:
>
> [HY000][50000] General error: "java.lang.NullPointerException" [50000-193]
> java.lang.NullPointerException
> at org.h2.mvstore.db.ValueDataType.compare(ValueDataType.java:102)
> at org.h2.mvstore.MVMap.compare(MVMap.java:708)
> at org.h2.mvstore.Page.binarySearch(Page.java:334)
> at org.h2.mvstore.MVMap.binarySearch(MVMap.java:461)
> at org.h2.mvstore.MVMap.get(MVMap.java:450)
> at org.h2.mvstore.db.TransactionStore.commit(TransactionStore.java:349)
> at
> org.h2.mvstore.db.TransactionStore$Transaction.commit(TransactionStore.java:779)
> at
> org.h2.mvstore.db.MVTableEngine$Store.initTransactions(MVTableEngine.java:253)
> at org.h2.engine.Database.open(Database.java:765)
> at org.h2.engine.Database.openDatabase(Database.java:273)
> at org.h2.engine.Database.<init>(Database.java:267)
> at org.h2.engine.Engine.openSession(Engine.java:64)
> at org.h2.engine.Engine.openSession(Engine.java:176)
> at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
> at org.h2.engine.Engine.createSession(Engine.java:137)
> at org.h2.engine.Engine.createSession(Engine.java:27)
> at
> org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:115)
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:99)
> at org.h2.Driver.connect(Driver.java:69)
> at
> com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
> at sun.rmi.transport.Transport$1.run(Transport.java:200)
> at sun.rmi.transport.Transport$1.run(Transport.java:197)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$256(TCPTransport.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
>
> Running java -cp
> /Users/user/.ivy2/cache/com.h2database/h2/jars/h2-1.4.193.jar
> org.h2.tools.Recover -db database -trace
> fails with a unsupported data type 17 exception.
>
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.