<mavenModuleSetBuild _class='hudson.maven.MavenModuleSetBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>126</buildNumber><marked><SHA1>427280be32686d308addb3bd78a3816c82707d89</SHA1><branch><SHA1>427280be32686d308addb3bd78a3816c82707d89</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>427280be32686d308addb3bd78a3816c82707d89</SHA1><branch><SHA1>427280be32686d308addb3bd78a3816c82707d89</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>427280be32686d308addb3bd78a3816c82707d89</SHA1><branch><SHA1>427280be32686d308addb3bd78a3816c82707d89</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/bxservice/idempiere-rest</remoteUrl><scmName></scmName></action><action></action><action _class='hudson.maven.reporters.MavenAggregatedArtifactRecord'></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#126</displayName><duration>23463</duration><estimatedDuration>20318</estimatedDuration><fullDisplayName>idempiere-rest-master #126</fullDisplayName><id>126</id><inProgress>false</inProgress><keepLog>false</keepLog><number>126</number><queueId>5491</queueId><result>FAILURE</result><timestamp>1785552246165</timestamp><url>https://jenkins.younex.de/job/idempiere-rest-master/126/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/BatchRequestResourseImpl.java</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/pom.xml</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/BatchRequestResource.java</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/META-INF/MANIFEST.MF</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/.classpath</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/openapi/idempiere-rest.yml</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/postman/trekglobal-idempiere-rest.postman_collection.json</affectedPath><commitId>427280be32686d308addb3bd78a3816c82707d89</commitId><timestamp>1785502559000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Batch reference resolution: bind$.jsonPathExpr + @#GlobalVar@ in v1/batch (#517)

* Add @Table.Column / @bind.Column / @#GlobalVar reference resolution to v1/batch

* Fix @#GlobalVar snapshot and reject duplicate batch aliases

Snapshot the calling session's context before any sub-request runs so
@#GlobalVar resolution isn't affected by ServerContext.dispose() calls
triggered by earlier sub-requests in the same batch.

Also reject an "as" alias that was already used earlier in the batch,
addressing CodeRabbit feedback on #517: previously a duplicate alias
would silently overwrite the earlier sub-request's entry in
referenceCache, causing later @bind.Column references to resolve
against the wrong sub-request.

* Require closing @ for batch reference tokens, delegate global vars to Env.parseContext

unify the reference grammar to match iDempiere's

* Use sessionCtx snapshot for MTable lookups instead of the disposable live context

* Add @bind$.jsonPathExpr@ batch reference support

Per Heng Sin's alternative on #516: standard JSONPath (RFC 9535)
against a prior sub-request's response, for nested/array access
@bind.Column@ can't do. Embeds json-path/json-smart/accessors-smart;
slf4j/asm are imported from iDempiere's own OSGi bundles instead.

* Extract BatchReferenceResolver to fix clean-code issues from this PR

* Drop flat @Table.Column@/@bind.Column@, standardize on bare JSONPath

* Only recognize #/$/+ prefixed context vars, not any @...@ literal

* Make batch responseAlias mandatory, drop tableName-based chaining, update docs

* Wrap batch alias/JSONPath references in @...@, make responseAlias optional

* Fix illegal multi-catch of InvalidPathException and its subclass PathNotFoundException
</comment><date>2026-07-31 14:55:59 +0200</date><id>427280be32686d308addb3bd78a3816c82707d89</id><msg>Batch reference resolution: bind$.jsonPathExpr + @#GlobalVar@ in v1/batch (#517)</msg><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/postman/trekglobal-idempiere-rest.postman_collection.json</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/openapi/idempiere-rest.yml</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/pom.xml</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/BatchRequestResourseImpl.java</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/.classpath</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/META-INF/MANIFEST.MF</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/BatchRequestResource.java</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><mavenArtifacts></mavenArtifacts><mavenVersionUsed>3.9.6</mavenVersionUsed></mavenModuleSetBuild>