diff --git a/rd-kt/rd-framework/src/main/kotlin/com/jetbrains/rd/framework/base/RdExtBase.kt b/rd-kt/rd-framework/src/main/kotlin/com/jetbrains/rd/framework/base/RdExtBase.kt index a41e50824..eacfcd1de 100644 --- a/rd-kt/rd-framework/src/main/kotlin/com/jetbrains/rd/framework/base/RdExtBase.kt +++ b/rd-kt/rd-framework/src/main/kotlin/com/jetbrains/rd/framework/base/RdExtBase.kt @@ -74,6 +74,11 @@ abstract class RdExtBase : RdReactiveBase() { //todo make it smarter for ((name, child) in bindableChildren) { + if (child is RdExtBase && child.parent == this) { + // Extensions can be created from extension listener above, in submitExtCreated, + // and they will be already bound at this point, so we should skip them + continue + } if (child is RdPropertyBase<*> && child.defaultValueChanged) { child.localChange { child.bind(lifetime, this, name)