Hi Karaf users,

I have a Spring bundle which calls a third party library which itself calls a 
native library. Because of some unfortunate yet understandable decisions of the 
third party, I cannot have a @Bean created more than once.

What's happening for me is that the first load of Karaf and initialisation of 
my bundles, everything works fine. But on the second load, I hit 
UnsatisfiedLinkExceptions with the message that "already loaded in another 
classloader".

It seems that somehow after the first successful run, my Spring configuration 
is being loaded twice.

My bundles:

list -t 0
START LEVEL 100 , List Threshold: 0
 ID | State    | Lvl | Version               | Name
------------------------------------------------------------------------------------------------------------------
  0 | Active   |   0 | 4.2.1                 | System Bundle
  1 | Active   |   5 | 1.4.0                 | OPS4J Base - Lang
  2 | Active   |   5 | 2.2.0.20130927-173417 | bndlib
  3 | Active   |   5 | 1.7.0                 | OPS4J Pax Swissbox :: Bnd Utils
  4 | Active   |   5 | 1.6.0                 | OPS4J Pax Url - Maven Commons
  5 | Active   |   5 | 1.6.0                 | OPS4J Pax Url - aether:
  6 | Active   |   5 | 1.6.0                 | OPS4J Pax Url - wrap:
  7 | Active   |   8 | 1.7.2                 | OPS4J Pax Logging - API
  8 | Active   |   8 | 1.7.2                 | OPS4J Pax Logging - Service
  9 | Active   |  10 | 3.0.1                 | Apache Karaf :: Service :: Guard
 10 | Active   |  10 | 1.6.0                 | Apache Felix Configuration Admin 
Service
 11 | Active   |  11 | 3.2.8                 | Apache Felix File Install
 12 | Active   |  12 | 4.1                   | ASM all classes with debug info
 13 | Active   |  20 | 1.1.0                 | Apache Aries Util
 14 | Active   |  20 | 1.0.0                 | Apache Aries Proxy API
 15 | Active   |  20 | 1.0.2                 | Apache Aries Proxy Service
 16 | Active   |  20 | 1.0.0                 | Apache Aries Blueprint API
 17 | Active   |  20 | 1.0.3                 | Apache Aries Blueprint CM
 18 | Resolved |  20 | 1.0.0                 | Apache Aries Blueprint Core 
Compatiblity Fragment Bundle, Hosts: 19
 19 | Active   |  20 | 1.4.0                 | Apache Aries Blueprint Core, 
Fragments: 18
 20 | Active   |  24 | 3.0.1                 | Apache Karaf :: Deployer :: 
Spring
 21 | Active   |  24 | 3.0.1                 | Apache Karaf :: Deployer :: 
Blueprint
 22 | Active   |  24 | 3.0.1                 | Apache Karaf :: Deployer :: Wrap 
Non OSGi Jar
 23 | Active   |  25 | 3.0.1                 | Apache Karaf :: Region :: Core
 24 | Active   |  25 | 3.0.1                 | Apache Karaf :: Features :: Core
 25 | Active   |  26 | 3.0.1                 | Apache Karaf :: Deployer :: 
Features
 26 | Active   |  30 | 2.11.0                | JLine
 27 | Active   |  30 | 0.2.1                 | JLEdit :: Core
 28 | Active   |  30 | 1.11                  | jansi
 29 | Active   |  30 | 1.4.0                 | OPS4J Base - Util - Property
 30 | Active   |  30 | 1.4.0                 | OPS4J Base - Util - XML
 31 | Active   |  30 | 1.4.0                 | OPS4J Base - Util - Collections
 32 | Active   |  30 | 1.6.0                 | OPS4J Pax Url - Commons
 33 | Active   |  30 | 1.7.0                 | OPS4J Pax Swissbox :: Property
 34 | Active   |  30 | 1.4.0                 | OPS4J Base - Net
 35 | Active   |  30 | 1.4.0                 | OPS4J Base - Monitors
 36 | Active   |  30 | 3.0.1                 | Apache Karaf :: Features :: 
Command
 37 | Active   |  30 | 3.0.1                 | Apache Karaf :: Shell :: Console
 38 | Active   |  30 | 3.0.1                 | Apache Karaf :: JAAS :: Modules
 39 | Active   |  30 | 3.0.1                 | Apache Karaf :: JAAS :: Config
 40 | Active   |  30 | 3.0.1                 | Apache Karaf :: JAAS :: Boot
 41 | Active   |  30 | 0.9.0                 | Apache Mina SSHD :: Core
 42 | Active   |  30 | 3.0.1                 | Apache Karaf :: Bundle :: 
