<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -96,9 +96,12 @@ module ActiveSupport
       @guard.synchronize do
         unless buffer.empty?
           old_buffer = buffer
-          clear_buffer
           @log.write(old_buffer.join)
         end
+
+        # Important to do this even if buffer was empty or else @buffer will
+        # accumulate empty arrays for each request where nothing was logged.
+        clear_buffer
       end
     end
 </diff>
      <filename>activesupport/lib/active_support/buffered_logger.rb</filename>
    </modified>
    <modified>
      <diff>@@ -137,4 +137,10 @@ class BufferedLoggerTest &lt; Test::Unit::TestCase
     assert @output.string.include?(&quot;a\nb\nc\n&quot;)
     assert @output.string.include?(&quot;x\ny\nz\n&quot;)
   end
+
+  def test_flush_should_remove_empty_buffers
+    @logger.send :buffer
+    @logger.expects :clear_buffer
+    @logger.flush
+  end
 end</diff>
      <filename>activesupport/test/buffered_logger_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d45e2c733d471b0c87f7cf721376ca4802450121</id>
    </parent>
  </parents>
  <author>
    <name>Frederick Cheung</name>
    <email>frederick.cheung@gmail.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/9f69ff12d44c4d1e475fd6efede120ccedba3b3e</url>
  <id>9f69ff12d44c4d1e475fd6efede120ccedba3b3e</id>
  <committed-date>2008-12-10T15:07:34-08:00</committed-date>
  <authored-date>2008-12-10T14:36:58-08:00</authored-date>
  <message>Squash memory leak when calling flush with an empty buffer

[#1552 state:committed]

Signed-off-by: Jeremy Kemper &lt;jeremy@bitsweat.net&gt;</message>
  <tree>54736917ef42c4c84f04b03c703a3db7aca43da6</tree>
  <committer>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </committer>
</commit>
