# "Exception: stack level too deep" on collection.clear?

**URL:** <https://www.ruby-forum.com/t/exception-stack-level-too-deep-on-collection-clear/105734>\
**Category:** Rails\
**Created:** [June 1, 2007, 10:50pm UTC](https://www.ruby-forum.com/t/exception-stack-level-too-deep-on-collection-clear/105734 "2007-06-01T22:50:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![AndyV](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/9fc29f/32.png) [@AndyV](https://www.ruby-forum.com/u/AndyV)\
**Post date:** [June 1, 2007, 10:50pm UTC](https://www.ruby-forum.com/t/exception-stack-level-too-deep-on-collection-clear/105734/1 "2007-06-01T22:50:14Z")

</div>

Without getting too deep into my app I’m wondering if anyone has any  
clues what might give rise to the error posted below. It occurs when  
I run my unit tests.

class Actor \< AR:Base  
belongs\_to :court\_case  
end

class CaseCause \< AR:Base  
belongs\_to :court\_case  
end

class CourtCase \< AR:Base  
has\_many :actors  
has\_many :case\_causes  
…  
end

def my\_test\_method  
… kase.actors.clear  
end

def my\_other\_method  
… kase.case\_causes.clear  
end

Also, Actor and CaseCause both have observers on them that attempt to  
update CourtCase.

* * *

Exception: stack level too deep  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
associations/association\_collection.rb:69:in `clear' (eval):3:in`destroy\_without\_habtm\_shim\_for\_actors’  
(eval):4:in `destroy_without_habtm_shim_for_actors' (eval):4:in`destroy\_without\_callbacks’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
callbacks.rb:321:in `destroy_without_transactions' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ transactions.rb:125:in`destroy’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
connection\_adapters/abstract/database\_statements.rb:59:in  
`transaction' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ transactions.rb:95:in`transaction’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
transactions.rb:121:in `transaction' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ transactions.rb:125:in`destroy’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
associations/has\_many\_association.rb:168:in `delete_records' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ associations/has_many_association.rb:168:in`each’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
associations/has\_many\_association.rb:168:in `delete_records' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ associations/association_collection.rb:59:in`delete’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
connection\_adapters/abstract/database\_statements.rb:59:in  
`transaction' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ transactions.rb:95:in`transaction’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
transactions.rb:121:in `transaction' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ associations/association_collection.rb:57:in`delete’  
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active\_record/  
associations/association\_collection.rb:41:in `delete_all' C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/ associations/association_collection.rb:74:in`clear’  
C:\Documents and Settings\andy.PCSSINC.000\My Documents\RailsProjects  
\rJems/test/unit/court\_case\_test.rb:162:in  
`test_removal_of_required_causes_from_active_case' C:/ruby/lib/ruby/1.8/test/unit/testcase.rb:72:in` **send** ’  
C:/ruby/lib/ruby/1.8/test/unit/testcase.rb:72:in `run' C:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:34:in`run’  
C:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each' C:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in`run’  
C:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run' C:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in`each’  
C:/ruby/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run' C:/ruby/lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in`run\_suite’  
C:/Program Files/RadRails/plugins/  
org.rubypeople.rdt.testunit\_0.8.0.604272100PRD/ruby/  
RemoteTestRunner.rb:107:in `start_mediator' C:/Program Files/RadRails/plugins/ org.rubypeople.rdt.testunit_0.8.0.604272100PRD/ruby/ RemoteTestRunner.rb:52:in`start’  
C:/Program Files/RadRails/plugins/  
org.rubypeople.rdt.testunit\_0.8.0.604272100PRD/ruby/  
RemoteTestRunner.rb:272
