[ 
https://issues.apache.org/jira/browse/KARAF-6345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16936704#comment-16936704
 ] 

Toni Lappalainen commented on KARAF-6345:
-----------------------------------------

In our project, we possibly have the same issue. I stripped down the project as 
much as possible while still being able to reproduce the issue.

This is the features.xml
{code:java}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features name="test-db-1.2.3" 
xmlns="http://karaf.apache.org/xmlns/features/v1.4.0";>
    <feature name="install-bundles" version="1.2.3">
        <feature>scr</feature>
        <feature>akka</feature>
        <feature prerequisite="true">akka-persistence</feature>
        <!-- <bundle start="false">mvn:com.test.my/test-db/1.2.3</bundle> -->
    </feature>    
    <feature name="start-bundles" version="1.2.3">
        <feature>install-bundles</feature>
        <bundle start-level="75">mvn:com.test.my/test-db/1.2.3</bundle>
    </feature>    
    <feature name="scala" version="2.12.8">
        <bundle dependency="true" 
start-level="20">mvn:org.scala-lang/scala-library/2.12.8</bundle>
        <bundle dependency="true" 
start-level="20">mvn:org.scala-lang/scala-reflect/2.12.8</bundle>
        <bundle dependency="true" 
start-level="20">mvn:org.scala-lang.modules/scala-java8-compat_2.12/0.8.0</bundle>
    </feature>    
    <feature name="akka" version="2.5.25">
        <feature prerequisite="true">wrap</feature>
        <feature>scala</feature>
        <bundle dependency="true" 
start-level="30">mvn:com.typesafe.akka/akka-actor_2.12/2.5.25</bundle>
        <bundle dependency="true" 
start-level="30">mvn:com.typesafe.akka/akka-osgi_2.12/2.5.25</bundle>
        <bundle dependency="true" 
start-level="30">mvn:com.typesafe.akka/akka-slf4j_2.12/2.5.25</bundle>
        <bundle dependency="true" 
start-level="30">mvn:com.typesafe.akka/akka-protobuf_2.12/2.5.25</bundle>
        <bundle dependency="true" 
start-level="30">mvn:com.typesafe/config/1.3.4</bundle>
    </feature>    
    <feature name="akka-persistence" version="2.5.25">
        <feature prerequisite="true">leveldb</feature>
        <bundle dependency="true" 
start-level="30">mvn:com.typesafe.akka/akka-persistence_2.12/2.5.25</bundle>
    </feature>    
    <feature name="leveldb" version="2.5.25">
        <feature prerequisite="true">wrap</feature>
        <bundle dependency="true" 
start-level="20">wrap:mvn:org.iq80.leveldb/leveldb/0.9</bundle>
        <bundle dependency="true" 
start-level="20">mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8</bundle>
    </feature>
</features>
{code}
When I run feature:install -v start-bundles
{code:java}
karaf@root()> feature:install -v start-bundles
Adding features: start-bundles/[1.2.3,1.2.3]
Changes to perform:
  Region: root
    Bundles to install:
      mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.wrap/4.2.4
      mvn:org.ops4j.pax.url/pax-url-wrap/2.6.1/jar/uber
Installing bundles:
  mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.wrap/4.2.4
  mvn:org.ops4j.pax.url/pax-url-wrap/2.6.1/jar/uber
Starting bundles:
  org.ops4j.pax.url.wrap/2.6.1
  org.apache.karaf.deployer.wrap/4.2.4
Done.
No deployment change.
Done.
No deployment change.
Done.
Changes to perform:
  Region: root
    Bundles to install:
      mvn:com.typesafe.akka/akka-actor_2.12/2.5.25
      mvn:com.typesafe.akka/akka-osgi_2.12/2.5.25
      mvn:com.typesafe.akka/akka-persistence_2.12/2.5.25
      mvn:com.typesafe.akka/akka-protobuf_2.12/2.5.25
      mvn:com.typesafe.akka/akka-slf4j_2.12/2.5.25
      mvn:com.typesafe/config/1.3.4
      mvn:org.apache.felix/org.apache.felix.scr/2.1.16
      mvn:org.apache.karaf.scr/org.apache.karaf.scr.management/4.2.4
      mvn:org.apache.karaf.scr/org.apache.karaf.scr.state/4.2.4
      mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8
      mvn:org.osgi/org.osgi.util.function/1.0.0
      mvn:org.osgi/org.osgi.util.promise/1.0.0
      mvn:org.scala-lang.modules/scala-java8-compat_2.12/0.8.0
      mvn:org.scala-lang/scala-library/2.12.8
      mvn:com.test.my/test-db/1.2.3
      wrap:mvn:org.iq80.leveldb/leveldb/0.9
