Index: openacs-4/packages/assessment/tcl/as-session-results-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/tcl/as-session-results-procs.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/assessment/tcl/as-session-results-procs.tcl 21 Feb 2005 14:32:56 -0000 1.1 +++ openacs-4/packages/assessment/tcl/as-session-results-procs.tcl 12 Jun 2006 02:49:50 -0000 1.2 @@ -21,17 +21,24 @@ set folder_id [as::assessment::folder_id -package_id $package_id] # Insert as_session_results in the CR (and as_session_results table) getting the revision_id - db_transaction { - if {![db_0or1row result_exists {}]} { - set result_item_id [content::item::new -parent_id $folder_id -content_type {as_session_results} -name [exec uuidgen]] + set transaction_successful_p 0 + + while { ! $transaction_successful_p } { + db_transaction { + if {![db_0or1row result_exists {}]} { + set result_item_id [content::item::new -parent_id $folder_id -content_type {as_session_results} -name [as::item::generate_unique_name]] } - set result_id [content::revision::new \ - -item_id $result_item_id \ - -content_type {as_session_results} \ - -title $title \ - -description $description \ - -attributes [list [list target_id $target_id] \ - [list points $points] ] ] + set result_id [content::revision::new \ + -item_id $result_item_id \ + -content_type {as_session_results} \ + -title $title \ + -description $description \ + -attributes [list [list target_id $target_id] \ + [list points $points] ] ] + set transaction_successful_p 1 + } on_error { + ns_log notice "as::session_results::new: Transaction Error: $errmsg" + } } return $result_id