18            "SELECT exc_assignment.exc_id, exc_assignment.peer_crit_cat, exc_assignment.id, exc_assignment_peer.giver_id, exc_assignment_peer.peer_id" .
 
   19            " FROM exc_assignment_peer, exc_assignment" .
 
   20            " WHERE exc_assignment.id = exc_assignment_peer.ass_id" .
 
   21            " AND (exc_assignment.peer_file = 1 OR exc_assignment.peer_crit_cat > 0)" .
 
   22            " AND exc_assignment_peer.tstamp IS NOT null" 
   26            include_once(
"./Services/Migration/DBUpdate_5069/classes/class.ilFSStorageExercise5069.php");
 
   30            if ($row[
'peer_crit_cat']) {
 
   33                $res_crit = 
$ilDB->query(
 
   34                    $q = 
"SELECT id FROM exc_crit " .
 
   35                    " WHERE parent = " . 
$ilDB->quote($row[
'peer_crit_cat'], 
"integer") .
 
   36                    " AND type = " . 
$ilDB->quote(
'file', 
'text')
 
   39                while ($row_crit = 
$ilDB->fetchAssoc($res_crit)) {
 
   40                    $original_path = $storage->getPeerReviewUploadPath($row[
'peer_id'], $row[
'giver_id'], $row_crit[
'id']);
 
   42                    $path_peaces = explode(
'/', rtrim($original_path, 
'/'));
 
   43                    array_pop($path_peaces);
 
   44                    $previous_dir_path = 
"";
 
   45                    foreach ($path_peaces as $piece) {
 
   46                        $previous_dir_path .= $piece . 
"/";
 
   48                    $dir_content = array_diff(scandir($previous_dir_path), array(
'.', 
'..'));
 
   51                    foreach ($dir_content as $content) {
 
   52                        if (is_dir($previous_dir_path . $content)) {
 
   54                            if ($content == $row[
'giver_id'] . $row_crit[
'id']) {
 
   55                                if (!is_dir($previous_dir_path . $row[
'giver_id'])) {
 
   56                                    mkdir($previous_dir_path . $row[
'giver_id']);
 
   60                                if (!is_dir($previous_dir_path . $row[
'giver_id'] . 
"/" . $row_crit[
'id'])) {
 
   61                                    mkdir($previous_dir_path . $row[
'giver_id'] . 
"/" . $row_crit[
'id']);
 
   66                                $old = substr($original_path, 0, strlen($original_path) - 1);
 
   67                                $new = $previous_dir_path . $row[
'giver_id'] . 
"/" . $row_crit[
'id'];
 
   79                $original_path = $storage->getPeerReviewUploadPath($row[
'peer_id'], $row[
'giver_id'], $row[
'peer_crit_cat']);
 
   81                $path_peaces = explode(
'/', rtrim($original_path, 
'/'));
 
   82                array_pop($path_peaces);
 
   83                $previous_dir_path = 
"";
 
   84                foreach ($path_peaces as $piece) {
 
   85                    $previous_dir_path .= $piece . 
"/";
 
   88                $dir_content = array_diff(scandir($previous_dir_path), array(
'.', 
'..'));
 
   90                foreach ($dir_content as $content) {
 
   91                    if (!is_dir($previous_dir_path . $content)) {
 
   92                        if (substr($content, 0, strlen($row[
'giver_id'])) === $row[
'giver_id']) {
 
   93                            $new_filename = substr($content, strlen($row[
'giver_id']));
 
   94                            copy($previous_dir_path . $content, $original_path . 
"/" . $new_filename);
 
An exception for terminatinating execution or to throw for unit testing.
fix19795()
Migration for bug fix 19795.