DDC-1496: OrphanRemove does not work when using clear() without initializing the collection before #1872

Open
opened 2026-01-22 13:29:13 +01:00 by admin · 0 comments
Owner

Originally created by @doctrinebot on GitHub (Nov 16, 2011).

Originally assigned to: @beberlei on GitHub.

Jira issue originally created by user georgwaechter:

Collection items (marked with orphanRemoval=true) are not removed from the database correctly if

  1. the collection is not initialized
  2. we now call ->clear() on it.

I think the problem is that PersistentCollection::clear() iterates through the uninitialized collection which is empty in this case. Thus the scheduleOrphanRemoval() method is never called.

The best example is within the doctrine 2 documentation: http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-associations.html#orphan-removal . Calling $this->addresses->clear() raises this bug.

I'm currently helping myself by fixing the situation with accessing the elements of the collection before calling ->clear().

Originally created by @doctrinebot on GitHub (Nov 16, 2011). Originally assigned to: @beberlei on GitHub. Jira issue originally created by user georgwaechter: Collection items (marked with orphanRemoval=true) are not removed from the database correctly if 1. the collection is not initialized 2. we now call ->clear() on it. I think the problem is that PersistentCollection::clear() iterates through the uninitialized collection which is empty in this case. Thus the scheduleOrphanRemoval() method is never called. The best example is within the doctrine 2 documentation: http://www.doctrine-project.org/docs/orm/2.0/en/reference/working-with-associations.html#orphan-removal . Calling $this->addresses->clear() raises this bug. I'm currently helping myself by fixing the situation with accessing the elements of the collection before calling ->clear().
admin added the Bug label 2026-01-22 13:29:13 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#1872