Project

General

Profile

Bug #3743

H2 NPE after a forced shutdown of reporting server

Added by Constantin Asofiei over 5 years ago. Updated over 5 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:

History

#1 Updated by Constantin Asofiei over 5 years ago

Using Eclipse:
  • start the reporting server
  • login to Analytics using your browser
  • shutdown the reporting server from Eclipse's terminate button
  • start the reporting server again
  • login to Analytics - you will see this NPE error:
    java.lang.RuntimeException: Cannot call method public void com.goldencode.p2j.report.server.ReportProtocol#onConnect(org.eclipse.jetty.websocket.api.Session) with args: [org.eclipse.jetty.websocket.common.WebSocketSession]
        at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.unwrapRuntimeException(CallableMethod.java:94)
        at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:76)
        at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onConnect(JettyAnnotatedEventDriver.java:148)
        at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.openSession(AbstractEventDriver.java:229)
        at org.eclipse.jetty.websocket.common.WebSocketSession.open(WebSocketSession.java:489)
        at org.eclipse.jetty.websocket.common.WebSocketSession.onOpened(WebSocketSession.java:423)
        at org.eclipse.jetty.io.AbstractConnection.onOpen(AbstractConnection.java:198)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onOpen(AbstractWebSocketConnection.java:562)
        at org.eclipse.jetty.io.AbstractEndPoint.upgrade(AbstractEndPoint.java:201)
        at org.eclipse.jetty.server.HttpConnection.onCompleted(HttpConnection.java:369)
        at org.eclipse.jetty.server.HttpChannel.onCompleted(HttpChannel.java:611)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:442)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:186)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.ExceptionInInitializerError
        at com.goldencode.p2j.report.server.ReportApi.<clinit>(ReportApi.java:326)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at java.lang.Class.newInstance(Class.java:442)
        at com.goldencode.p2j.report.server.ReportProtocol.onConnect(ReportProtocol.java:199)
        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:498)
        at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:71)
        ... 22 more
    Caused by: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-197]
        at com.goldencode.p2j.report.server.DatabaseService.initialize(DatabaseService.java:216)
        at com.goldencode.p2j.report.server.DatabaseService.<clinit>(DatabaseService.java:93)
        ... 34 more
    Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-197]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
        at org.h2.message.DbException.get(DbException.java:168)
        at org.h2.message.DbException.convert(DbException.java:307)
        at org.h2.engine.Database.openDatabase(Database.java:319)
        at org.h2.engine.Database.<init>(Database.java:280)
        at org.h2.engine.Engine.openSession(Engine.java:66)
        at org.h2.engine.Engine.openSession(Engine.java:179)
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
        at org.h2.engine.Engine.createSession(Engine.java:140)
        at org.h2.engine.Engine.createSession(Engine.java:28)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
        at org.h2.Driver.connect(Driver.java:69)
        at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:189)
        at org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:352)
        at org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:384)
        at org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:225)
        at org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:197)
        at com.goldencode.p2j.report.server.DatabaseService.openConnection(DatabaseService.java:161)
        at com.goldencode.p2j.report.server.DatabaseService.initialize(DatabaseService.java:195)
        ... 35 more
    Caused by: java.lang.NullPointerException
        at org.h2.engine.Database.unlockMeta(Database.java:947)
        at org.h2.engine.Session.commit(Session.java:704)
        at org.h2.store.PageStore.removeOldTempIndexes(PageStore.java:402)
        at org.h2.store.PageStore.openExisting(PageStore.java:374)
        at org.h2.store.PageStore.open(PageStore.java:289)
        at org.h2.engine.Database.getPageStore(Database.java:2552)
        at org.h2.engine.Database.open(Database.java:709)
        at org.h2.engine.Database.openDatabase(Database.java:286)
        ... 52 more
    
    Oct 11, 2018 10:10:32 AM org.eclipse.jetty.websocket.common.WebSocketSession open
    WARNING: 
    java.lang.RuntimeException: Cannot call method public void com.goldencode.p2j.report.server.ReportProtocol#onConnect(org.eclipse.jetty.websocket.api.Session) with args: [org.eclipse.jetty.websocket.common.WebSocketSession]
        at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.unwrapRuntimeException(CallableMethod.java:94)
        at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:76)
        at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver.onConnect(JettyAnnotatedEventDriver.java:148)
        at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.openSession(AbstractEventDriver.java:229)
        at org.eclipse.jetty.websocket.common.WebSocketSession.open(WebSocketSession.java:489)
        at org.eclipse.jetty.websocket.common.WebSocketSession.onOpened(WebSocketSession.java:423)
        at org.eclipse.jetty.io.AbstractConnection.onOpen(AbstractConnection.java:198)
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onOpen(AbstractWebSocketConnection.java:562)
        at org.eclipse.jetty.io.AbstractEndPoint.upgrade(AbstractEndPoint.java:201)
        at org.eclipse.jetty.server.HttpConnection.onCompleted(HttpConnection.java:369)
        at org.eclipse.jetty.server.HttpChannel.onCompleted(HttpChannel.java:611)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:442)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:186)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.ExceptionInInitializerError
        at com.goldencode.p2j.report.server.ReportApi.<clinit>(ReportApi.java:326)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at java.lang.Class.newInstance(Class.java:442)
        at com.goldencode.p2j.report.server.ReportProtocol.onConnect(ReportProtocol.java:199)
        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:498)
        at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:71)
        ... 22 more
    Caused by: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-197]
        at com.goldencode.p2j.report.server.DatabaseService.initialize(DatabaseService.java:216)
        at com.goldencode.p2j.report.server.DatabaseService.<clinit>(DatabaseService.java:93)
        ... 34 more
    Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-197]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
        at org.h2.message.DbException.get(DbException.java:168)
        at org.h2.message.DbException.convert(DbException.java:307)
        at org.h2.engine.Database.openDatabase(Database.java:319)
        at org.h2.engine.Database.<init>(Database.java:280)
        at org.h2.engine.Engine.openSession(Engine.java:66)
        at org.h2.engine.Engine.openSession(Engine.java:179)
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
        at org.h2.engine.Engine.createSession(Engine.java:140)
        at org.h2.engine.Engine.createSession(Engine.java:28)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
        at org.h2.Driver.connect(Driver.java:69)
        at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:189)
        at org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:352)
        at org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:384)
        at org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:225)
        at org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:197)
        at com.goldencode.p2j.report.server.DatabaseService.openConnection(DatabaseService.java:161)
        at com.goldencode.p2j.report.server.DatabaseService.initialize(DatabaseService.java:195)
        ... 35 more
    Caused by: java.lang.NullPointerException
        at org.h2.engine.Database.unlockMeta(Database.java:947)
        at org.h2.engine.Session.commit(Session.java:704)
        at org.h2.store.PageStore.removeOldTempIndexes(PageStore.java:402)
        at org.h2.store.PageStore.openExisting(PageStore.java:374)
        at org.h2.store.PageStore.open(PageStore.java:289)
        at org.h2.engine.Database.getPageStore(Database.java:2552)
        at org.h2.engine.Database.open(Database.java:709)
        at org.h2.engine.Database.openDatabase(Database.java:286)
        ... 52 more
    
  • shutdown the reporting server from Eclipse's terminate button
  • login again - now it works.

This might be because the reporting server was forced-terminated, without having a chance to safely shutdown the DB (via JVM hooks).

Also available in: Atom PDF