0

小さな 30 MB の h2 データベース ファイルがあります。ドライバーのバージョンは 1.4.178 です。すべてが正常に機能しましたが、最近 DB が例外で動作を停止しました:

org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-178] 
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) 
    at org.h2.message.DbException.get(DbException.java:167) 
    at org.h2.message.DbException.convert(DbException.java:294) 
    at org.h2.engine.Database.openDatabase(Database.java:293) 
    at org.h2.engine.Database.<init>(Database.java:256) 
    at org.h2.engine.Engine.openSession(Engine.java:57) 
    at org.h2.engine.Engine.openSession(Engine.java:164) 
    at org.h2.engine.Engine.createSessionAndValidate(Engine.java:142) 
    at org.h2.engine.Engine.createSession(Engine.java:125) 
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:150) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.NullPointerException 
    at org.h2.mvstore.DataUtils.parseMap(DataUtils.java:630) 
    at org.h2.mvstore.MVStore.openMap(MVStore.java:411) 
    at org.h2.mvstore.db.TransactionStore.<init>(TransactionStore.java:96) 
    at org.h2.mvstore.db.MVTableEngine$Store.<init>(MVTableEngine.java:161) 
    at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:94) 
    at org.h2.engine.Database.getPageStore(Database.java:2355) 
    at org.h2.engine.Database.open(Database.java:659) 
    at org.h2.engine.Database.openDatabase(Database.java:262) 
    ... 7 more 

    at org.h2.engine.SessionRemote.done(SessionRemote.java:610) 
    at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:129) 
    at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:434) 
    at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:315) 
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107) 
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91) 
    at org.h2.Driver.connect(Driver.java:74) 
    at org.h2.server.web.WebServer.getConnection(WebServer.java:684) 
    at org.h2.server.web.WebApp.test(WebApp.java:896) 
    at org.h2.server.web.WebApp.process(WebApp.java:222) 
    at org.h2.server.web.WebApp.processRequest(WebApp.java:171) 
    at org.h2.server.web.WebThread.process(WebThread.java:138) 
    at org.h2.server.web.WebThread.run(WebThread.java:94) 
    at java.lang.Thread.run(Thread.java:744) 

この問題は、アプリケーションで H2 Web フロントエンドを使用して発生します。

4

1 に答える 1

0

この NPE の原因を修正しようとしているのか、それともデータベースのコンテンツを取得しようとしているのかは不明です。

次のことをお勧めします。

  • http://h2database.com/html/tutorial.html#upgrade_backup_restoreで説明されている手順を使用してデータを取得します
  • スタックをアップグレードして、最新バージョンの 1.3 (176) または最新の 1.4 (188) に移行してください。
  • この新しいスタックでデータを復元します
  • サーバーを実行してテストする

NPE の問題が引き続き発生する場合は、このフォーラムで詳細を提供する必要があります。

于 2015-08-20T06:55:07.480 に答える