Forum OpenACS Development: Re: Error sourcing xowiki-procs.tcl: invalid command name "attribute::exists_p"

Concerning new installs:
The creation of the folder should happen automatically, this worked on Oracle before and should be easy to fix. i have never used ::fs::new_root_folder and nobody is supposed to use it. Furthermore, you are asking for troubles by bypassing e.g. the xowiki naming conventions.

Since i have no oracle around to play with a from-scratch installations, can i ask to check the error messages during new installations in more detail?

Concerning upgrade:
the support for page_order in Oracle is relatively new (form march this year). Upgrading is not tested by many, although it worked for viaro. I am less concerned about this one than the first problem; actually, the problems might boil down to a common problem.

I want xowiki to work as front page of a .LRN site but not necessarily inside communities.

I get this error when I click on "New Page":

oracle.c:3542:ora_tcl_command: error in `OCIStmtExecute ()': Error - OCI_NO_DATA
SQL:
            begin
                :1 := file_storage.get_root_folder(
                    package_id => :package_id
                );
            end;

    while executing
"ns_ora exec_plsql_bind nsdb0 {
            begin
                :1 := file_storage.get_root_folder(
                    package_id => :package_id

....

Please, forget what I said about fs:new_root_folder.

I think that the problem is about getting the "fs_folder_id" with an empty "community_id" in ::xowiki::Page instproc edit when .LRN is installed:

 set fs_folder_id ""
    if {[info commands ::dotlrn_fs::get_community_shared_folder] ne ""} {
      set fs_folder_id [::dotlrn_fs::get_community_shared_folder  -community_id [::dotlrn_community::get_community_id]]
    }

Maybe, this can be fixed inserting "xowiki package_id" and its "folder_id" in "fs_root_folders" table when xowiki is mounted not inside dotlrn.
Or maybe, adding another condition to the last "if" to check if "dotlrn" mounting point is in the url.

i have now tried an installation of dotlrn 2.3.1 + xowiki used outside of a community (as you sketched) in postgres, everything works as expected.

The problem appears to be different semantics in the OpenACS and Oracle versions of [fs::get_root_folder], when it is called with a package_id having no root folder. In PostgresSQL fs::get_root_folder -package_id 123 returns empty, while oracle throws apparently the error above.

I fixed the problem the easy way (in xowiki), a better fix would be to make the Postgres and Oracle versions of fs::get_root_folder to behave identical.

Best regards
-gustaf neumann

Thanks a lot Gustaf.

I upgraded xowiki with your change and it works correctly.

I will install xowiki version for dotlrn 2.3.1 on oracle,I will test the upgrade to 0.90. I will post the result of this with logs.

I think that the problem with fs::get_root_folder is complicado to fix because I think that it's no only for this function. I will post it to try fix it

Sorry replace complicato with complicated.

I think that the problem with fs::get_root_folder is complicated to fix because I think that it's no only for this function. I will post it to try fix it