{
  "_class" : "hudson.maven.MavenModuleSetBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 128,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
            "branch" : [
              {
                "SHA1" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
            "branch" : [
              {
                "SHA1" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
        "branch" : [
          {
            "SHA1" : "b8f6cf3f44d25d526d96435ce91615d4efdabba7",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/bxservice/idempiere-rest"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "hudson.maven.reporters.MavenAggregatedArtifactRecord"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#128",
  "duration" : 21615,
  "estimatedDuration" : 22004,
  "executor" : null,
  "fullDisplayName" : "idempiere-rest-master #128",
  "id" : "128",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 128,
  "queueId" : 5609,
  "result" : "FAILURE",
  "timestamp" : 1787971446716,
  "url" : "https://jenkins.younex.de/view/all/job/idempiere-rest-master/128/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "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" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.younex.de/user/noreply",
      "fullName" : "noreply"
    }
  ],
  "mavenArtifacts" : {
    
  },
  "mavenVersionUsed" : "3.9.6"
}