{
  "_class" : "hudson.maven.MavenBuild",
  "actions" : [
    {
      "_class" : "hudson.maven.reporters.MavenArtifactRecord",
      "url" : "https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/128/mavenArtifacts/"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom",
      "fileName" : "com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom",
      "relativePath" : "com.trekglobal.idempiere.extensions/com.trekglobal.idempiere.rest.api/1.0.0-SNAPSHOT/com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom"
    }
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#128",
  "duration" : 8416,
  "estimatedDuration" : 8064,
  "executor" : null,
  "fullDisplayName" : "idempiere-rest-master » com.trekglobal.idempiere.rest.api #128",
  "id" : "128",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 128,
  "queueId" : -1,
  "result" : "FAILURE",
  "timestamp" : 1787971448869,
  "url" : "https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/128/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.maven.FilteredChangeLogSet",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/ModelResourceImpl.java"
        ],
        "commitId" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
        "timestamp" : 1787917252000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/noreply",
          "fullName" : "noreply"
        },
        "authorEmail" : "noreply@github.com",
        "comment" : "fix(models): normalize table name to AD_Table.TableName before model class lookup (#533)\u000a\u000aThe models endpoints resolve the table case-insensitively (MTable.get uses\u000aequalsIgnoreCase and UPPER(TableName)) but passed the caller's raw path segment\u000ato MTable.getClass(), which derives a Java class name from that exact string and\u000ais case-sensitive.\u000a\u000aOn a case-insensitive filesystem with exploded-directory bundles (an Eclipse PDE\u000alaunch on macOS or Windows), the wrong-case class file is found on disk and then\u000arejected by defineClass with \"NoClassDefFoundError: ... (wrong name: ...)\". That\u000ais a LinkageError rather than an Exception, so it escapes the resource method's\u000acatch (Exception ex) and the caller receives a bare Jersey 500 instead of a\u000astructured error response. On a case-sensitive filesystem, or from a JAR bundle\u000aon any OS, the lookup misses cleanly and returns null instead.\u000a\u000aNormalize to AD_Table.TableName immediately after the access check in getPO,\u000agetPOs, create and createChild, and use the resolved PO's table name in update\u000aand updateChild. In update and updateChild the name is captured by a lambda, so\u000aa separate single-assignment local is introduced rather than reassigning the\u000aexisting variable.\u000a\u000aNo behaviour change for callers already using the canonical casing.\u000a\u000aFixes #532\u000a\u000aCo-authored-by: Claude Opus 5\u000a",
        "date" : "2026-08-28 13:40:52 +0200",
        "id" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
        "msg" : "fix(models): normalize table name to AD_Table.TableName before model class lookup (#533)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/ModelResourceImpl.java"
          }
        ]
      }
    ],
    "kind" : null
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.younex.de/user/noreply",
      "fullName" : "noreply"
    }
  ],
  "mavenArtifacts" : {
    "url" : "https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/128/mavenArtifacts/"
  }
}