[
https://issues.apache.org/jira/browse/BROOKLYN-409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15748119#comment-15748119
]
Geoff Macartney commented on BROOKLYN-409:
------------------------------------------
hi Aled, re. your option 2, would my
https://github.com/apache/brooklyn-server/pull/338 be of any use here?
Although I'm not sure, as it wasn't looking at exactly this form of blueprint
(with the VSP in an entity spec). Would have to look into that.
> Rebind fails in karaf, with app referencing classes in catalog item's bundle
> ----------------------------------------------------------------------------
>
> Key: BROOKLYN-409
> URL: https://issues.apache.org/jira/browse/BROOKLYN-409
> Project: Brooklyn
> Issue Type: Bug
> Reporter: Aled Sage
>
> 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):
> {noformat}
> 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
> {noformat}
> This deploys fine. However, when one stops and restarts Brooklyn (so
> rebinding to persisted state) it gives the exception below:
> {noformat}
> 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
> {noformat}
> Brooklyn does start up, but the policy no longer exists on the entity.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)