Commands
 43 | Active   |  30 | 3.0.1                 | Apache Karaf :: Shell :: Table
 44 | Active   |  30 | 3.0.1                 | Apache Karaf :: Bundle :: Core
 45 | Active   |  30 | 3.0.1                 | Apache Karaf :: Shell :: Help 
System
 46 | Active   |  30 | 3.0.1                 | Apache Karaf :: System :: Core
 47 | Active   |  30 | 3.0.1                 | Apache Karaf :: System :: Shell 
Commands
 48 | Active   |  30 | 3.0.1                 | Apache Karaf :: Shell :: Various 
Commands
 49 | Active   |  30 | 1.0.0                 | Apache Aries Quiesce API
 50 | Active   |  30 | 3.0.1                 | Apache Karaf :: ConfigAdmin :: 
Core
 51 | Active   |  30 | 3.0.1                 | Apache Karaf :: ConfigAdmin :: 
Commands
 52 | Active   |  30 | 0.10.0                | Apache Felix Gogo Runtime
 53 | Active   |  30 | 3.0.1                 | Apache Karaf :: Instance :: Core
 54 | Active   |  30 | 3.0.1                 | Apache Karaf :: Instance :: 
Command
 55 | Active   |  30 | 3.0.1                 | Apache Karaf :: JAAS :: Command
 56 | Active   |  30 | 3.0.1                 | Apache Karaf :: Diagnostic :: 
Core
 57 | Active   |  30 | 3.0.1                 | Apache Karaf :: Diagnostic :: 
Command
 58 | Active   |  30 | 3.0.1                 | Apache Karaf :: Log :: Core
 59 | Active   |  30 | 3.0.1                 | Apache Karaf :: Log :: Command
 60 | Active   |  30 | 3.0.1                 | Apache Karaf :: Service :: Core
 61 | Active   |  30 | 3.0.1                 | Apache Karaf :: Service :: 
Command
 62 | Active   |  30 | 3.0.1                 | Apache Karaf :: Package :: Core
 63 | Active   |  30 | 3.0.1                 | Apache Karaf :: Package :: 
Commands
 64 | Active   |  30 | 1.0.0.v20110524       | Region Digraph
 65 | Active   |  30 | 3.0.1                 | Apache Karaf :: Region :: 
Persistence
 66 | Active   |  30 | 3.0.1                 | Apache Karaf :: Region :: Shell 
Commands
 67 | Active   |  30 | 3.0.1                 | Apache Karaf :: KAR :: Core
 68 | Active   |  30 | 3.0.1                 | Apache Karaf :: KAR :: Command
 69 | Active   |  30 | 3.0.1                 | Apache Karaf :: Deployer :: 
Karaf Archive (.kar)
 70 | Active   |  30 | 2.0.7                 | Apache MINA Core
 71 | Active   |  30 | 3.0.1                 | Apache Karaf :: Shell :: SSH
 72 | Active   |  30 | 3.0.1                 | Apache Karaf :: Management
 73 | Active   |  30 | 1.1.0                 | Apache Aries JMX API
 74 | Active   |  30 | 1.1.1                 | Apache Aries JMX Core
 75 | Active   |  30 | 1.1.0                 | Apache Aries JMX Blueprint API
 76 | Active   |  30 | 1.1.0                 | Apache Aries JMX Blueprint Core
 77 | Active   |  30 | 1.0.0                 | Apache Aries JMX Whiteboard
 78 | Active   |  80 | 0.0.1.BUILD-SNAPSHOT  | entity.definition
 79 | Active   |  80 | 0.0.1.BUILD-SNAPSHOT  | couchbase-lite
 80 | Active   |  80 | 1.9.2                 | Data mapper for Jackson JSON 
processor
 81 | Active   |  80 | 3.7                   | or.apache.poi
 82 | Active   |  80 | 1.1.3                 | Commons Logging
 83 | Failure  |  80 | 0.0.1.BUILD-SNAPSHOT  | data
 84 | Active   |  80 | 1.9.2                 | Jackson JSON processor
 85 | Active   |  80 | 1.3                   | commons-codec
 86 | Active   |  80 | 0.0.1.BUILD-SNAPSHOT  | stockcheck.definition
 87 | Active   |  80 | 0.0.1.BUILD-SNAPSHOT  | sweelee.web
 88 | Active   |  80 | 2.4.0                 | XMLBeans Development Kit
 89 | Active   |  80 | 0.0.0                 | vaadin.xml
 90 | Active   |  80 | 0.0.1.BUILD-SNAPSHOT  | import.definition
 91 | Active   |  80 | 1.6.1                 | dom4j DOM Processor
 92 | Active   |  30 | 2.2.0                 | Apache ServiceMix :: Specs :: 
