Forum OpenACS Q&A: dotLRN: error when adding a new class
When adding a new class in dotLRN, I got the following error message
(on the "class-instance-new" page):
ora8.c:3546:ora_tcl_command: error in `OCIStmtExecute ()': ORA-00001: unique constraint (DOTLRN.CR_ITEMS_UNIQUE_NAME) violated ORA-06512: at "DOTLRN.CONTENT_ITEM", line 161 ORA-06512: at "DOTLRN.CONTENT_FOLDER", line 34 ORA-06512: at "DOTLRN.FILE_STORAGE", line 85 ORA-06512: at line 3 SQL: begin :1 := file_storage.new_root_folder( package_id => :package_id, folder_name => :pretty_name, description => :description ); end; while executing "ns_ora exec_plsql_bind nsdb0 { begin :1 := file_storage.new_root_folder( package_id => :package_id, ..." ("uplevel" body line 1) invoked from within "uplevel $ulevel [list ns_ora $type $db $sql] $args" invoked from within "db_exec exec_plsql_bind $db $full_statement_name $sql 2 1 """ invoked from within "if { [regexp {:1} $test_sql] } { return [db_exec exec_plsql_bind $db $full_statement_name $sql 2 1 ""] } else { return [db_exec dml $db $fu..." ("uplevel" body line 5) invoked from within "uplevel 1 $code_block " invoked from within "db_with_handle db { # Right now, use :1 as the output value if it occurs in the statement, # or not otherwise. set test_sql [db_qd_replace_s..." (procedure "db_exec_plsql" line 11) invoked from within "db_exec_plsql new_root_folder {}" (procedure "fs::new_root_folder" line 7) invoked from within "fs::new_root_folder -package_id $package_id -pretty_name "${community_name}'s Files" -description "${community_name}'s Files" " (procedure "dotlrn_fs::add_applet_to_community" line 7) invoked from within "dotlrn_fs::add_applet_to_community $community_id" (procedure "AcsSc.dotlrn_applet.AddAppletToCommunity.dotlrn_fs" line 1) invoked from within "AcsSc.dotlrn_applet.AddAppletToCommunity.dotlrn_fs 6496" ("uplevel" body line 1) invoked from within "uplevel $func_and_args" (procedure "apply" line 3) invoked from within "apply $proc_name $arguments" (procedure "acs_sc_call" line 6) invoked from within "acs_sc_call dotlrn_applet $op $list_args $applet_key" (procedure "applet_call" line 2) invoked from within "applet_call $applet_key AddAppletToCommunity [list $community_id]" invoked from within "set package_id [applet_call $applet_key AddAppletToCommunity [list $community_id]]" ("uplevel" body line 3) invoked from within "uplevel 1 $transaction_code " (procedure "db_transaction" line 1) invoked from within "db_transaction { # Callback set package_id [applet_call $applet_key AddAppletToCommunity [list $community_id]] se..." (procedure "dotlrn_community::add_applet_to_community" line 2) invoked from within "dotlrn_community::add_applet_to_community $community_id $applet_key" ("foreach" body line 3) invoked from within "foreach applet_key $default_applets_list { if {[dotlrn_applet::applet_exists_p -applet_key $applet_key]} { dotlrn_..." ("uplevel" body line 70) invoked from within "uplevel 1 $transaction_code " (procedure "db_transaction" line 39) invoked from within "db_transaction { set user_id [ad_conn user_id] set community_id [package_instantiate_object -extra_vars $extra_vars $object_ty..." (procedure "dotlrn_community::new" line 25) invoked from within "dotlrn_community::new -description $description -community_type $class_key -object_type [community_type] -community_key $community_key -pretty_na..." invoked from within "set community_id [dotlrn_community::new -description $description -community_type $class_key -object_type [community_type] -community_key $communi..." ("uplevel" body line 3) invoked from within "uplevel 1 $transaction_code " (procedure "db_transaction" line 39) invoked from within "db_transaction { # Create the community set community_id [dotlrn_community::new -description $description -community_type $c..." (procedure "dotlrn_class::new_instance" line 16) invoked from within "dotlrn_class::new_instance -class_key $class_key -term_id $term -pretty_name $pretty_name -description $description -join_policy $join_policy " invoked from within "if {[form is_valid add_class_instance]} { form get_values add_class_instance class_key term pretty_name description join_policy add_instructor re..." ("uplevel" body line 50) invoked from within "uplevel { # # Copyright (C) 2001, 2002 OpenForce, Inc. # # This file is part of dotLRN. # # dotLRN is free software; you can redistribute it..." (procedure "code::tcl::/web/dotlrn/packages/dotlrn/www/admin/class-insta..." line 2) invoked from within "code::tcl::$__adp_stub" invoked from within "if { [file exists $__adp_stub.tcl] } { # ensure that data source preparation procedure exists and is up-to-date adp_init tcl $__adp_stub ..." ("uplevel" body line 3) invoked from within "uplevel { if { [file exists $__adp_stub.tcl] } { # ensure that data source preparation procedure exists and is up-to-date adp_init t..." (procedure "adp_prepare" line 3) invoked from within "adp_prepare " (procedure "template::adp_parse" line 30) invoked from within "template::adp_parse [file root [ad_conn file]] {}" (procedure "adp_parse_ad_conn_file" line 7) invoked from within "$handler" ("uplevel" body line 2) invoked from within "uplevel $code" invoked from within "ad_try { $handler } ad_script_abort val { # do nothing }" invoked from within "rp_serve_concrete_file [ad_conn file]" (procedure "rp_serve_abstract_file" line 60) invoked from within "rp_serve_abstract_file "$root/$path"" ("uplevel" body line 2) invoked from within "uplevel $code" invoked from within "ad_try { rp_serve_abstract_file "$root/$path" set tcl_url2file([ad_conn url]) [ad_conn file] set tcl_url2path_info([ad_conn url]) [ad_conn path_inf..."
Posted by
Yonatan Feldman
on 05/30/02 07:29 PM
you need to: "cvs update -r 1.1 file-storage/tcl/file-storage-init.tcl"
there is a conflict i haven't resolved since the merge of the openacs-4-5 beta branch. this will fix the problem until i figure out how to resolve this issue permanently.
Posted by
Yonatan Feldman
on 06/28/02 05:15 PM
sorry it took so long but i have finally resolved this conflict. if you update file-storage and dotlrn-fs to the head of their respective CVS trees everything should work just fine.