Skip to content

Commit 9d06be9

Browse files
committed
instantiate inside the thread, so we proper handle a failing constructor
1 parent 52f62eb commit 9d06be9

2 files changed

Lines changed: 12 additions & 12 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>org.lucee</groupId>
66
<artifactId>tasks-extension</artifactId>
7-
<version>1.1.0.5-SNAPSHOT</version>
7+
<version>1.1.0.6-SNAPSHOT</version>
88
<packaging>pom</packaging>
99
<name>Tasks Extension</name>
1010

source/components/org/lucee/cfml/TasksGatewayImpl.cfc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -455,17 +455,7 @@ component {
455455
var instance={'name':instanceName,'index':index,'task':task,'startDate':now(),'iterations':0,'errors':0,'enabled':true};
456456
instances[instanceName]=instance;
457457
try{inspectTemplates();}catch(e) {pagePoolClear();} // older Lucee version do not support inspectTemplates...
458-
// create the instance itself
459-
try{
460-
_log("instantiate task [#instance.task.name#:#instance.index#]");
461-
if(!isNull(task.properties)) {
462-
instance.cfc=new TaskForScheduler(task.name,task.properties);
463-
}
464-
else instance.cfc=new "#task.name#"();
465-
}
466-
catch(e) {
467-
_log("failed to construct [#instance.task.name#]","error",e);
468-
}
458+
469459

470460
thread name=instanceName owner=this engine=engine globalSwitch=globalSwitch activator=activator listeners=listeners instance=instance instances=instances {
471461
owner._log("start task instance [#instance.task.name#:#instance.index#]");
@@ -479,6 +469,16 @@ component {
479469
// stopped in meantime?
480470
if((!instance.enabled || (instance.task.paused?:false) || !globalSwitch.enabled || !engine.isRunning() || !activator.active())) break;
481471

472+
// instantiate if not yet done
473+
if(!structKeyExists(instance, "cfc")) {
474+
owner._log("constructing task instance [#instance.task.name#:#instance.index#]");
475+
if(!isNull(instance.task.properties))
476+
instance.cfc=new TaskForScheduler(instance.task.name, instance.task.properties);
477+
else
478+
instance.cfc=new "#instance.task.name#"();
479+
owner._log("successfully constructed task instance [#instance.task.name#:#instance.index#]");
480+
}
481+
482482
// execute
483483
var startDate=now();
484484
var startTime=getTickCount();

0 commit comments

Comments
 (0)