Activation API 1.4
 93 | Active   |  30 | 1.0                   | Servlet 3.0
 94 | Active   |  30 | 1.4.4                 | JavaMail API (compat)
 95 | Active   |  30 | 1.1.1                 | geronimo-jta_1.1_spec
 96 | Active   |  30 | 1.0.1                 | Annotation 1.1
 97 | Active   |  30 | 1.1                   | Java Authentication SPI for 
Containers
 98 | Active   |  30 | 8.1.14.v20131031      | Jetty :: Aggregate :: All Server
 99 | Active   |  30 | 1.6.0                 | OPS4J Pax Swissbox :: OSGi Core
100 | Active   |  30 | 1.6.0                 | OPS4J Pax Swissbox :: Optional 
JCL
101 | Active   |  20 | 3.16.0                | Apache XBean OSGI Bundle 
Utilities
102 | Active   |  20 | 3.16.0                | Apache XBean :: ASM 4 shaded 
(repackaged)
103 | Active   |  20 | 3.16                  | Apache XBean :: Reflect
104 | Active   |  20 | 3.16.0                | Apache XBean :: Finder shaded 
(repackaged)
105 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - API
106 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - Service SPI
107 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - Runtime
108 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - Jetty
109 | Active   |  30 | 3.0.1                 | Apache Karaf :: HTTP :: Core
110 | Active   |  30 | 3.0.1                 | Apache Karaf :: HTTP :: Commands
111 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - Jsp Support
112 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - Extender - 
Whiteboard
113 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - Extender - WAR
114 | Active   |  30 | 3.1.0                 | OPS4J Pax Web - FileInstall 
Deployer
115 | Active   |  30 | 1.4.2                 | OPS4J Pax Url - war
116 | Active   |  30 | 1.4.2                 | OPS4J Pax Url - Commons
117 | Active   |  30 | 1.6.0                 | OPS4J Pax Swissbox :: Bnd Utils
118 | Active   |  30 | 1.6.0                 | OPS4J Pax Swissbox :: Property
119 | Active   |  30 | 1.43.0                | aQute Bundle Tool Library
120 | Active   |  30 | 3.0.1                 | Apache Karaf :: Web :: Core
121 | Active   |  30 | 3.0.1                 | Apache Karaf :: Web :: Commands
122 | Active   |  80 | 7.1.15                | vaadin-server
123 | Active   |  80 | 7.1.15                | vaadin-client-compiled
124 | Active   |  80 | 7.1.15                | vaadin-shared
125 | Active   |  80 | 1.0.2                 | vaadin-shared-deps
126 | Active   |  80 | 7.1.15                | vaadin-themes
127 | Active   |  80 | 1.6.3                 | jsoup
128 | Active   |  30 | 1.0.0.6               | Apache ServiceMix :: Bundles :: 
aopalliance
129 | Active   |  30 | 3.2.4.RELEASE         | Spring Core
130 | Active   |  30 | 3.2.4.RELEASE         | Spring Expression Language
131 | Active   |  30 | 3.2.4.RELEASE         | Spring Beans
132 | Active   |  30 | 3.2.4.RELEASE         | Spring AOP
133 | Active   |  30 | 3.2.4.RELEASE         | Spring Context
134 | Active   |  30 | 3.2.4.RELEASE         | Spring Context Support
135 | Active   |  30 | 3.0.0.1               | Apache ServiceMix :: Bundles :: 
cglib
136 | Active   |  30 | 1.2.1                 | spring-osgi-io
137 | Active   |  30 | 1.2.1                 | spring-osgi-core
138 | Active   |  30 | 1.2.1                 | spring-osgi-extender
139 | Active   |  30 | 1.2.1                 | spring-osgi-annotation
140 | Active   |  30 | 3.0.1                 | Apache Karaf :: Bundle :: 
SpringStateService
141 | Active   |  30 | 3.2.4.RELEASE         | Spring Web
142 | Active   |  30 | 3.2.4.RELEASE         | Spring Web Servlet
143 | Active   |  30 | 1.2.1                 | spring-osgi-web


The spring application is #83 (enigmatically called "data") and has a Spring-DM 
configuration file which just creates a JavaConfig bean, one of which is being 
instantiated twice. I put some logging into this bean definition:
System.out.println("Making a database from: "+ 
Thread.currentThread().getContextClassLoader());
On the second load of Karaf, this line appears twice with "Making a database 
from: BundleDelegatingClassLoader for [null (data)]" for both outputs, the 
second of which throws the UnsatisfiedLinkException and fails to load the 
bundle. If I stop and start the bundle again, the same thing happens. If I rm 
-rf data and re-run Karaf the application works fine after installing the 
necessary features.

Any suggestions?
Best, Dan.



Reply via email to