<mavenBuild _class='hudson.maven.MavenBuild'><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/122/mavenArtifacts/</url></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</displayPath><fileName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</fileName><relativePath>com.trekglobal.idempiere.extensions/com.trekglobal.idempiere.rest.api/1.0.0-SNAPSHOT/com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>com.trekglobal.idempiere.rest.api</displayName><duration>7356</duration><estimatedDuration>7272</estimatedDuration><fullDisplayName>idempiere-rest-master » com.trekglobal.idempiere.rest.api com.trekglobal.idempiere.rest.api</fullDisplayName><id>122</id><inProgress>false</inProgress><keepLog>false</keepLog><number>122</number><queueId>-1</queueId><result>FAILURE</result><timestamp>1781059451060</timestamp><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/122/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><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/v1/resource/impl/ModelResourceImpl.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/ResponseUtils.java</file></path><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></item></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><mavenArtifacts><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/122/mavenArtifacts/</url></mavenArtifacts></mavenBuild>