Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve deferred values in containers (list, map) on config().getNonBlocking(...) #542

Merged
merged 1 commit into from
Feb 7, 2017

Conversation

neykov
Copy link
Member

@neykov neykov commented Jan 30, 2017

Deferred values are not resolved in certain cases when in containers. The error I was getting was:

2017-01-27 16:44:23,958 DEBUG 118 o.a.b.c.b.s.d.BrooklynDslDeferredSupplier [ger-GCJlrQu1-259] Resolved DynamicClusterImpl{id=q9r9izpwme} from $brooklyn:sensor("kubernetes.url")
2017-01-27 16:44:23,958 DEBUG 118 o.a.b.c.b.s.d.BrooklynDslDeferredSupplier [ger-GCJlrQu1-625] Resolved Sensor: kubernetes.url (java.lang.Object) from $brooklyn:sensor("kubernetes.url")
2017-01-27 16:44:23,959 WARN  143 o.a.b.u.j.c.TypeCoercerExtensible [ger-GCJlrQu1-628] Failed to coerce collection from java.util.Collections$UnmodifiableRandomAccessList to java.util.Collection<? exten
ds org.apache.brooklyn.api.sensor.Sensor<?>>; returning uncoerced result to preserve (deprecated) backwards compatibility
java.lang.IllegalStateException: Could not coerce entry 0 in [sensor("kubernetes.url")] to java.util.Collection<? extends org.apache.brooklyn.api.sensor.Sensor<?>>: Cannot coerce type org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent.DslSensorSupplier to org.apache.brooklyn.api.sensor.Sensor (sensor("kubernetes.url")): no adapter known
        at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:337)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.guava.Maybe.getException(Maybe.java:465)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible.tryCoerceInternal(TypeCoercerExtensible.java:125)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible.tryCoerce(TypeCoercerExtensible.java:108)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.core.flags.TypeCoercions.tryCoerce(TypeCoercions.java:82)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at org.apache.brooklyn.core.objs.AbstractConfigurationSupportInternal.getNonBlockingResolvingSimple(AbstractConfigurationSupportInternal.java:149)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at org.apache.brooklyn.core.objs.AbstractConfigurationSupportInternal.getNonBlocking(AbstractConfigurationSupportInternal.java:83)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at org.apache.brooklyn.core.config.ConfigConstraints.validateAll(ConfigConstraints.java:126)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at org.apache.brooklyn.core.config.ConfigConstraints.getViolations(ConfigConstraints.java:115)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at org.apache.brooklyn.core.config.ConfigConstraints.assertValid(ConfigConstraints.java:73)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at org.apache.brooklyn.core.entity.AbstractEntity$BasicEnricherSupport.add(AbstractEntity.java:1691)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at org.apache.brooklyn.core.objs.proxy.InternalEntityFactory$1.run(InternalEntityFactory.java:350)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_80]
        at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:522)[120:org.apache.brooklyn.core:0.11.0.20170126_1332]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_80]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_80]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_80]
        at java.lang.Thread.run(Thread.java:745)[:1.7.0_80]
Caused by: org.apache.brooklyn.util.javalang.coerce.ClassCoercionException: Could not coerce entry 0 in [sensor("kubernetes.url")] to java.util.Collection<? extends org.apache.brooklyn.api.sensor.Sensor<?>>
        at org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible.tryCoerceCollection(TypeCoercerExtensible.java:298)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible.tryCoerceInternal(TypeCoercerExtensible.java:122)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        ... 15 more
Caused by: org.apache.brooklyn.util.javalang.coerce.ClassCoercionException: Cannot coerce type org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent.DslSensorSupplier to org.apache.brooklyn.api.sensor.Sensor (sensor("kubernetes.url")): no adapter known
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)[:1.7.0_80]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)[:1.7.0_80]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.7.0_80]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)[:1.7.0_80]
        at org.apache.brooklyn.util.javalang.Reflections.loadInstance(Reflections.java:347)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.Reflections.invokeConstructorFromArgs(Reflections.java:328)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.Reflections.invokeConstructorFromArgs(Reflections.java:289)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.Reflections.invokeConstructorFromArgs(Reflections.java:251)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.guava.AnyExceptionSupplier.get(AnyExceptionSupplier.java:50)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.guava.AnyExceptionSupplier.get(AnyExceptionSupplier.java:27)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:337)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        ... 17 more
Caused by: org.apache.brooklyn.util.javalang.coerce.ClassCoercionException: Cannot coerce type org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent.DslSensorSupplier to org.apache.brooklyn.api.sensor.Sensor (sensor("kubernetes.url")): no adapter known
        at org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible.tryCoerceInternal(TypeCoercerExtensible.java:212)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible.tryCoerce(TypeCoercerExtensible.java:108)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        at org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible.tryCoerceCollection(TypeCoercerExtensible.java:294)[143:org.apache.brooklyn.utils-common:0.11.0.20170126_1332]
        ... 16 more

@neykov neykov force-pushed the fix-nested-nonblocking-config branch from c425099 to ebb3229 Compare January 30, 2017 15:52
@neykov neykov force-pushed the fix-nested-nonblocking-config branch from ebb3229 to 03dc429 Compare January 30, 2017 15:58
@drigodwin
Copy link
Member

LGTM, thanks @neykov

@asfgit asfgit merged commit 03dc429 into apache:master Feb 7, 2017
asfgit pushed a commit that referenced this pull request Feb 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants