# ReflexRule method breaks before reaching the Assertion stage

**URL:** <https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583>\
**Category:** Uncategorized\
**Created:** [June 22, 2025, 1:24pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583 "2025-06-22T13:24:18Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 22, 2025, 1:24pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/1 "2025-06-22T13:24:18Z")

</div>

Hello @Moses_Mutesasira, @mherman22, @tasksolver, I’ve been writing tests for the `TestReflexService` class, but this `public ReflexRule getReflexRuleByAnalyteId(String analyteId) throws LIMSRuntimeException` breaks even before reaching the Assertion stage.  
I tried debugging it and it looks like there problem lies here: `String sql = "from ReflexRule r WHERE r.analyteId = :analyteId";` because `ReflexRule` has no hibernate mapping and its not a table too.

Please, I need some advice on how to fix this in order to continue with the tests.

**Error logs**

```auto
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:757)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:848)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114)
	at org.openelisglobal.testreflex.daoimpl.ReflexRuleDAOImpl.getReflexRuleByAnalyteId(ReflexRuleDAOImpl.java:25)
	... 49 more

```

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [June 23, 2025, 4:42pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/2 "2025-06-23T16:42:33Z")

</div>

> [@Ariho-Seth](#):
>
> because `ReflexRule` has no hibernate mapping

Reflex rule has [Hibernate Mappings](https://github.com/DIGI-UW/OpenELIS-Global-2/blob/develop/src/main/java/org/openelisglobal/testreflex/action/bean/ReflexRule.java#L20-L21)

But probably you need to add it to the the List of entities [here](https://github.com/DIGI-UW/OpenELIS-Global-2/blob/develop/src/test/resources/persistence/test-persistence.xml#L17) for Hibernate to load the mappings

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 23, 2025, 4:50pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/3 "2025-06-23T16:50:35Z")

</div>

Well, I mean the Hibernate-mapping xml file like here [these files](https://github.com/DIGI-UW/OpenELIS-Global-2/blob/develop/src/main/resources/hibernate/hbm/)  
Isn’t it necessary?

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [June 23, 2025, 4:53pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/4 "2025-06-23T16:53:13Z")

</div>

> [@Ariho-Seth](#):
>
> Hibernate-mapping xml

Those are XML-based mappings , newer version of Hibernate support Annotation based mappings

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 23, 2025, 5:07pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/5 "2025-06-23T17:07:29Z")

</div>

Okay, though I’ve added it to the list of entities as suggested but am still facing the same problem

**Error logs**

```auto
23 Jun 2025 18:04:26 -- ERROR -- Class: org.hibernate.internal.ExceptionConverterImpl, Method: convert, Line: 138, Message: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.QueryException, Method: generateQueryException, Line: 120, Sub-Message: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.hql.internal.classic.FromParser, Method: token, Line: 158, Sub-Message: in expected: r
23 Jun 2025 18:04:26 -- ERROR -- Class: org.hibernate.internal.ExceptionConverterImpl, Method: convert, Line: 138, Message: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.QueryException, Method: generateQueryException, Line: 120, Sub-Message: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.hql.internal.classic.FromParser, Method: token, Line: 158, Sub-Message: in expected: r

org.openelisglobal.common.exception.LIMSRuntimeException: Error in ReflexRuleDAOImpl getReflexRuleByAnalyteId()

	at org.openelisglobal.common.daoimpl.BaseDAOImpl.handleException(BaseDAOImpl.java:768)
	at org.openelisglobal.testreflex.daoimpl.ReflexRuleDAOImpl.getReflexRuleByAnalyteId(ReflexRuleDAOImpl.java:32)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)
	at jdk.proxy2/jdk.proxy2.$Proxy464.getReflexRuleByAnalyteId(Unknown Source)
	at org.openelisglobal.testreflex.service.TestReflexServiceImpl.getReflexRuleByAnalyteId(TestReflexServiceImpl.java:311)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:216)
	at jdk.proxy2/jdk.proxy2.$Proxy465.getReflexRuleByAnalyteId(Unknown Source)
	at org.openelisglobal.testreflex.TestReflex.testGetReflexRuleByAnalyteId(TestReflex.java:24)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:76)
	at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
	at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:231)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
	at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:757)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:848)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114)
	at org.openelisglobal.testreflex.daoimpl.ReflexRuleDAOImpl.getReflexRuleByAnalyteId(ReflexRuleDAOImpl.java:25)
	... 49 more
Caused by: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
	at org.hibernate.QueryException.generateQueryException(QueryException.java:120)
	at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103)
	at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:250)
	at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:204)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:112)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73)
	at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162)
	at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636)
	at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748)
	... 52 more
Caused by: org.hibernate.QueryException: in expected: r
	at org.hibernate.hql.internal.classic.FromParser.token(FromParser.java:158)
	at org.hibernate.hql.internal.classic.ClauseParser.token(ClauseParser.java:93)
	at org.hibernate.hql.internal.classic.PreprocessingParser.token(PreprocessingParser.java:118)
	at org.hibernate.hql.internal.classic.ParserHelper.parse(ParserHelper.java:43)
	at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:240)
	... 58 more

```

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [June 23, 2025, 5:09pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/6 "2025-06-23T17:09:12Z")

</div>

what have you added ??

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 23, 2025, 5:10pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/7 "2025-06-23T17:10:20Z")

</div>

The ReflexRule entity!

```auto
<class>org.openelisglobal.testreflex.action.bean.ReflexRule</class>

```

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [June 23, 2025, 5:11pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/8 "2025-06-23T17:11:57Z")

</div>

do you have a PR for you WIP ??

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [June 23, 2025, 5:16pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/9 "2025-06-23T17:16:15Z")

</div>

have you added the package under [Spring component scan](https://github.com/DIGI-UW/OpenELIS-Global-2/blob/develop/src/test/java/org/openelisglobal/AppTestConfig.java#L54) ?

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 23, 2025, 5:16pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/10 "2025-06-23T17:16:47Z")

</div>

Yeah, I was working on the integration tests for the Test Reflex class, that’s where I met that challenge, and I started on another issue

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 23, 2025, 5:17pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/11 "2025-06-23T17:17:53Z")

</div>

Surely, I did that, infact its what I did first 😃

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [June 23, 2025, 5:21pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/12 "2025-06-23T17:21:52Z")

</div>

Can you create a draft PR ?

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 23, 2025, 5:31pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/13 "2025-06-23T17:31:26Z")

</div>

Sure thing, [here it is](https://github.com/DIGI-UW/OpenELIS-Global-2/pull/2067)

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [June 23, 2025, 8:04pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/14 "2025-06-23T20:04:33Z")

</div>

I’ve just found that the link wasn’t working.  
But I’ve fixed it. Sorry for the inconvenience.

---

<div class="post-metadata">

**Author:** ![Ariho-Seth](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/ariho-seth/32/1278_2.png) [@Ariho-Seth](https://talk.openelis-global.org/u/Ariho-Seth)\
**Post date:** [July 18, 2025, 1:51pm UTC](https://talk.openelis-global.org/t/reflexrule-method-breaks-before-reaching-the-assertion-stage/1583/15 "2025-07-18T13:51:38Z")

</div>

Hello @Moses_Mutesasira I’ve updated the pull request of this issue with draft PR  
And there are some failing methods which may need your hand or your counsel  
[Here is the link to the PR.](https://github.com/DIGI-UW/OpenELIS-Global-2/pull/2168)
