Hello Team,
We have been using openjpa – 2.4.0 for our application data
access layer which will be deployed in Jboss Fuse 6.2.1.
We have persistence xml where all the entities are declared.
Very Frequently that we are facing the below issue and had to restart the
container multiple to get the issue resolved.
java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy29.createQuery(Unknown Source)
at
com.mysema.query.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:127)[744:com.mysema.querydsl.jpa:3.6.3]
…………….
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy103.createQuery(Unknown Source)
... 67 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_79]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_79]
at
org.apache.aries.jpa.container.impl.EntityManagerProxyFactory$EMHandler.invoke(EntityManagerProxyFactory.java:31)
... 68 more
Caused by: <openjpa-2.4.0-r422266:1674604 nonfatal user error>
org.apache.openjpa.persistence.ArgumentException: An error occurred while
parsing the query filter "select cETAssignmentException_
from CETAssignmentException cETAssignmentException_
where lower(cETAssignmentException_.id.officeCode) = ?1 and
lower(cETAssignmentException_.id.businessSegmentCode) = ?2". Error message: The
name "CETAssignmentException" is not a recognized entity or identifier. Perhaps
you meant CDDCaseLocation, which is a close match. Known entity names:
[IndividualReferencesAsu, RmaExcllist, WbSanctionsQuestionnaire, IndividualAsu,
SpeDocumentsChecklist, Property, MvSciClientGrpInfo, CddAdditionalDetails,
CopiFatcaSubownersInfo, DocumentTemplate, ClientBranchOffices,
RoccoDecisionReportPK, CddCaseActorsPK, DdCase, ClientIndividualReln,
EcddSciCasePublish, ForeignExchange, CaseDetail, CopiFatcaTaxInfo, NorkomTxn,
CopiFatcaDocument, ClientGroup, ClientIndividual, OpaScreen, Country,
MvSciClientInfo, IndividualNorkom, CddRisks, IndividualNorkomAsu,
ClientOfficeProducts, CddCaseAuditPK, AtfFieldsMaster, CddDdrBasedRouting,
PreScreening, CddCasePK, MvSciClientOrgInfo, WorkflowState, RoccoRequest,
RoccoRequestAuditPK, Risks, MvSciClientAddrInfo, GaProductTransaction,
ClientDocuments, Bba, ClientBranch, ClientNorkomPK, ClientISIC,
MvSciArmCodeInfo, DDCCountries, Client, GroupNorkom, IndividualClientReln, Ga,
OPARuleBases, CDDWorkflowState, SubReasonCodes, MoneyMarket, OpaError,
DefenceGoodsStatus, CDDStateMachine, LegalConstitution, ReasonCodes,
RoccoRequestAudit, Address, BranchNorkom, FiDocumentsChecklist,
CopiFatcaStatusInfo, CddCase, Cdd, CddPepSummary, Bonds, BbaDocumentsChecklist,
ClientOffice, CDDCaseLocation, MvSciEmpInfo, GaDocumentChecklist,
TaskBasedReasonCodes, BranchAddress, DgStatusDecisionMatrix, CashEquities,
IndividualReferences, EcddSciPublish, CddCaseAudit, BusinessSubSegment,
OPACases, ClientIndividualRelnPK, IndividualReferencesAsuPK, Product,
ClientNorkom, BusinessSegment, DocumentCategory, CoDocumentsChecklist,
CddCaseAuditSubReasons, IndividualClientRelnAsu, TaskBasedReasonCodesPK,
CustomerCountryRisk, PreScreeningComment, BbaRiskQuestion, IndividualDocuments,
FormButton, Documents, BbaAdditionalDetails, ClientType, GuarantorNorkomPK,
AnticipatedTransaction, CddPepDetail, GoodsType, CddCaseActors,
GuarantorNorkom, CddCountryRisk, CountryOffices, CopiFatca,
CddWorkflowReassignment, Norkom, Deferral, DocumentsUpload,
ClientTriggerEvents, CopiFatcaStatus, Gic, BusinessSubSegmentPK,
ParentGroupDetails, MvSciClientCoreInfo, RequestMap, CddRiskQuestions,
DefenceGoods, OPADecisionReport, AtfRequestTxn, Individual, ReviewCases,
MvSciArmLocation, DefenceGoodsDecision, ClientIndividualPK,
RoccoDecisionReport, IndividualPK, CddTaskAction, PreScreeningRef,
ClientGuarantor, Derivative]
at
org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118)[848:org.apache.openjpa:2.4.0]
at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:193)[848:org.apache.openjpa:2.4.0]
at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:166)[848:org.apache.openjpa:2.4.0]
Looks like the entity CETAssignmentException is not in the open-jpa list which
is used in setting the values using Reflection.
Below is the TRACE log enabled in openjpa.
3724779 bowbMSPersistenceUnit WARN [qtp1069331902-407] openjpa.MetaData -
The class "com.scb.cic.wb.cdd.ds.db.model.sci.SciOffices" listed in the
openjpa.MetaDataFactory configuration property could not be loaded by
wb-svc-cdd [970]; ignoring.
3724779 bowbMSPersistenceUnit WARN [qtp1069331902-407] openjpa.MetaData -
The class "com.scb.cic.wb.cdd.ds.db.model.sci.SciAssignment" listed in the
openjpa.MetaDataFactory configuration property could not be loaded by
wb-svc-cdd [970]; ignoring.
3724779 bowbMSPersistenceUnit WARN [qtp1069331902-407] openjpa.MetaData -
The class "com.scb.cic.wb.cdd.ds.db.model.task.CETAssignmentExceptionPK" listed
in the openjpa.MetaDataFactory configuration property could not be loaded by
wb-svc-cdd [970]; ignoring.
3724779 bowbMSPersistenceUnit WARN [qtp1069331902-407] openjpa.MetaData -
The class "com.scb.cic.wb.cdd.ds.db.model.task.CETAssignmentException" listed
in the openjpa.MetaDataFactory configuration property could not be loaded by
wb-svc-cdd [970]; ignoring.
and debugged with the source code and found that
private Class<?> classForName(String name, ClassLoader loader) {
try {
return Class.forName(name, true, loader);
} catch (Exception e) {
if ((_validate & VALIDATE_RUNTIME) != 0) {
if (_log.isWarnEnabled())
_log.warn(_loc.get("bad-discover-class", name, loader));
} else if (_log.isInfoEnabled())
_log.info(_loc.get("bad-discover-class", name, loader));
if (_log.isTraceEnabled())
_log.trace(e);
} catch (NoSuchMethodError nsme) {
if (nsme.getMessage().indexOf(".pc") == -1)
throw nsme;
// if the error is about a method that uses the PersistenceCapable
// 'pc' method prefix, perform some logging and continue. This
// probably just means that the class is not yet enhanced.
if ((_validate & VALIDATE_RUNTIME) != 0) {
if (_log.isWarnEnabled())
_log.warn(_loc.get("bad-discover-class", name, loader));
} else if (_log.isInfoEnabled())
_log.info(_loc.get("bad-discover-class", name, loader));
if (_log.isTraceEnabled())
_log.trace(nsme);
}
return null;
}
Above entities are ignored in enhancement while the class is loaded. So, added
below in persistence.xml
<property name="openjpa.RuntimeUnenhancedClasses" value="supported"/> --> in
order to enhance dynamically during run time.
Additionally we have also enabled enhancement during build time by
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<version>${openjpa-maven-plugin.version}</version>
<configuration>
</configuration>
<executions>
<execution>
<id>enhancer</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
But still facing the same issue.
This issue has become a serious issue. It would be great if the team could help
us in resolving the issue.
Thanks.
Regards
Senthil Kumar Sekar