Bug #3743
H2 NPE after a forced shutdown of reporting server
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).