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

Jan Würthner commented on OPENJPA-2642:
---------------------------------------

Hi Senthil! I encountered the very same issue, running the runtime enhancer in 
tomee-plus 7.1.1 with open-jdk 17: In some cases suddenly one of the entities 
is not available, while all others are loaded and available (same wording for 
the error: "...  is not a recognized entity or identifier." and the list of 
entities is not empty ). Have you been able to solve this or find a workaround? 
Unfortunately there is not much on the internet about this issue. Any insight 
is highly appreciated!

> Entity Loading issue in open-jpa
> --------------------------------
>
>                 Key: OPENJPA-2642
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2642
>             Project: OpenJPA
>          Issue Type: Bug
>            Reporter: Senthil Kumar Sekar
>            Priority: Major
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> Hello Team,
>       We have been 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.
> Sometimes(These days its very frequent) that we are facing the below issue. 
> This really affects our build and deployment model.
> 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



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to