Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 多线程环境下的eclipselink错误_Multithreading_Jpa_Eclipselink_Jpa 2.1 - Fatal编程技术网

Multithreading 多线程环境下的eclipselink错误

Multithreading 多线程环境下的eclipselink错误,multithreading,jpa,eclipselink,jpa-2.1,Multithreading,Jpa,Eclipselink,Jpa 2.1,我在使用ThreadLocal的多线程环境中使用了最新的eclipselink(2.5.2),以保证每个线程都使用自己的实体管理器,下面是一个例外 在互联网上搜索时,我意识到它发生在2.3版的类似环境中。有人知道怎么绕过它吗?如何克服这一点 [EL Warning]: 2014-07-10 09:31:30.982--UnitOfWork(1713484147)--Thread(Thread[pool-2-thread-6,5,main])--Exception [EclipseLink-616

我在使用ThreadLocal的多线程环境中使用了最新的eclipselink(2.5.2),以保证每个线程都使用自己的实体管理器,下面是一个例外

在互联网上搜索时,我意识到它发生在2.3版的类似环境中。有人知道怎么绕过它吗?如何克服这一点

[EL Warning]: 2014-07-10 09:31:30.982--UnitOfWork(1713484147)--Thread(Thread[pool-2-thread-6,5,main])--Exception [EclipseLink-6168] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.QueryException
Exception Description: Query failed to prepare, unexpected error occurred: [java.lang.NullPointerException].
Internal Exception: java.lang.NullPointerException
Query: ReportQuery(name="query.rvTrans" referenceClass=RvTransaction sql="SELECT RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE, SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), MIN(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END), MAX(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END) FROM RV_TRANSACTION WHERE ((((((((AO_TYPE_3DPT = ?) AND (AONO_3DPT = ?)) AND (RV_PARTY_NO = ?)) AND (RV_PRODUCT IN (?, ?, ?, ?))) AND (RV_EMPLOYER_ID = ?)) AND (RV_IMPLEMENT_SW <> ?)) AND (RV_TRAN_STATUS <> ?)) AND (((RV_SOURCE_CD <> ?) AND (RV_VALUE_DATE <= ?)) OR ((RV_SOURCE_CD = ?) AND (RV_RATE_DATE <= ?)))) GROUP BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE ORDER BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE")
2014-07-10 09:31:31,001 [pool-2-thread-6] ERROR [RvTransactionManager] - PersistenceException: Exception [EclipseLink-6168] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.QueryException
Exception Description: Query failed to prepare, unexpected error occurred: [java.lang.NullPointerException].
Internal Exception: java.lang.NullPointerException
Query: ReportQuery(name="query.rvTrans" referenceClass=RvTransaction sql="SELECT RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE, SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), MIN(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END), MAX(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END) FROM RV_TRANSACTION WHERE ((((((((AO_TYPE_3DPT = ?) AND (AONO_3DPT = ?)) AND (RV_PARTY_NO = ?)) AND (RV_PRODUCT IN (?, ?, ?, ?))) AND (RV_EMPLOYER_ID = ?)) AND (RV_IMPLEMENT_SW <> ?)) AND (RV_TRAN_STATUS <> ?)) AND (((RV_SOURCE_CD <> ?) AND (RV_VALUE_DATE <= ?)) OR ((RV_SOURCE_CD = ?) AND (RV_RATE_DATE <= ?)))) GROUP BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE ORDER BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE")
javax.persistence.PersistenceException: Exception [EclipseLink-6168] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.QueryException
Exception Description: Query failed to prepare, unexpected error occurred: [java.lang.NullPointerException].
Internal Exception: java.lang.NullPointerException
Query: ReportQuery(name="query.rvTrans" referenceClass=RvTransaction sql="SELECT RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE, SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), MIN(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END), MAX(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END) FROM RV_TRANSACTION WHERE ((((((((AO_TYPE_3DPT = ?) AND (AONO_3DPT = ?)) AND (RV_PARTY_NO = ?)) AND (RV_PRODUCT IN (?, ?, ?, ?))) AND (RV_EMPLOYER_ID = ?)) AND (RV_IMPLEMENT_SW <> ?)) AND (RV_TRAN_STATUS <> ?)) AND (((RV_SOURCE_CD <> ?) AND (RV_VALUE_DATE <= ?)) OR ((RV_SOURCE_CD = ?) AND (RV_RATE_DATE <= ?)))) GROUP BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE ORDER BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE")
    at org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:480)
    at com.sapiens.crjpa.managers.RvTransactionManager.getResultLists(RvTransactionManager.java:41)
    at com.sapiens.crjpa.tasks.SinglePartyLogic.getPartyAccumulation(SinglePartyLogic.java:66)
    at com.sapiens.crjpa.tasks.Worker.run(Worker.java:41)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)
