You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Pinaki Poddar (JIRA)" <ji...@apache.org> on 2009/10/23 00:09:59 UTC

[jira] Commented: (OPENJPA-1355) Recent snaphot versions of openjpa have problem with postgresPreparedStatementImpl constructor making Postgres impossible to use

    [ https://issues.apache.org/jira/browse/OPENJPA-1355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768935#action_12768935 ] 

Pinaki Poddar commented on OPENJPA-1355:
----------------------------------------

Hi Krzysztof,
  Thanks for finding this out. 
  Fixed now -- can you try the fix?
 

> Recent snaphot versions of openjpa have problem with postgresPreparedStatementImpl constructor making Postgres impossible to use
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1355
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1355
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.0.0-M4
>         Environment: -S1 snapshots from maven. pg jdbc driver 8.[3|4], pg 8.4
>            Reporter: Krzysztof
>            Assignee: Pinaki Poddar
>            Priority: Blocker
>
> When calling prepared statement for the first time, following exception started to occur after upgrading to the latest snaphots (it worked in M3):
>  
> java.lang.ExceptionInInitializerError: null
>      org.apache.openjpa.lib.util.ConcreteClassGenerator.newInstance(ConcreteClassGenerator.java:132)
>      org.apache.openjpa.jdbc.sql.PostgresDictionary$PostgresConnection.prepareStatement(PostgresDictionary.java:697)
>      org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:328)
>      org.apache.openjpa.jdbc.kernel.JDBCStoreManager$RefCountConnection.prepareStatement(JDBCStoreManager.java:1560)
>      org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:317)
>      org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:546)
>      org.apache.openjpa.jdbc.sql.SelectImpl.prepareStatement(SelectImpl.java:452)
>      org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:389)
>      org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:363)
>      org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:427)
>      org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230)
>      org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220)
>      org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94)
>      org.apache.openjpa.kernel.QueryImpl$PackingResultObjectProvider.open(QueryImpl.java:2027)
>      org.apache.openjpa.lib.rop.WindowResultList.<init>(WindowResultList.java:57)
>      org.apache.openjpa.jdbc.kernel.JDBCFetchConfigurationImpl.newResultList(JDBCFetchConfigurationImpl.java:278)
>      org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1239)
>      org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1000)
>      org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:856)
>      org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:787)
>      org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:525)
>      org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:291)
>      org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:303)
>      gaia.cu7.dal.VariStore.fetchSourcesHistogram(VariStore.java:733)
>      gaia.cu7.dal.VariStore.getSourcesHistogram(VariStore.java:689)
>      gaia.cu7.omimpl.test.SourceImplTest.testHistogramCreation(SourceImplTest.java:930)
>      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>      java.lang.reflect.Method.invoke(Method.java:597)
>      org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>      org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>      org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>      org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>      org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>      org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>      org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>      org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>      org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>      org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>      org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>      org.junit.runners.ParentRunner.run(ParentRunner.java:220)
> Caused by: java.lang.IllegalArgumentException: wrong number of arguments
>      sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>      sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>      sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>      java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>      org.apache.openjpa.lib.util.ConcreteClassGenerator.newInstance(ConcreteClassGenerator.java:130)
> This might be related to the svn revision:
> Revision 813149 - (view) (annotate) - [select for diffs]
> Modified Wed Sep 9 22:43:49 2009 UTC (5 weeks, 5 days ago) by ppoddar
> OPENJPA-1285: Dynamic JDBC 4 Wrappers use constructor to save reflection cost
> seems the offending statement from org.apache.openjpa.jdbc.sql.PostgresDictionary$PostgresConnection.prepareStatement(PostgresDictionary.java:697) 
> has wrong number of parameters:
>             ...
> return ConcreteClassGenerator.
>                 newInstance(postgresPreparedStatementImpl,
>                     PreparedStatement.class,
>                         super.prepareStatement(sql, rsType, rsConcur, false),
>                     Connection.class, PostgresConnection.this,
>                     PostgresDictionary.class, _dict);
> Are the type classes really needed here?
> Could you confirm it passes your internal tests for postgres on the openjpa trunk if you think this problem is caused by something else?
> Best regards,
> Krzysztof

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