Hello everyone,

We’re in the process of switching our custom Karaf application to OpenJDK from 
Oracle JRE.  We’ve successfully ported it to OpenJDK 8, but I’m having troubles 
getting it to run using OpenJDK 11.

Summary: Building and running with OpenJDK8 works as expected.

If I build the application with OpenJDK11 and run with OpenJDK11, I see this 
when running karaf.vat:
C >.\karaf.bat
karaf.bat: Enabling Java debug options: 
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in 
version 9.0 and will likely be removed in a future release.
Listening for transport dt_socket at address: 5005
ERROR: Error parsing system bundle export statement: 
org.osgi.dto;version="1.0",org.osgi.resource;version="1.0",org.osgi.resource.dto;version="1.0";uses:="org.osgi.d
to",org.osgi.framework;version="1.8",org.osgi.framework.dto;version="1.8";uses:="org.osgi.dto",org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi.framewor
k",org.osgi.framework.hooks.resolver;version="1.0";uses:="org.osgi.framework.wiring",org.osgi.framework.hooks.service;version="1.1";uses:="org.osgi.framework",org.os
gi.framework.hooks.weaving;version="1.1";uses:="org.osgi.framework.wiring",org.osgi.framework.launch;version="1.2";uses:="org.osgi.framework",org.osgi.framework.name
space;version="1.1";uses:="org.osgi.resource",org.osgi.framework.startlevel;version="1.0";uses:="org.osgi.framework",org.osgi.framework.startlevel.dto;version="1.0";
uses:="org.osgi.dto",org.osgi.framework.wiring;version="1.2";uses:="org.osgi.framework,org.osgi.resource",org.osgi.framework.wiring.dto;version="1.2";uses:="org.osgi
.dto,org.osgi.resource.dto",org.osgi.service.condpermadmin;version="1.1.1";uses:="org.osgi.framework,org.osgi.service.permissionadmin",org.osgi.service.packageadmin;
version="1.2";uses:="org.osgi.framework",org.osgi.service.permissionadmin;version="1.2",org.osgi.service.resolver;version="1.0";uses:="org.osgi.resource",org.osgi.se
rvice.startlevel;version="1.1";uses:="org.osgi.framework",org.osgi.service.url;version="1.0",org.osgi.util.tracker;version="1.5.1";uses:="org.osgi.framework",org.apa
che.karaf.version;version="4.2.1",org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version="4.2.1",org.apache.karaf.jaas.boot;uses:="javax.security.aut
h,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework";version="4.2.1",,org.apache.karaf.branding,
 sun.misc, org.apache
.karaf.diagnostic.core;uses:=org.osgi.framework;version=4.2.1, 
org.apache.karaf.diagnostic.core.common;uses:=org.apache.karaf.diagnostic.core;version=4.2.1,
 org.apac
he.karaf.jaas.boot;uses:="javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework";version=4.2.1,
 org.a
pache.karaf.jaas.boot.principal;uses:=javax.security.auth;version=4.2.1
org.osgi.framework.BundleException: Exported package names cannot be zero 
length.
        at 
org.apache.felix.framework.util.manifestparser.ManifestParser.normalizeExportClauses(ManifestParser.java:876)
        at 
org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(ManifestParser.java:215)
        at 
org.apache.felix.framework.ExtensionManager.<init>(ExtensionManager.java:261)
        at org.apache.felix.framework.Felix.<init>(Felix.java:429)
        at 
org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:28)
        at org.apache.karaf.main.Main.launch(Main.java:256)
        at org.apache.karaf.main.Main.main(Main.java:178)
Error installing bundle listed in startup.properties with url: 
mvn:org.apache.karaf.features/org.apache.karaf.features.extension/4.2.1 and 
startlevel: 1

In data/log/karaf.log, I see this:
Nov 30, 2018 9:16:56 AM org.apache.karaf.main.Main launch
INFO: Installing and starting initial bundles
Nov 30, 2018 9:16:56 AM org.apache.karaf.main.Main main
SEVERE: Could not launch framework
java.lang.RuntimeException: Error installing bundle listed in 
startup.properties with url: 
mvn:org.apache.karaf.features/org.apache.karaf.features.extension/4.2.1 and 
startlevel: 1
        at org.apache.karaf.main.Main.installAndStartBundles(Main.java:550)
        at org.apache.karaf.main.Main.launch(Main.java:273)
        at org.apache.karaf.main.Main.main(Main.java:178)
Caused by: org.osgi.framework.BundleException: Could not create bundle object.
        at org.apache.felix.framework.Felix.installBundle(Felix.java:3095)
        at 
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:167)
        at org.apache.karaf.main.Main.installAndStartBundles(Main.java:543)
        ... 2 more
Caused by: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for 
length 0
        at 
java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
        at 
java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
        at 
java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
        at java.base/java.util.Objects.checkIndex(Objects.java:372)
        at java.base/java.util.ArrayList.get(ArrayList.java:458)
        at 
org.apache.felix.framework.ExtensionManager.addExtensionBundle(ExtensionManager.java:516)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:3061)
        ... 4 more

I see the same error message after removing our new feature from the 
featuresBoot property in the config etc/org.apache.karaf.features.cfg and when 
I replace the startup.properties file with the one that ships with the vanilla 
karaf 4.2.1 distribution.  For what it’s worth, the Export statement in output 
for karaf.bat belongs to the lib/goot/org.osgi.core-6.0.0.jar.

What settings can I modify to get more information about the bundle/jar file 
that’s causing the IndexOutOfBoundsException showing up in the karaf.log?
--
Javer Delgadillo | Realtime GIS Engineer/ScrumMaster
Esri | 380 New York St | Redlands, CA 92373 | USA
T 909 793 2853 x1068 | [email protected] | esri.com

THE
SCIENCE
OF
WHERE™

Reply via email to