Hi.
H2 containts triggers that at initialization time are trying to read from
some table from LOB column.
Because it occurs in org.h2.engine.Database.open(Database.java:735):
org.h2.jdbc.JdbcSQLException: General error:
"java.lang.NullPointerException"; SQL statement:
select * from SMGIS.SYM_ON_U_FOR_TRG_TSS_HNK_FLD_CONFIG [50000-187]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:168)
at org.h2.message.DbException.convert(DbException.java:295)
at org.h2.command.Command.executeQuery(Command.java:209)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:79)
at
org.jumpmind.symmetric.db.AbstractEmbeddedTrigger.getTemplates(AbstractEmbeddedTrigger.java:265)
at
org.jumpmind.symmetric.db.AbstractEmbeddedTrigger.init(AbstractEmbeddedTrigger.java:78)
at org.jumpmind.symmetric.db.h2.H2Trigger.init(H2Trigger.java:51)
at org.h2.schema.TriggerObject.load(TriggerObject.java:81)
at org.h2.schema.TriggerObject.setTriggerAction(TriggerObject.java:136)
at
org.h2.schema.TriggerObject.setTriggerClassName(TriggerObject.java:118)
at org.h2.command.ddl.CreateTrigger.update(CreateTrigger.java:115)
at org.h2.engine.MetaRecord.execute(MetaRecord.java:58)
at org.h2.engine.Database.open(Database.java:735)
at org.h2.engine.Database.openDatabase(Database.java:266)
at org.h2.engine.Database.<init>(Database.java:260)
at org.h2.engine.Engine.openSession(Engine.java:60)
at org.h2.engine.Engine.openSession(Engine.java:167)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:145)
at org.h2.engine.Engine.createSession(Engine.java:128)
at org.h2.engine.Engine.createSession(Engine.java:26)
at
org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:347)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:108)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:92)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
We get NPE as:
Caused by: java.lang.NullPointerException
at org.h2.store.LobStorageBackend.copyLob(LobStorageBackend.java:453)
at org.h2.value.ValueLobDb.copyToResult(ValueLobDb.java:495)
at org.h2.value.ValueLobDb.copyToResult(ValueLobDb.java:38)
at org.h2.result.LocalResult.cloneLobs(LocalResult.java:265)
at org.h2.result.LocalResult.addRow(LocalResult.java:281)
at org.h2.command.dml.Select.queryFlat(Select.java:585)
at org.h2.command.dml.Select.queryWithoutCache(Select.java:685)
at org.h2.command.dml.Query.query(Query.java:322)
at org.h2.command.dml.Query.query(Query.java:290)
at org.h2.command.dml.Query.query(Query.java:36)
at org.h2.command.CommandContainer.query(CommandContainer.java:90)
at org.h2.command.Command.executeQuery(Command.java:197)
because getLobStorage().init(); line is a bit later in Database
class.
Seems there was no problem in 1.4.181 that we have been using. Were there
any changes in initialization logic of Database? Is loading from
third-party tables in trigger a legal approach now?
Vitali.
--
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 http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.