I am adding paramters to a new package that is not using xotcl or xotcl-core etc.
I get this error when try to set parameters from the subsite parameter page.
invalid command name ""
while executing
"$parameter_obj clear_per_package_instance_value $package_id $value"
(procedure "::callback::subsite::parameter_changed::impl::xotcl-param-pr..." line 9)
invoked from within
"::callback::subsite::parameter_changed::impl::xotcl-param-procs -package_id 838 -parameter ProductionMode -value 0"
("uplevel" body line 1)
invoked from within
"::uplevel 1 $procname $args"
invoked from within
"callback subsite::parameter_changed -package_id $package_id -parameter $c__parameter_name -value [set $c__parameter_name]"
invoked from within
"if { [info exists $c__parameter_name]} {
callback subsite::parameter_changed -package_id $package_id -parameter $c__parameter_name -value [set $c__p..."
("uplevel" body line 2)
invoked from within
"uplevel 1 $code_block "
("1" arm line 1)
invoked from within
I tracked this down to this procedure:
#
# For the time being: catch changed parameter values
#
ad_proc -public -callback subsite::parameter_changed -impl xotcl-param-procs {
-package_id:required
-parameter:required
-value:required
} {
Implementation of subsite::parameter_changed for xotcl param procs
@param package_id the package_id of the package the parameter was changed for
@param parameter the parameter name
@param value the new value
} {
#
# In order to use the existing inerface for parameters, we catch
# all parameter changes and update accordingly the values in the new
# interface.
#
set parameter_obj [ ::xo::parameter get_parameter_object \
-package_key [apm_package_key_from_id $package_id] \
-parameter_name $parameter]
$parameter_obj clear_per_package_instance_value $package_id $value
if {[$parameter_obj default_value] ne $value} {
$parameter_obj set_per_package_instance_value $package_id $value
}
}
This runs for every parameter change, whether its an xotcl based package or not. I am not sure what's going on, but it should not fail, i assume.
Adding a check for empty string for parameter_obj should fix it.
(Using OpenACS 5.4 from CVS oacs-5-4 branch)