<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>122</buildNumber><marked><SHA1>30806f1892139c01e8e5614a92d588d3d197fdb0</SHA1><branch><SHA1>30806f1892139c01e8e5614a92d588d3d197fdb0</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>30806f1892139c01e8e5614a92d588d3d197fdb0</SHA1><branch><SHA1>30806f1892139c01e8e5614a92d588d3d197fdb0</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>30806f1892139c01e8e5614a92d588d3d197fdb0</SHA1><branch><SHA1>30806f1892139c01e8e5614a92d588d3d197fdb0</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'><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.extensions.main</artifactId><canonicalName>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>4da960446bbb5ebfa10f83ca57afa10e</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.extensions.main</artifactId><canonicalName>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>4da960446bbb5ebfa10f83ca57afa10e</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/122/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.extensions.p2</artifactId><canonicalName>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>05e296b67c0c19db23d520228ec88296</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.extensions.p2</artifactId><canonicalName>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>05e296b67c0c19db23d520228ec88296</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/122/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.rest.api</artifactId><canonicalName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>38556421e3a49ad221b8b847c4ecff08</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.rest.api</artifactId><canonicalName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>38556421e3a49ad221b8b847c4ecff08</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/122/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.rest.api.test</artifactId><canonicalName>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>6b92f8ef39daeb8f6844c4e5ed1a4ce2</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.rest.api.test</artifactId><canonicalName>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>6b92f8ef39daeb8f6844c4e5ed1a4ce2</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/122/mavenArtifacts/</url></moduleRecord></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.younex.de/view/all/job/idempiere-rest-master/122/artifact</artifactsUrl><changesUrl>https://jenkins.younex.de/view/all/job/idempiere-rest-master/changes</changesUrl><displayUrl>https://jenkins.younex.de/view/all/job/idempiere-rest-master/122/</displayUrl><testsUrl>https://jenkins.younex.de/view/all/job/idempiere-rest-master/122/testReport</testsUrl></action><building>false</building><displayName>#122</displayName><duration>16360</duration><estimatedDuration>18192</estimatedDuration><fullDisplayName>idempiere-rest-master #122</fullDisplayName><id>122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>122</number><queueId>5231</queueId><result>FAILURE</result><timestamp>1781059450239</timestamp><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/122/</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/ModelResourceImpl.java</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/json/ResponseUtils.java</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/json/DefaultPOSerializer.java</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/json/IPOSerializer.java</affectedPath><commitId>30806f1892139c01e8e5614a92d588d3d197fdb0</commitId><timestamp>1781008787000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Use status 400 for field validation errors (DAD-379) #497 (#502)

* Use status 400 for field validation errors (DAD-379) #497

* Mandatory and not updateable column validation for update

* Move mandatory fields validation from DefaultPOSerializer to before save event handler.

* Fix potential event handler leak

- incorporate other coderabbitai suggestions

* Fix event handler registration

- add SALESREP_ID and AD_USER_NAME to context to make it more consistent
with Web Client
- fix setDefaultValue not ignoring key and uuid
column/home/hengsin/workspace/pcn/idempiere-rest/com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/ModelResourceImpl.java

* Handle explicit JsonNull and isJsonPrimitive

* Translate validForeignKeysEx and CrossTenantException to bad request exception

* Move setDefaultValue and validate mandatory fields to before save event handler.

* Fix potential NPE

* Incorporate patch from Carlos to fix update of context and default parsing

* Simplify loop detection

* Don't fill default value for update

- Surface IDempiereRestException for createChild.

* Add null check for dependentColumn
</comment><date>2026-06-09 14:39:47 +0200</date><id>30806f1892139c01e8e5614a92d588d3d197fdb0</id><msg>Use status 400 for field validation errors (DAD-379) #497 (#502)</msg><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/json/DefaultPOSerializer.java</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/ModelResourceImpl.java</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/json/IPOSerializer.java</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/json/ResponseUtils.java</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName><id>noreply</id></culprit><mavenArtifacts><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.extensions.main</artifactId><canonicalName>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>4da960446bbb5ebfa10f83ca57afa10e</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.extensions.main</artifactId><canonicalName>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>4da960446bbb5ebfa10f83ca57afa10e</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/122/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.extensions.p2</artifactId><canonicalName>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>05e296b67c0c19db23d520228ec88296</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.extensions.p2</artifactId><canonicalName>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>05e296b67c0c19db23d520228ec88296</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/122/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.rest.api</artifactId><canonicalName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>38556421e3a49ad221b8b847c4ecff08</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.rest.api</artifactId><canonicalName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>38556421e3a49ad221b8b847c4ecff08</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/122/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.rest.api.test</artifactId><canonicalName>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>6b92f8ef39daeb8f6844c4e5ed1a4ce2</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><number>122</number><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/122/</url></parent><pomArtifact><artifactId>com.trekglobal.idempiere.rest.api.test</artifactId><canonicalName>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>6b92f8ef39daeb8f6844c4e5ed1a4ce2</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/view/all/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/122/mavenArtifacts/</url></moduleRecord></mavenArtifacts><mavenVersionUsed>3.9.6</mavenVersionUsed></mavenModuleSetBuild>