Index: openacs-4/packages/xowf/tcl/xowf-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/tcl/xowf-procs.tcl,v diff -u -N -r1.3.2.5 -r1.3.2.6 --- openacs-4/packages/xowf/tcl/xowf-procs.tcl 2 May 2016 18:48:05 -0000 1.3.2.5 +++ openacs-4/packages/xowf/tcl/xowf-procs.tcl 2 May 2016 21:19:07 -0000 1.3.2.6 @@ -1122,18 +1122,35 @@ } #set next_state [$action_command get_next_state] # Activate action - if {[catch {$action_command activate [self]} errorMsg]} { - ns_log notice "ACTIVATE [my name] error =>$errorMsg" - set error "error in action '$action' of workflow instance [my name]\ - of workflow [[my page_template] name]:" - if {[[my package_id] exists __batch_mode]} { - [my package_id] set __evaluation_error "$error\n\n$::errorInfo" - incr validation_errors + set err [catch {$action_command activate [self]} errorMsg] + if {$err} { + # + # Save error code in variable errorCode, since the + # tcl-maintained value is volatile + set errorCode $::errorCode + + ns_log notice "ACTIVATE [my name] error => $errorMsg // $errorCode" + # + # Check, if we were called from "ad_script_abort" (intentional abortion) + # + if {[ad_exception $errorCode] eq "ad_script_abort"} { + # + # This was an intentional abortion, no need to complain to the + # error.log or other reporting paths. + # } else { - my msg -html 1 "$error
$::errorInfo
" + set error "error in action '$action' of workflow instance [my name]\ + of workflow [[my page_template] name]:" + if {[[my package_id] exists __batch_mode]} { + [my package_id] set __evaluation_error "$error\n\n$::errorInfo" + incr validation_errors + } else { + my msg -html 1 "$error
$::errorInfo
" + } + ad_log error "--WF: evaluation $error\n$::errorInfo" } - ns_log error "--WF: evaluation $error\n$::errorInfo" return "" + } else { # We moved get_next_state here to allow an action to infuence the # conditions in the activation method.