You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by "Aled Sage (JIRA)" <ji...@apache.org> on 2016/06/08 20:53:21 UTC

[jira] [Created] (BROOKLYN-296) Adding catalog item with invalid location causes rebind error

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)