Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Using Brooklyn 0.10.0-SNAPSHOT, running in karaf...
A customer deployed an app, which uses entity and policy classes defined in an OSGi bundle (supplied via brooklyn.libraries). A simplified version of the catalog item is something like that below (where com.example.apps.MyTopLevelApp and com.example.policies.MyPolicy are Java classes in my-bundle.jar):
brooklyn.catalog: brooklyn.libraries: - file:///path/to/my-bundle.jar id: com.example.MyApp itemType: template version: 1.3 description: My App displayName: My App item: services: - type: com.example.apps.MyTopLevelApp brooklyn.config: childSpec: $brooklyn:entitySpec: type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess name: Sshable brooklyn.config: checkRunning.command: echo true customize.command: echo true launch.command: echo true brooklyn.policies: - type: com.example.policies.MyPolicy
This deploys fine. However, when one stops and restarts Brooklyn (so rebinding to persisted state) it gives the exception below:
2016-12-14 09:30:47,157 WARN 116 o.a.b.c.m.r.RebindExceptionHandlerImpl [nager-msT0tE2K-0] Rebind: continuing after problem creating POLICY isk2552l4k of type com.example.policies.MyPolicy java.lang.IllegalStateException: Unable to load com.example.policies.MyPolicy from []: Invalid class: com.example.policies.MyPolicy: ClassNotFoundException: com.example.policies.MyPolicy at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:337)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.util.guava.Maybe$Absent.get(Maybe.java:331)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.classloading.AbstractBrooklynClassLoadingContext.loadClass(AbstractBrooklynClassLoadingContext.java:55)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration$BrooklynObjectInstantiator.load(RebindIteration.java:953)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration$BrooklynObjectInstantiator.newPolicy(RebindIteration.java:1039)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.instantiateAdjuncts(RebindIteration.java:482)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:242)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:266)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:558)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:508)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:506)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:522)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_71] at java.lang.Thread.run(Thread.java:745)[:1.7.0_71] Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Unable to load com.example.policies.MyPolicy from []: Invalid class: com.example.policies.MyPolicy: ClassNotFoundException: com.example.policies.MyPolicy at org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:432)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:88)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.classloading.AbstractBrooklynClassLoadingContext.tryLoadClass(AbstractBrooklynClassLoadingContext.java:61)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] ... 15 more Caused by: java.lang.IllegalStateException: Invalid class: com.example.policies.MyPolicy at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:337)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.util.guava.Maybe.getException(Maybe.java:465)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:85)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] ... 16 more Caused by: java.lang.ClassNotFoundException: com.example.policies.MyPolicy at java.net.URLClassLoader$1.run(URLClassLoader.java:366)[:1.7.0_71] at java.net.URLClassLoader$1.run(URLClassLoader.java:355)[:1.7.0_71] at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_71] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)[:1.7.0_71] at java.lang.ClassLoader.loadClass(ClassLoader.java:425)[:1.7.0_71] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)[:1.7.0_71] at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_71] at org.apache.brooklyn.util.javalang.AggregateClassLoader.findClass(AggregateClassLoader.java:135)[139:org.apache.brooklyn.utils-common:0.10.0.20161205_1210] at java.lang.ClassLoader.loadClass(ClassLoader.java:425)[:1.7.0_71] at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_71] at org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext.tryLoadClass0(JavaBrooklynClassLoadingContext.java:101)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext.tryLoadClass(JavaBrooklynClassLoadingContext.java:84)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] at org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential.tryLoadClass(BrooklynClassLoadingContextSequential.java:81)[116:org.apache.brooklyn.core:0.10.0.20161205_1210] ... 16 more
Brooklyn does start up, but the policy no longer exists on the entity.
Attachments
Issue Links
- relates to
-
BROOKLYN-379 Rebind error when entity type references pre-installed OSGi bundle
- Resolved
- links to