Aled Sage created BROOKLYN-296:
----------------------------------

             Summary: Adding catalog item with invalid location causes rebind 
error
                 Key: BROOKLYN-296
                 URL: https://issues.apache.org/jira/browse/BROOKLYN-296
             Project: Brooklyn
          Issue Type: Bug
            Reporter: Aled Sage
             Fix For: 0.9.0


One can deploy an invalid catalog item (that references a non-existing 
location). Unfortunately when you next restart the Brooklyn server, it will 
fail with a rebind error!

There are two things we should perhaps do for this:
1. Don't allow the initial catalog item to be added (giving a nice error 
message about it);
2. Allow rebind to continue, with just a warning (e.g. in case the error comes 
about because someone has subsequently explicitly deleted the required lcoation 
definition).

For example, add the catalog item below:

{noformat}
brooklyn.catalog:
  version: 1.0.0
  items:
  - id: entity-with-location
    item:
      type: org.apache.brooklyn.entity.machine.MachineEntity
      location: location-does-not-exist
{noformat}

When adding it, you'll see a sensible warning like that below (but it will 
still add it):

{noformat}
2016-06-08 21:30:41,776 WARN  o.a.b.r.t.CatalogTransformer 
[brooklyn-jetty-server-8082-qtp1308106248-32]: Unable to create spec for 
CatalogEntityItemDto[entity-with-location:1.0.0/null]: 
java.lang.IllegalStateException: Transformer for Brooklyn OASIS CAMP 
interpreter gave an error creating this plan: Unknown location 
'location-does-not-exist' (with retry)
java.lang.IllegalStateException: Transformer for Brooklyn OASIS CAMP 
interpreter gave an error creating this plan: Unknown location 
'location-does-not-exist' (with retry)
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:52)
 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)
 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:276) 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at org.apache.brooklyn.util.guava.Maybe$Absent.get(Maybe.java:273) 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.internalCreateSpecLegacy(BasicBrooklynCatalog.java:332)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.createSpec(BasicBrooklynCatalog.java:308)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.rest.transform.CatalogTransformer.catalogEntitySummary(CatalogTransformer.java:81)
 