Installing bundles:
  mvn:com.typesafe.akka/akka-actor_2.12/2.5.25
  mvn:com.typesafe.akka/akka-osgi_2.12/2.5.25
  mvn:com.typesafe.akka/akka-persistence_2.12/2.5.25
  mvn:com.typesafe.akka/akka-protobuf_2.12/2.5.25
  mvn:com.typesafe.akka/akka-slf4j_2.12/2.5.25
  mvn:com.typesafe/config/1.3.4
  mvn:org.apache.felix/org.apache.felix.scr/2.1.16
  mvn:org.apache.karaf.scr/org.apache.karaf.scr.management/4.2.4
  mvn:org.apache.karaf.scr/org.apache.karaf.scr.state/4.2.4
  mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8
  mvn:org.osgi/org.osgi.util.function/1.0.0
  mvn:org.osgi/org.osgi.util.promise/1.0.0
  mvn:org.scala-lang.modules/scala-java8-compat_2.12/0.8.0
  mvn:org.scala-lang/scala-library/2.12.8
  mvn:com.test.my/test-db/1.2.3
  wrap:mvn:org.iq80.leveldb/leveldb/0.9
Starting bundles:
  org.fusesource.leveldbjni.leveldbjni-all/1.8.0
  org.scala-lang.scala-library/2.12.8.v20181128-140630-VFINAL-38cd84d
  
wrap_file__C__Users_Username_.m2_repository_org_iq80_leveldb_leveldb_0.9_leveldb-0.9.jar/0.0.0
  org.scala-lang.modules.scala-java8-compat/0.8.0
  org.osgi.util.function/1.0.0.201505202023
  org.osgi.util.promise/1.0.0.201505202023
  org.apache.felix.scr/2.1.16
  org.apache.karaf.scr.state/4.2.4
  com.typesafe.akka.protobuf/2.5.25
  com.typesafe.config/1.3.4
  org.apache.karaf.scr.management/4.2.4
  com.typesafe.akka.slf4j/2.5.25
  com.typesafe.akka.osgi/2.5.25
  com.typesafe.akka.actor/2.5.25
  com.typesafe.akka.persistence/2.5.25
  test-db/1.2.3
Done.
karaf@root()> Uncaught error from thread 
[actor-system-akka.actor.default-dispatcher-3]: org/iq80/leveldb/DBFactory, 
shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for 
ActorSystem[actor-system]
java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
        at java.lang.Class.getDeclaredConstructors(Class.java:2020)
        at akka.util.Reflect$.findConstructor(Reflect.scala:92)
        at 
akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:443)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:433)
        at akka.actor.ActorSystemImpl.registerExtension(ActorSystem.scala:1006)
        at akka.actor.ExtensionId.apply(Extension.scala:79)
        at akka.actor.ExtensionId.apply$(Extension.scala:78)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.apply(Persistence.scala:433)
        at akka.persistence.Persistence.pluginHolderFor(Persistence.scala:391)
        at akka.persistence.Persistence.journalConfigFor(Persistence.scala:338)
        at akka.persistence.Eventsourced.$init$(Eventsourced.scala:97)
        at com.test.db.DB.<init>(DB.scala:6)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at java.lang.Class.newInstance(Class.java:442)
        at akka.util.Reflect$.instantiate(Reflect.scala:46)
        at 
akka.actor.NoArgsReflectConstructor.produce(IndirectActorProducer.scala:110)
        at akka.actor.Props.newActor(Props.scala:212)
        at akka.actor.ActorCell.newActor(ActorCell.scala:648)
        at akka.actor.ActorCell.create(ActorCell.scala:674)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:547)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:569)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:293)
        at akka.dispatch.Mailbox.run(Mailbox.scala:228)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at 
akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at 
akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory not 
found by com.typesafe.akka.persistence [47]
        at 
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
        at 
org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
        at 
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 34 more
{code}
I have a workaround for this. If I uncomment <bundle 
start="false">mvn:com.test.my/test-db/1.2.3</bundle> in install-bundles feature 
the feature installation succeeds.
{code:java}
karaf@root()> feature:install -v start-bundles
Adding features: start-bundles/[1.2.3,1.2.3]
Changes to perform:
  Region: root
    Bundles to install:
      mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.wrap/4.2.4
      mvn:org.ops4j.pax.url/pax-url-wrap/2.6.1/jar/uber
Installing bundles:
  mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.wrap/4.2.4
  mvn:org.ops4j.pax.url/pax-url-wrap/2.6.1/jar/uber
Starting bundles:
  org.ops4j.pax.url.wrap/2.6.1
  org.apache.karaf.deployer.wrap/4.2.4
