Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
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:
brooklyn.catalog: version: 1.0.0 items: - id: entity-with-location item: type: org.apache.brooklyn.entity.machine.MachineEntity location: location-does-not-exist
When adding it, you'll see a sensible warning like that below (but it will still add it):
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
On rebind, you'll see an error like that below, and the web-console will report "Warning! This Brooklyn server has errors":
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
The persisted state will have a file like:
<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>