[org.apache.brooklyn-brooklyn-rest-resources-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.rest.transform.CatalogTransformer.catalogItemSummary(CatalogTransformer.java:117)
 
[org.apache.brooklyn-brooklyn-rest-resources-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.rest.resources.CatalogResource.create(CatalogResource.java:119)
 
[org.apache.brooklyn-brooklyn-rest-resources-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.7.0_71]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
~[na:1.7.0_71]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.7.0_71]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
        at 
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
 [org.apache.cxf-cxf-core-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 
[org.apache.cxf-cxf-core-3.1.4.jar:3.1.4]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:200) 
[org.apache.cxf-cxf-rt-frontend-jaxrs-3.1.4.jar:3.1.4]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:99) 
[org.apache.cxf-cxf-rt-frontend-jaxrs-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
 [org.apache.cxf-cxf-core-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
 [org.apache.cxf-cxf-core-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
 [org.apache.cxf-cxf-core-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
 [org.apache.cxf-cxf-core-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
[javax.servlet-javax.servlet-api-3.1.0.jar:3.1.0]
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:268)
 [org.apache.cxf-cxf-rt-transports-http-3.1.4.jar:3.1.4]
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) 
[org.eclipse.jetty-jetty-servlet-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
 [org.eclipse.jetty-jetty-servlet-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.apache.brooklyn.rest.filter.LoggingFilter.doFilter(LoggingFilter.java:91) 
[org.apache.brooklyn-brooklyn-rest-server-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
 [org.eclipse.jetty-jetty-servlet-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.apache.brooklyn.rest.filter.RequestTaggingFilter.doFilter(RequestTaggingFilter.java:51)
 [org.apache.brooklyn-brooklyn-rest-server-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
 [org.eclipse.jetty-jetty-servlet-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
[org.eclipse.jetty-jetty-servlet-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
[org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:542) 
[org.eclipse.jetty-jetty-security-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
 [org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
 [org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) 
[org.eclipse.jetty-jetty-servlet-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
 [org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
 [org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
[org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
 [org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
[org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at org.eclipse.jetty.server.Server.handle(Server.java:499) 
[org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) 
[org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
[org.eclipse.jetty-jetty-server-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 
[org.eclipse.jetty-jetty-io-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
 [org.eclipse.jetty-jetty-util-9.2.13.v20150730.jar:9.2.13.v20150730]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
[org.eclipse.jetty-jetty-util-9.2.13.v20150730.jar:9.2.13.v20150730]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
        at 
org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:385) 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:146)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:118)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.internalCreateSpecLegacy(BasicBrooklynCatalog.java:326)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        ... 49 common frames omitted
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
Transformer for Brooklyn OASIS CAMP interpreter gave an error creating this 
plan: Unknown location 'location-does-not-exist' (with retry)
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:137)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        ... 51 common frames omitted
Caused by: org.apache.brooklyn.util.exceptions.UserFacingException: Unknown 
location 'location-does-not-exist' (with retry)
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlLocationResolver.resolveLocation(BrooklynYamlLocationResolver.java:145)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlLocationResolver.resolveLocationFromString(BrooklynYamlLocationResolver.java:113)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlLocationResolver.resolveLocations(BrooklynYamlLocationResolver.java:62)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynComponentTemplateResolver.populateSpec(BrooklynComponentTemplateResolver.java:238)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynComponentTemplateResolver.resolveSpec(BrooklynComponentTemplateResolver.java:185)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynAssemblyTemplateInstantiator.buildTemplateServicesAsSpecs(BrooklynAssemblyTemplateInstantiator.java:114)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynAssemblyTemplateInstantiator.createServiceSpecs(BrooklynAssemblyTemplateInstantiator.java:73)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynAssemblyTemplateInstantiator.createApplicationSpec(BrooklynAssemblyTemplateInstantiator.java:90)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.CampResolver.createEntitySpecFromServicesBlock(CampResolver.java:141)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.CampResolver.createSpecFromFull(CampResolver.java:110)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.CampToSpecTransformer.createCatalogSpec(CampToSpecTransformer.java:102)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog$1.apply(BasicBrooklynCatalog.java:329)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog$1.apply(BasicBrooklynCatalog.java:326)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:126)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        ... 51 common frames omitted
{noformat}

On rebind, you'll see an error like that below, and the web-console will report 
"Warning! This Brooklyn server has errors":

{noformat}
2016-06-08 21:31:05,211 ERROR o.a.b.c.c.i.CatalogInitialization 
[brooklyn-execmanager-iIo2g8wM-0]: Error loading catalog item 
'org.apache.brooklyn.core.catalog.internal.CatalogItemDo[CatalogEntityItemDto[entity-with-location:1.0.0/null]]':
 Transformer for Brooklyn OASIS CAMP interpreter gave an error creating this 
plan: Unknown location 'location-does-not-exist'
2016-06-08 21:31:05,220 DEBUG o.a.b.c.c.i.CatalogInitialization 
[brooklyn-execmanager-iIo2g8wM-0]: Trace for error loading catalog item 
'org.apache.brooklyn.core.catalog.internal.CatalogItemDo[CatalogEntityItemDto[entity-with-location:1.0.0/null]]':
 Transformer for Brooklyn OASIS CAMP interpreter gave an error creating this 
plan: Unknown location 'location-does-not-exist'
java.lang.IllegalStateException: Transformer for Brooklyn OASIS CAMP 
interpreter gave an error creating this plan: Unknown location 
'location-does-not-exist'
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:52)
 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)
 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:276) 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at org.apache.brooklyn.util.guava.Maybe$Absent.get(Maybe.java:273) 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.internalCreateSpecLegacy(BasicBrooklynCatalog.java:332)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.createSpec(BasicBrooklynCatalog.java:308)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.cli.Main$LaunchCommand.confirmCatalog(Main.java:645) 
~[org.apache.brooklyn-brooklyn-cli-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at org.apache.brooklyn.cli.Main$LaunchCommand$1.apply(Main.java:433) 
[org.apache.brooklyn-brooklyn-cli-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at org.apache.brooklyn.cli.Main$LaunchCommand$1.apply(Main.java:423) 
[org.apache.brooklyn-brooklyn-cli-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.CatalogInitialization.populateViaCallbacks(CatalogInitialization.java:382)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.CatalogInitialization.populateCatalogImpl(CatalogInitialization.java:237)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.CatalogInitialization.populateCatalog(CatalogInitialization.java:199)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.rebuildCatalog(RebindIteration.java:422)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:238)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:265)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:558)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:508)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:506)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519)
 [org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_71]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
        at 
org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:385) 
~[org.apache.brooklyn-brooklyn-utils-common-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:146)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:118)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.internalCreateSpecLegacy(BasicBrooklynCatalog.java:326)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        ... 19 common frames omitted
Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
Transformer for Brooklyn OASIS CAMP interpreter gave an error creating this 
plan: Unknown location 'location-does-not-exist'
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:137)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        ... 21 common frames omitted
Caused by: org.apache.brooklyn.util.exceptions.UserFacingException: Unknown 
location 'location-does-not-exist'
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlLocationResolver.resolveLocation(BrooklynYamlLocationResolver.java:145)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlLocationResolver.resolveLocationFromString(BrooklynYamlLocationResolver.java:113)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlLocationResolver.resolveLocations(BrooklynYamlLocationResolver.java:62)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynComponentTemplateResolver.populateSpec(BrooklynComponentTemplateResolver.java:238)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynComponentTemplateResolver.resolveSpec(BrooklynComponentTemplateResolver.java:185)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynAssemblyTemplateInstantiator.buildTemplateServicesAsSpecs(BrooklynAssemblyTemplateInstantiator.java:114)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynAssemblyTemplateInstantiator.createServiceSpecs(BrooklynAssemblyTemplateInstantiator.java:73)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynAssemblyTemplateInstantiator.createApplicationSpec(BrooklynAssemblyTemplateInstantiator.java:90)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.CampResolver.createEntitySpecFromServicesBlock(CampResolver.java:141)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.CampResolver.createSpecFromFull(CampResolver.java:110)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.camp.brooklyn.spi.creation.CampToSpecTransformer.createCatalogSpec(CampToSpecTransformer.java:102)
 ~[org.apache.brooklyn-brooklyn-camp-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog$1.apply(BasicBrooklynCatalog.java:329)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog$1.apply(BasicBrooklynCatalog.java:326)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:126)
 ~[org.apache.brooklyn-brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        ... 21 common frames omitted
{noformat}

The persisted state will have a file like:

{noformat}
<catalogItem>
  <brooklynVersion>0.10.0-SNAPSHOT</brooklynVersion>
  <type>org.apache.brooklyn.core.catalog.internal.CatalogEntityItemDto</type>
  <id>entity-with-location:1.0.0</id>
  <catalogItemId>entity-with-location:1.0.0</catalogItemId>
  <registeredTypeName>entity-with-location</registeredTypeName>
  <version>1.0.0</version>
  <planYaml>services:
- type: org.apache.brooklyn.entity.machine.MachineEntity
  location: location-does-not-exist</planYaml>
  <libraries class="ImmutableList"/>
  <catalogItemType>ENTITY</catalogItemType>
  
<catalogItemJavaType>org.apache.brooklyn.api.entity.Entity</catalogItemJavaType>
  <specType>org.apache.brooklyn.api.entity.EntitySpec</specType>
  <deprecated>false</deprecated>
  <disabled>false</disabled>
</catalogItem>
{noformat}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to