Done.
No deployment change.
Done.
No deployment change.
Done.
Changes to perform:
  Region: root
    Bundles to install:
      mvn:com.typesafe.akka/akka-actor_2.12/2.5.25
      mvn:com.typesafe.akka/akka-osgi_2.12/2.5.25
      mvn:com.typesafe.akka/akka-persistence_2.12/2.5.25
      mvn:com.typesafe.akka/akka-protobuf_2.12/2.5.25
      mvn:com.typesafe.akka/akka-slf4j_2.12/2.5.25
      mvn:com.typesafe/config/1.3.4
      mvn:org.apache.felix/org.apache.felix.scr/2.1.16
      mvn:org.apache.karaf.scr/org.apache.karaf.scr.management/4.2.4
      mvn:org.apache.karaf.scr/org.apache.karaf.scr.state/4.2.4
      mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8
      mvn:org.osgi/org.osgi.util.function/1.0.0
      mvn:org.osgi/org.osgi.util.promise/1.0.0
      mvn:org.scala-lang.modules/scala-java8-compat_2.12/0.8.0
      mvn:org.scala-lang/scala-library/2.12.8
      mvn:com.test.my/test-db/1.2.3
      wrap:mvn:org.iq80.leveldb/leveldb/0.9
Installing bundles:
  mvn:com.typesafe.akka/akka-actor_2.12/2.5.25
  mvn:com.typesafe.akka/akka-osgi_2.12/2.5.25
  mvn:com.typesafe.akka/akka-persistence_2.12/2.5.25
  mvn:com.typesafe.akka/akka-protobuf_2.12/2.5.25
  mvn:com.typesafe.akka/akka-slf4j_2.12/2.5.25
  mvn:com.typesafe/config/1.3.4
  mvn:org.apache.felix/org.apache.felix.scr/2.1.16
  mvn:org.apache.karaf.scr/org.apache.karaf.scr.management/4.2.4
  mvn:org.apache.karaf.scr/org.apache.karaf.scr.state/4.2.4
  mvn:org.fusesource.leveldbjni/leveldbjni-all/1.8
  mvn:org.osgi/org.osgi.util.function/1.0.0
  mvn:org.osgi/org.osgi.util.promise/1.0.0
  mvn:org.scala-lang.modules/scala-java8-compat_2.12/0.8.0
  mvn:org.scala-lang/scala-library/2.12.8
  mvn:com.test.my/test-db/1.2.3
  wrap:mvn:org.iq80.leveldb/leveldb/0.9
Starting bundles:
  org.scala-lang.scala-library/2.12.8.v20181128-140630-VFINAL-38cd84d
  org.fusesource.leveldbjni.leveldbjni-all/1.8.0
  
wrap_file__C__Users_Username_.m2_repository_org_iq80_leveldb_leveldb_0.9_leveldb-0.9.jar/0.0.0
  org.scala-lang.modules.scala-java8-compat/0.8.0
  org.osgi.util.function/1.0.0.201505202023
  org.osgi.util.promise/1.0.0.201505202023
  org.apache.felix.scr/2.1.16
  com.typesafe.config/1.3.4
  com.typesafe.akka.osgi/2.5.25
  org.apache.karaf.scr.management/4.2.4
  com.typesafe.akka.protobuf/2.5.25
  com.typesafe.akka.persistence/2.5.25
  com.typesafe.akka.slf4j/2.5.25
  org.apache.karaf.scr.state/4.2.4
  com.typesafe.akka.actor/2.5.25
Done.
{code}

> Optional imports do not propagate to OSGi framework
> ---------------------------------------------------
>
>                 Key: KARAF-6345
>                 URL: https://issues.apache.org/jira/browse/KARAF-6345
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.2.4, 4.2.5, 4.2.6
>            Reporter: Robert Varga
>            Assignee: Jean-Baptiste Onofré
>            Priority: Critical
>             Fix For: 4.3.0, 4.2.8
>
>
> Based on 
> [https://lists.apache.org/thread.html/bf9e724cc9715b2a568bac7537a7be4a8df85867a2126bbd14e4e79d@%3Cdev.karaf.apache.org%3E]
> The problem is that:
> {noformat}
> java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
>         at java.lang.Class.getDeclaredConstructors0(Native Method)
>         at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
>         at java.lang.Class.getDeclaredConstructors(Class.java:2020)
>         at akka.util.Reflect$.findConstructor(Reflect.scala:92)
>         at 
> akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
> [snip]
> Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory 
> cannot be found by com.typesafe.akka.persistence_2.5.23
>         at 
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
>         at 
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
>         at 
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
>         at 
> org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         ... 32 more{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to