
On 04/07/2016 08:34 AM, Martin Mucha wrote:
----- Original Message -----
On Wed, Apr 6, 2016 at 6:03 PM, Juan Hernández < jhernand@redhat.com > wrote:
On 04/06/2016 11:51 AM, Kai Kang wrote:
Hi,
I am building ovirt-engine 3.6.4.1 and failed with NullPointerException. I build for cross compile with commands:
tmp_repo=/buildarea3/kkang/builds/Mar31-ovrit-engine/bitbake_build/tmp/work/corei7-64-wrs-linux/ovirt-engine/3.6.4.1-r0/repo export MAVEN_OPTS="-Dmaven.repo.local=$tmp_repo"
make EXTRA_BUILD_FLAGS="-s /buildarea3/kkang/builds/Mar31-ovrit-engine/bitbake_build/tmp/work/corei7-64-wrs-linux/ovirt-engine/3.6.4.1-r0/settings.xml --debug --offline" -j1 BUILD_GWT=1 BUILD_LOCALES=0 BUILD_UT=1 BUILD_VALIDATION=0 JAVA_DIR=/usr/share/ovirt-engine/java LOCALSTATE_DIR=/var MAVENPOM_DIR=/usr/share/ovirt-engine/maven-poms PREFIX=/usr SYSCONF_DIR=/etc PKG_SYSCONF_DIR=/etc/ovirt-engine PKG_DOC_DIR=/usr/doc/ovirt-engine PKG_EAR_DIR=/usr/share/ovirt-engine/engine.ear PKG_PKI_DIR=/etc/pki/ovirt-engine PKG_JBOSS_MODULES=/usr/share/ovirt-engine/modules PKG_CACHE_DIR=/var/cache/ovirt-engine PKG_LOG_DIR=/var/log/ovirt-engine PKG_TMP_DIR=/var/tmp/ovirt-engine PKG_STATE_DIR=/var/lib/ovirt-engine PKG_USER=ovirt PKG_GROUP=ovirt all
The error messages show:
[INFO] oVirt Engine API Definition ....................... FAILURE [1.476s] ... [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:java (default) on project restapi-definition: An exception occured while executing the Java class. null: InvocationTargetException: NullPointerException -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:java (default) on project restapi-definition: An exception occured while executing the Java class. null at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) ... at javax.xml.bind.JAXB.marshal(JAXB.java:332) at org.ovirt.engine.api.rsdl.RsdlManager.serializeRsdl(RsdlManager.java:134) at org.ovirt.engine.api.rsdl.RsdlManager.generateRsdlFile(RsdlManager.java:84) at org.ovirt.engine.api.rsdl.RsdlManager.main(RsdlManager.java:58) ... 6 more
My questions are:
1 I know the error occurs in file backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/rsdl/RsdlManager.java, but how to debug it?
2 When I remove pom and jar files of javax.xml.bind.JAXB in mave repo with offline mode, it still could find the class. Which javax.xml.bind.JAXB is used? I searched the ovirt engine repo but didn't find it either.
The version of JAXB used by that area of the code is the version of JAXB included in the JDK that you are using for the build. So the question is what version of the JDK are you using?
Hi Juan,
I am using icedtea7 to build openjdk-7. And I found the JAXB file.
note: I saw same line using java-1.8.0-openjdk installed from repo.
The build of the master branch (what will eventually be oVirt 4) requires Java 8, but Kai Kang is trying to build 3.6.4.1, which should build correctly with Java 7. I just tried that, with the version of OpenJDK 7 included in CentOS 7: $ java -version java version "1.7.0_85" OpenJDK Runtime Environment (rhel-2.6.1.2.el7_1-x86_64 u85-b01) OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode Kai Kang, from the "icedtea7" and "openjdk-7" names I assume that you aren't using CentOS or Fedora, which are the typical distributions used for oVirt. What distribution are you using exactly? And what version of openjdk-7 exactly? If you share that information we may be able to reproduce.
Would you like to give some advice how to debug this issue? Does jdb could debug such code?
The easiest way to debug this to have an IDE, like IntelliJ Idea, or Eclipse, set a breakpoint in the relevant line and then debug the Maven build. You may be able to debug the Maven build with "jdb" as well, but I can't help you with that, I'm not familiar with it. I'd suggest to perform the build of the relevant component only, using the Maven -X option. For example: 1. Do a complete build of the engine, manually: $ mvn clean install -DskipTests This should fail in the same point where it failed previously, as you will be using the same JDK. 2. Change to the directory of the failing component, and repeat the build, with the "-X" flag: $ cd backend/manager/modules/restapi/interface/definition $ mvn clean install -X -DskipTests > build.log That should fail again, but there will be more information in the "build.log" file. Inspect and maybe share it with us. -- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.