You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Kathey Marsden (JIRA)" <ji...@apache.org> on 2009/11/20 06:22:40 UTC

[jira] Commented: (DERBY-2074) NullPointerException when two threads load sort factory concurrently

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

Kathey Marsden commented on DERBY-2074:
---------------------------------------

I am working with a user who may have hit this issue on 10.3.  The trace does indeed look quite similar.  I tried changing the reproduction to use a regular database instead of in memory and could not get the issue to reproduce on 10.3.  The fix itself ported easily, so I think I will just merge the code fix, check it in  and see if it fixes their problem.

> NullPointerException when two threads load sort factory concurrently
> --------------------------------------------------------------------
>
>                 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
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.5.2.0, 10.6.0.0
>
>         Attachments: d2074-1a.diff, d2074-1b.diff, d2074-1b.stat, LoadSorter.java
>
>
> 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.