diff --git a/src/main/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContext.java b/src/main/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContext.java index 9e6b4093f..f2a4a6988 100644 --- a/src/main/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContext.java +++ b/src/main/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContext.java @@ -90,8 +90,6 @@ public Object _invoke( IBoxContext context, ArgumentsScope arguments ) { throw new BoxValidationException( "Context or applicationName is required." ); } - newContext.invokeFunction( callback ); - - return null; + return newContext.invokeFunction( callback ); } } diff --git a/src/test/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContextTest.java b/src/test/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContextTest.java index 426e23ab4..62b213335 100644 --- a/src/test/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContextTest.java +++ b/src/test/java/ortus/boxlang/runtime/bifs/global/system/RunThreadInContextTest.java @@ -60,6 +60,16 @@ public void testCanRunCodeInContext() { context ); } + @Test + public void testCanRunCodeInContextReturnResult() { + instance.executeSource( + """ + result = runThreadInContext( context=getBoxContext(), callback=()=>"ran"); + """, + context ); + assert ( variables.get( result ).equals( "ran" ) ); + } + @Test public void testCanRunCodeInApplication() { instance.executeSource(