{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 1,
      "buildableTimeMillis" : 1,
      "buildingDurationMillis" : 1806,
      "executingTimeMillis" : 1806,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 9144,
      "waitingTimeMillis" : 9144
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 42,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
            "branch" : [
              {
                "SHA1" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
            "branch" : [
              {
                "SHA1" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
        "branch" : [
          {
            "SHA1" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gitlab.com/libvirt/libvirt-java.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.disk_usage.BuildDiskUsageAction"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#42",
  "duration" : 1806,
  "estimatedDuration" : 49099,
  "executor" : None,
  "fullDisplayName" : "org.libvirt.libvirt-java #42",
  "id" : "42",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 42,
  "queueId" : 14,
  "result" : "FAILURE",
  "timestamp" : 1760453890769,
  "url" : "https://consolving.de/jenkins/job/org.libvirt.libvirt-java/42/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/org/libvirt/jna/Libvirt.java",
          "src/main/java/org/libvirt/TypedParameter.java",
          "src/main/java/org/libvirt/Domain.java",
          "src/main/java/org/libvirt/jna/virTypedParameter.java"
        ],
        "commitId" : "48dfbc13274c3b819c0b35ac6026670308f996c0",
        "timestamp" : 1759246219000,
        "author" : {
          "absoluteUrl" : "https://consolving.de/jenkins/user/mitsuru.kariya",
          "fullName" : "mitsuru.kariya"
        },
        "authorEmail" : "mitsuru.kariya@nttdata.com",
        "comment" : "Fix Domain.getJobStats\u000a\u000aFix the following issues in Domain.getJobStats:\u000a- Fix an exception that occurred when the virTypedParameter[] had zero\u000a  elements.\u000a  virDomainGetJobStats returns successfully with *params == NULL and\u000a  *nparams == 0 when *type == VIR_DOMAIN_JOB_NONE.\u000a  However, calling Structure.toArray(n) with n == 0 causes an\u000a  ArrayIndexOutOfBoundsException.\u000a  This is avoided by directly returning an empty array when *nparams == 0.\u000a- Fix the issue where the first element of virTypedParameter[] was not\u000a  being read.\u000a  The Structure constructor does not automatically read fields.\u000a  This is fixed by explicitly calling the virTypedParameter.read() method\u000a  for the first element.\u000a  Note: Structure.toArray(n) automatically reads fields (i.e., calls the\u000a  virTypedParameter.read() method) for all elements except the first.\u000a- Fix the issue where the value was not being read when virTypedParameter\u000a  was a String.\u000a  Union does not perform pointer-to-value reads (such as char* -> String)\u000a  unless it is the active element.\u000a  This is fixed by explicitly reading the String when\u000a  virTypedParameter.type == VIR_TYPED_STRING.\u000a- Fix a potential crash in virTypedParamsFree when handling String\u000a  parameters.\u000a  When passing a Structure received from a native function as an argument\u000a  to another native function:\u000a    - String fields directly embedded in the Structure are not updated in\u000a      native memory if their values haven't changed.\u000a    - However, Unions embedded in the Structure always update native memory\u000a      for the active element, even if the value hasn't changed.\u000a  Therefore, if the active element of the Union is a String, JNA allocates\u000a  new memory for the string and overwrites the received char* pointer.\u000a  This not only causes the original char* pointer to be leaked, but also\u000a  leads to double-free issues: once by virTypedParamsFree and again by GC\u000a  on the JNA-allocated memory.\u000a  This is avoided by changing the argument type of virTypedParamsFree from\u000a  virTypedParameter[] to Pointer.\u000a\u000aAdditionally, extract the conversion from a pointer to a virTypedParameter\u000aarray to a TypedParameter array into a static method of TypedParameter, as\u000athere are other functions that also receive virTypedParameter arrays.\u000a\u000aSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>\u000a",
        "date" : "2025-10-01 00:30:19 +0900",
        "id" : "48dfbc13274c3b819c0b35ac6026670308f996c0",
        "msg" : "Fix Domain.getJobStats",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/org/libvirt/Domain.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/org/libvirt/TypedParameter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/org/libvirt/jna/virTypedParameter.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/org/libvirt/jna/Libvirt.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/org/libvirt/jna/Libvirt.java",
          "src/main/java/org/libvirt/Domain.java"
        ],
        "commitId" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
        "timestamp" : 1760451642000,
        "author" : {
          "absoluteUrl" : "https://consolving.de/jenkins/user/dan-gitlab",
          "fullName" : "dan-gitlab"
        },
        "authorEmail" : "dan-gitlab@berrange.com",
        "comment" : "Fix incorrect argument type in virDomainMigrate3\u000a\u000aThe 5th argument `flags` of `virDomainMigrate3` is `unsigned int`, not\u000a`unsigned long`.  Therefore, the Java binding should use `int` instead of\u000a`NativeLong`.\u000a\u000aTo maintain backward compatibility, the version taking `NativeLong` as an\u000aargument has been deprecated, and a new version taking `int` has been added.\u000a\u000aAlthough not fully verified, it is likely that no practical issue occurs on\u000asupported platforms because:\u000a\u000a- On 32-bit platforms, `long` and `int` are the same size.\u000a- On 64-bit platforms, the 5th argument is passed via a register.\u000a\u000aSigned-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>\u000a",
        "date" : "2025-10-14 14:20:42 +0000",
        "id" : "c945e7c08c9b0d791d3804480cf74d1b08a4046f",
        "msg" : "Fix incorrect argument type in virDomainMigrate3",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/org/libvirt/jna/Libvirt.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/org/libvirt/Domain.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/mitsuru.kariya",
      "fullName" : "mitsuru.kariya"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/dmytro.klymenchuk",
      "fullName" : "dmytro.klymenchuk"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/fabricio.duarte.jr",
      "fullName" : "fabricio.duarte.jr"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/bage",
      "fullName" : "bage"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/d-kay23",
      "fullName" : "d-kay23"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/fmgb92",
      "fullName" : "fmgb92"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/magnus",
      "fullName" : "magnus"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/dan-gitlab",
      "fullName" : "dan-gitlab"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/code.ryan.lee",
      "fullName" : "code.ryan.lee"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/kajinamit",
      "fullName" : "kajinamit"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/pkrempa",
      "fullName" : "pkrempa"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/eskultet",
      "fullName" : "eskultet"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/berrange",
      "fullName" : "berrange"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/lars.dunemark",
      "fullName" : "lars.dunemark"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/slavkap",
      "fullName" : "slavkap"
    },
    {
      "absoluteUrl" : "https://consolving.de/jenkins/user/abologna",
      "fullName" : "abologna"
    }
  ]
}