Caused by: Exception [EclipseLink-6168] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.QueryException
Exception Description: Query failed to prepare, unexpected error occurred: [java.lang.NullPointerException].
Internal Exception: java.lang.NullPointerException
Query: ReportQuery(name="query.rvTrans" referenceClass=RvTransaction sql="SELECT RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE, SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), SUM(CASE  WHEN (RV_TAX_CODE = ?) THEN RV_UNIT_VALUE ELSE ? END), MIN(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END), MAX(CASE  WHEN ((RV_TRANSACT_TYPE = ?) AND (RV_CONN_TRAN_NBR = ?)) THEN RV_VALUE_DATE ELSE ? END) FROM RV_TRANSACTION WHERE ((((((((AO_TYPE_3DPT = ?) AND (AONO_3DPT = ?)) AND (RV_PARTY_NO = ?)) AND (RV_PRODUCT IN (?, ?, ?, ?))) AND (RV_EMPLOYER_ID = ?)) AND (RV_IMPLEMENT_SW <> ?)) AND (RV_TRAN_STATUS <> ?)) AND (((RV_SOURCE_CD <> ?) AND (RV_VALUE_DATE <= ?)) OR ((RV_SOURCE_CD = ?) AND (RV_RATE_DATE <= ?)))) GROUP BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE ORDER BY RV_PARTY_NO, RV_PRODUCT, RV_FUND_CODE")
    at org.eclipse.persistence.exceptions.QueryException.prepareFailed(QueryException.java:1590)
    at org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:680)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.checkPrepare(ObjectLevelReadQuery.java:901)
    at org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:613)
    at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:867)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1127)
    at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:403)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1215)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1786)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1751)
    at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
    at org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:469)
    ... 8 more
Caused by: java.lang.NullPointerException
    at java.io.Writer.write(Writer.java:157)
    at org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter.printString(ExpressionSQLPrinter.java:188)
    at org.eclipse.persistence.expressions.ExpressionOperator.printCollection(ExpressionOperator.java:2197)
    at org.eclipse.persistence.internal.expressions.ArgumentListFunctionExpression.printSQL(ArgumentListFunctionExpression.java:99)
    at org.eclipse.persistence.expressions.ExpressionOperator.printCollection(ExpressionOperator.java:2194)
    at org.eclipse.persistence.internal.expressions.FunctionExpression.printSQL(FunctionExpression.java:545)
    at org.eclipse.persistence.internal.expressions.FunctionExpression.writeFields(FunctionExpression.java:717)
    at org.eclipse.persistence.internal.expressions.SQLSelectStatement.writeFieldsFromExpression(SQLSelectStatement.java:2033)
    at org.eclipse.persistence.internal.expressions.SQLSelectStatement.writeFieldsIn(SQLSelectStatement.java:2048)
    at org.eclipse.persistence.internal.expressions.SQLSelectStatement.printSQL(SQLSelectStatement.java:1675)
    at org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.printSQLSelectStatement(DatabasePlatform.java:3178)
    at org.eclipse.persistence.platform.database.DB2Platform.printSQLSelectStatement(DB2Platform.java:787)
    at org.eclipse.persistence.internal.expressions.SQLSelectStatement.buildCall(SQLSelectStatement.java:782)
    at org.eclipse.persistence.internal.expressions.SQLSelectStatement.buildCall(SQLSelectStatement.java:792)
    at org.eclipse.persistence.descriptors.ClassDescriptor.buildCallFromStatement(ClassDescriptor.java:813)
    at org.eclipse.persistence.internal.queries.StatementQueryMechanism.setCallFromStatement(StatementQueryMechanism.java:390)
    at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.prepareReportQuerySelectAllRows(ExpressionQueryMechanism.java:1696)
    at org.eclipse.persistence.queries.ReportQuery.prepareSelectAllRows(ReportQuery.java:1203)
    at org.eclipse.persistence.queries.ReadAllQuery.prepare(ReadAllQuery.java:744)
    at org.eclipse.persistence.queries.ReportQuery.prepare(ReportQuery.java:1071)
    at org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:661)
    ... 20 more
[EL Warning]:2014-07-10 09:31:30.982——工作单元(1713484147)——线程(线程[pool-2-Thread-6,5,main])——异常[EclipseLink-6168](Eclipse持久性服务-2.5.2.v20140319-9ad6abd):org.Eclipse.Persistence.exceptions.QueryException
异常描述:查询准备失败,出现意外错误:[java.lang.NullPointerException]。
内部异常:java.lang.NullPointerException

查询:报告查询(name=“Query.rvTrans”referenceClass=RvTransaction sql=“选择房车交易方编号、房车交易产品、房车交易基金代码、金额(案例时间(房车交易税代码=?)然后房车交易单位价值其他?结束)、金额(案例时间(房车交易税代码=?)然后房车交易单位价值其他?结束)、金额(案例时间(房车交易税代码=?)然后房车交易单位价值其他?结束)、最小值(案例时间((RV_交易类型=?)和(RV_交易类型=?)然后是RV_价值日期其他?结束),最大值(当((RV_交易类型=?)和(RV_交易类型=?)和(RV_交易类型=?)然后是RV价值日期其他?结束)来自RV_交易,其中((((((((((((((((((((((((AOU类型))和(AONO_类型))3DPT=)和(AONO))和(AONO))3DPT=))和(RV))和(RV_)第三方)和第三方)和第三方)和第三方)和(ID)和第三方)和第三方)(RV_IMPLEMENT_SW?)和(RV_TRAN_STATUS?)和((RV_SOURCE_CD?)和(RV_VALUE_DATE在这段代码中,EclipseLink Bugzilla中似乎没有与NPE在编写器使用方面相关的已知问题。 请在上创建一个新错误
把这些信息和一些简单的复制场景(以及测试用例,如果可能的话)放在那里。我们会看一看。

这个bug已经发布了吗?我经常在org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:480)上看到错误,2.6.0-M3。