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 <[email protected] <javascript:>> 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 [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.
>>
>

-- 
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