Forum OpenACS Q&A: Error deleting an xowiki page

Collapse
Posted by Claudio Pasolini on
I recently upgraded our company site www.oasisoftware.com to oacs-5.9 and trying to delete a page via xowiki/admin/list I get this error:

wrong # args: should be "delete"
::1021 ::xo::db::Object->delete
invoked from within
"$package_id delete -name $o "
("foreach" body line 3)
invoked from within
"foreach o $objects {
ns_log notice "DELETE $o"
$package_id delete -name $o
}"

Perhaps someone can shed light on this?

Collapse
Posted by Gustaf Neumann on
on what version of xowiki and xotcl-core does this happen?
Collapse
Posted by Claudio Pasolini on
Thank You for looking at this problem, Gustaf!

Actually I didn't upgrade our site, but rather I built a new one and then exported and imported the xowiki pages.

OLD SITE
OACS 5.8
xotcl-core 0.126
xowiki 0.146

NEW SITE
OACS 5.9
xotcl-core 0.148
xowiki 5.9.1d10

Collapse
Posted by Antonio Pisano on
Your versions seems to be the proper ones from the 5.9.0 release.

I have tried to setup a new instance with that code, created a page and tried to delete and everything was ok. What kind of page were you trying to remove? Was it already on the system or was created fresh since after upgrade?

Please try to create a new one and remove it as I did, if it works the problem could have to do with the page itself (different format? we would have to see)

Ciao

Antonio

Collapse
Posted by Claudio Pasolini on
Hi Antonio,

I created a new xowiki page, but trying to delete it I get the same error.

Collapse
Posted by Antonio Pisano on
Found the issue: on www.oasisoftware.it there is no single delete button, only the bulk action. This is why my try succeded: I was using the single one. I could reproduce the issue that is in

/packages/xowiki/www/admin/bulk-delete.tcl

Just replace this line:
$package_id delete -name $o
with this:
$package_id www-delete -name $o

and everything should work (for me it did).

The reason of this renaming comes from a recent reform of all object methods that are being called by webpages and are therefore exposed to the user. All those methods are now called www-(old name).

We should backportport this fix to the released branch, so people don't incurr in the issue when installing. Anyway, applying my change everything should work.

Ciao!

Collapse
Posted by Claudio Pasolini on
Ok, problem solved.

Grazie e buon weekend!

Collapse
Posted by Gustaf Neumann on
Some more info: i did
1) fresh install from the tar file of openacs-5-9-0 (from downloads),
2) navigate to /acs-admin/install/,
3) clicked on "install from repo",
4) selected "xowiki" + install

When install finished, i got acs-kernel 5.9.1d17, xowiki 5.9.1d10, and xotcl-core 0.149 (notice: slightly different from yours). creating an xowiki page and deleting it via wiki-menu or trash-can button in admin/list, worked, but bulk-action delete caused the failure (as Antonio noticed).

Concerning the "www-" prefix: The introduction this prefix was not really a recent change, but happened about 1 year ago (Dec 23, 2015). Background: On more complex installations, many methods can be made callable via the www interface. For these methods, argument checking has to be made more carefully, and proper access policies have to be defined. In order to make this fact explicit in the code and to avoid potential name clashes, the www-prefix was introduced for methods callable over the web-interface.

The method name in the bulk-actions is now s well fixed in the oacs-5-9 branch. During the next days, i'll make the next series of apm packages install-able via .apm, including the recent content security policy (CSP) changes.

now, let us see, how the wold championship qualifying games work out. .... i am not really concerned about the results of Italy's game.