[ 
https://issues.apache.org/jira/browse/DERBY-2074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12720633#action_12720633
 ] 

Torsten Heftrich-Zoth commented on DERBY-2074:
----------------------------------------------

It seems to me after some experimenting that this item is related to 
synchronization and multithreading. In my scenario the error does not occur 
when I use the debug version or activate the proposed logging. The error occurs 
not on my development machine but on an 8-core server. Additionally the error 
occurs more often when this server is nearly idle.
As explanation I may add, that in our application two servlets are initializing 
nearly at the same time and are executing the same expensive statement nearly 
simultaneously. When only one servlet is activated the errors also does never 
occur.
For now it seems I could solve the problem for us. I introduced some 
synchronization into our code which forces the two servlets to initialize after 
one another. 
I saved the setup which produces the error, so if you wish me to test some 
changes to derby or produce some log output for you, give me a hint.


> Several times exception from derby implementation was thrown (were unable to 
> eproduce and check if it caused by any our work)
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2074
>                 URL: https://issues.apache.org/jira/browse/DERBY-2074
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.1.3.1
>         Environment: WinXP Professional, Java 1.5.0_06
>            Reporter: Kovylin Alexandr
>            Priority: Minor
>
> 12:34:45,323 ERROR [pool-1-thread-3] history.helpers.HistoryDataAccessHelper 
> - failed to read measurements, filter = (fromTime=Mon Nov 06 12:34:00 MSK 
> 2006, toTime=Mon Nov 13 12:34:00 MSK 2006, , properties=2-6-2-value) 
> org.springframework.jdbc.UncategorizedSQLException: 
> PreparedStatementCallback; uncategorized SQLException for SQL [SELECT 
> COUNT(DISTINCT sshis.measurement_time) FROM sshis_property_measurement sshis 
> INNER JOIN sstmp_filter_3 filtertbl ON sshis.property_id = 
> filtertbl.property_id WHERE sshis.measurement_time >= ? AND 
> sshis.measurement_time < ?]; SQL state [XJ001]; error code [0]; Java 
> exception:':
>  java.lang.NullPointerException'.; nested exception is
> org.apache.derby.impl.jdbc.EmbedSQLException: Java exception: ': 
> java.lang.NullPointerException'.
> java.lang.NullPointerException
>         at java.util.Hashtable.put(Unknown Source)
>         at 
> org.apache.derby.impl.store.access.RAMAccessManager.registerAccessMethod(Unknown
>  Source)
>         at 
> org.apache.derby.impl.store.access.RAMAccessManager.findMethodFactoryByImpl(Unknown
>  Source)
>         at 
> org.apache.derby.impl.store.access.RAMTransaction.createSort(UnknownSource)
>         at 
> org.apache.derby.impl.sql.execute.DistinctScalarAggregateResultSet.loadSorter(Unknown
>  Source)
>         at 
> org.apache.derby.impl.sql.execute.DistinctScalarAggregateResultSet.openCore(Unknown
>  Source)
>         at 
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown 
> Source)
>         at 
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown Source)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>         at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
> Source)
>         at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(Unknown Source)
>         at 
> org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:535)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:476)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:528)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:561)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:579)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:589)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:619)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:629)
>         at 
> org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:656)
>         at 
> com.meshnetics.wsn.ctrl.dispatcher.services.history.helpers.MeasurementsSaveGetHelper.getMeasurements(MeasurementsSaveGetHelper.java:81)
>         at 
> com.meshnetics.wsn.ctrl.dispatcher.services.history.helpers.HistoryDataAccessHelper$7.doInTransaction(HistoryDataAccessHelper.java:315)
>         at 
> com.meshnetics.wsn.ctrl.dispatcher.services.history.helpers.HistoryDataAccessHelper$7.doInTransaction(HistoryDataAccessHelper.java:314)
>         at 
> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:117)
>         at 
> com.meshnetics.wsn.ctrl.dispatcher.services.history.helpers.HistoryDataAccessHelper.getMeasurements(HistoryDataAccessHelper.java:313)
>         at 
> com.meshnetics.wsn.ctrl.dispatcher.services.history.asyncread.MeasurementsReadTask.executeTask(MeasurementsReadTask.java:127)
>         at 
> com.meshnetics.wsn.ctrl.dispatcher.services.history.asyncread.MeasurementsReadTask.run(MeasurementsReadTask.java:97)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
>         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to