@@ -128,27 +128,33 @@ func (e *ChasmEngine) setContextMetadata(
128128 return chasmContext
129129 }
130130
131- provider , ok := rootComponent .(chasm.ContextMetadataProvider )
131+ root , ok := rootComponent .(chasm.RootComponent )
132132 if ! ok {
133+ softassert .Fail (
134+ e .logger ,
135+ "root node must implement RootComponent interface" ,
136+ tag .NewStringTag ("component_type" , fmt .Sprintf ("%T" , rootComponent )),
137+ )
133138 return chasmContext
134139 }
135140
136- for key , value := range provider .ContextMetadata (chasmContext ) {
141+ for key , value := range root .ContextMetadata (chasmContext ) {
137142 contextutil .ContextMetadataSet (ctx , key , value )
138143 }
139144
140145 return chasmContext
141146}
142147
143148func chasmTreeFromMutableState (
149+ logger log.Logger ,
144150 mutableState historyi.MutableState ,
145151) (* chasm.Node , error ) {
146152 chasmTree , ok := mutableState .ChasmTree ().(* chasm.Node )
147153 if ! ok {
148- return nil , serviceerror . NewInternalf (
149- "CHASM tree implementation not properly wired up, encountered type: %T, expected type: %T" ,
150- mutableState . ChasmTree () ,
151- & chasm.Node {},
154+ return nil , softassert . UnexpectedInternalErr (
155+ logger ,
156+ "CHASM tree implementation not properly wired up" ,
157+ fmt . Errorf ( "encountered type: %T, expected type: %T" , mutableState . ChasmTree (), & chasm.Node {}) ,
152158 )
153159 }
154160 return chasmTree , nil
@@ -158,7 +164,7 @@ func (e *ChasmEngine) setContextMetadataFromMutableState(
158164 ctx context.Context ,
159165 mutableState historyi.MutableState ,
160166) {
161- chasmTree , err := chasmTreeFromMutableState (mutableState )
167+ chasmTree , err := chasmTreeFromMutableState (e . logger , mutableState )
162168 if err != nil {
163169 e .logger .Error ("Failed to resolve CHASM tree for context metadata" , tag .Error (err ))
164170 return
@@ -413,7 +419,7 @@ func (e *ChasmEngine) applyUpdateWithLease(
413419 updateFn func (chasm.MutableContext , chasm.Component ) error ,
414420) ([]byte , error ) {
415421 mutableState := executionLease .GetMutableState ()
416- chasmTree , err := chasmTreeFromMutableState (mutableState )
422+ chasmTree , err := chasmTreeFromMutableState (shardContext . GetLogger (), mutableState )
417423 if err != nil {
418424 return nil , err
419425 }
@@ -641,7 +647,7 @@ func (e *ChasmEngine) readComponent(
641647 executionLease .GetReleaseFn ()(nil )
642648 }()
643649
644- chasmTree , err := chasmTreeFromMutableState (executionLease .GetMutableState ())
650+ chasmTree , err := chasmTreeFromMutableState (e . logger , executionLease .GetMutableState ())
645651 if err != nil {
646652 return err
647653 }
@@ -743,7 +749,7 @@ func (e *ChasmEngine) predicateSatisfied(
743749 ref chasm.ComponentRef ,
744750 executionLease api.WorkflowLease ,
745751) ([]byte , error ) {
746- chasmTree , err := chasmTreeFromMutableState (executionLease .GetMutableState ())
752+ chasmTree , err := chasmTreeFromMutableState (e . logger , executionLease .GetMutableState ())
747753 if err != nil {
748754 return nil , err
749755 }
0 commit comments