Hi,

OK I see, so you are running SQL statements while initializing the trigger.
It sounds like we need to initialize the LOB storage before creating the
triggers then... Patches are welcome!

Regards,
Thomas

On Wednesday, May 6, 2015, Vitali <vita...@gmail.com> wrote:

>
>
> Hi, Thomas.
>
> I think it's not a LOB-storage related problem. The problem as I specified
> in e-mail is that  triggers during initialization are trying to read some
> CLOB data   but LobStorageBackend is not yet initialized with a
> connection.  Look to classes from stacktrace.  It is because triggers are
> initialized earlier than LOB storage is initialized in Database class.
>
>
>
> Vitali.
>
> On Wednesday, May 6, 2015 at 9:21:48 AM UTC+3, Thomas Mueller wrote:
>>
>> Hi,
>>
>> There were some changes in this area, and an important bugfix in version
>> 1.4.187. If the LOB data was already removed before that, then I'm afraid
>> the data can not be restored easily. See also the change log for details.
>>
>> Regards,
>> Thomas
>>
>>
>> On Sunday, May 3, 2015, Vitali <vit...@gmail.com> wrote:
>>
>>> 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 h2-database+unsubscr...@googlegroups.com.
>>> To post to this group, send email to h2-database@googlegroups.com.
>>> Visit this group at http://groups.google.com/group/h2-database.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>  --
> 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 h2-database+unsubscr...@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','h2-database%2bunsubscr...@googlegroups.com');>
> .
> To post to this group, send email to h2-database@googlegroups.com
> <javascript:_e(%7B%7D,'cvml','h2-database@googlegroups.com');>.
> Visit this group at http://groups.google.com/group/h2-database.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 h2-database+unsubscr...@googlegroups.com.
To post to this group, send email to h2-database@googlegroups.com.
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