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.

Reply via email to