Project

General

Profile

Backport(バックポート) #1501

error at the application cascading of doctrine.(Doctrineのカスケーディングデリート 時にエラーになる)

Added by Masato Nagasawa over 11 years ago. Updated over 11 years ago.

Status:
Invalid(無効)
Priority:
Normal(通常)
Target version:
Start date:
2010-08-03
Due date:
% Done:

0%


Description

Overview (現象)

Doctrine側でカスケーディングデリートを有効にした場合、日記を削除しようとするとエラーになります。

Causes (原因)

lib/behavior/opApplicationLevelCascadingListener.class.php の 32行目でエラーになっており、
$record が空の配列であるにも関わらずdelete()を呼んでいてメソッドが解決できずエラーとなっています。

Way to fix (修正内容)

$relations が Doctrine_Collection でない場合に array($relations) としているのが原因で、
この場合、$relationsが空の配列であった場合に要素数が1となってしまい、foreach で空の $record を処理してしまいます。

 22       if (!($relations instanceof Doctrine_Collection))
 23       {
 24         $relations = array($relations);
 25       }

以下のようにして配列の要素数が0であった場合、continue するように対処するのが良いのではと思います。

 22       if (!($relations instanceof Doctrine_Collection))
 23       {
            if (!count($relations))
            {
              continue;
            }
 24         $relations = array($relations);
 25       }


Related issues

Related to OpenPNE 3 - Backport(バックポート) #1475: error at the application cascading of doctrine.(Doctrineのカスケーディングデリート 時にエラーになる) Fixed(完了) 2010-08-03

Associated revisions

Revision 8039069d (diff)
Added by Masato Nagasawa over 11 years ago

fixed cascading delete in the application level cascading.(fixes #1501, BP from #1475)

Revision 692aaa3d (diff)
Added by Masato Nagasawa over 11 years ago

Revert "fixed cascading delete in the application level cascading.(fixes #1501, BP from #1475)"

This reverts commit 8039069d09eb485f41998383896538d21e8b6b5e.

History

#1 Updated by Masato Nagasawa over 11 years ago

  • Subject changed from Doctrineのカスケーディングデリート 時にエラーになる to error at the application cascading of doctrine.(Doctrineのカスケーディングデリート 時にエラーになる)

#2 Updated by Masato Nagasawa over 11 years ago

  • Status changed from New(新規) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 8039069d09eb485f41998383896538d21e8b6b5e で適用されました。

#3 Updated by Masato Nagasawa over 11 years ago

  • Status changed from Pending Review(レビュー待ち) to Accepted(着手)

#4 Updated by Masato Nagasawa over 11 years ago

  • Status changed from Accepted(着手) to Invalid(無効)

誤って3.2向けのチケット作成してしまいました。

Also available in: Atom PDF