<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>29924</bug_id>
          
          <creation_ts>2009-09-30 07:29:16 -0700</creation_ts>
          <short_desc>Database Inspector crashes Safari when table has more than 21 columns</short_desc>
          <delta_ts>2009-10-02 13:11:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>NeedsReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Lind">timlind</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>joepeck</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>151241</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Lind">timlind</who>
    <bug_when>2009-09-30 07:29:16 -0700</bug_when>
    <thetext>Create a table with 21 or more columns. Select it under the database in the Web Inspector, and Safari hangs (infinitely).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151305</commentid>
    <comment_count>1</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2009-09-30 11:32:29 -0700</bug_when>
    <thetext>Here&apos;s an example that creates exactly 21 columns which does not appear to hang Safari when viewing the db in Web Inspector in nightly r48908.  Reloading the page over and over will result in a new row being added each time.

I wonder if it&apos;s some data that&apos;s causing a problem?  Why do you think it&apos;s the 21st column that causes a problem?

---------- clip here ----------
&lt;script&gt;
var db = openDatabase(&quot;bug-29924&quot;, &quot;1.0&quot;, &quot;sample for webkit bug 29924&quot;, 200000);

var cols21def   = &quot;&quot;;
var cols21spec  = &quot;&quot;;
var vals21spec  = &quot;&quot;;
var vals21      = []
for (var i = 1; i &lt;= 21; ++i) {
    cols21def  = cols21def  + &quot;col&quot; + i + &quot; TEXT&quot;;
    cols21spec = cols21spec + &quot;col&quot; + i;
    vals21spec = vals21spec + &quot;?&quot;;
    vals21.push(new Date().toString());
    
    if (i != 21) {
        cols21def  += &quot;, &quot;;
        cols21spec += &quot;, &quot;;
        vals21spec += &quot;, &quot;;
    }
}

db.transaction(function(tx) {
    var statement = &quot;CREATE TABLE IF NOT EXISTS TwentyOneColumns (&quot; + cols21def + &quot;)&quot;;
    tx.executeSql(
        statement, [],  
        function(tx, result) {
            var statement = &quot;INSERT INTO TwentyOneColumns (&quot; + cols21spec + &quot;) VALUES (&quot; + vals21spec + &quot;)&quot;;
            tx.executeSql(
                statement, vals21,  
                function(tx, result) {},
                function(tx, error) {
                    alert(&quot;Error during INSERT: &quot; + JSON.stringify(error));
                }
            );
        },
        function(tx, error) {
            alert(&quot;Error during CREATE TABLE: &quot; + JSON.stringify(error));
        }
    );
});

&lt;/script&gt;
---------- clip here ----------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151324</commentid>
    <comment_count>2</comment_count>
      <attachid>40391</attachid>
    <who name="Tim Lind">timlind</who>
    <bug_when>2009-09-30 12:35:21 -0700</bug_when>
    <thetext>Created attachment 40391
test case

21 columns, with one unique constraint on two of the columns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151325</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Lind">timlind</who>
    <bug_when>2009-09-30 12:37:37 -0700</bug_when>
    <thetext>Your code didn&apos;t cause any problems for me either. I tried adding a one key unique constraint to yours and it was still fine.

The file I attached now shows the problem. It has one unique constraint on two columns. Inserts undefined values for some columns. The problem only occurs once data is inserted that can be viewed.

Taking one column away should fix the problem.

Enjoy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151348</commentid>
    <comment_count>4</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2009-09-30 14:00:11 -0700</bug_when>
    <thetext>Great.  That test does result in nightly hanging, sitting at nearly 100% cpu.  Should be fun to debug :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151439</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-09-30 20:57:16 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Great.  That test does result in nightly hanging, sitting at nearly 100% cpu. 
&gt; Should be fun to debug :-(

I&apos;ve had some experience working with the DataGrids so the number 21 jumped out at me immediately. The &quot;minimum&quot; size of each column was set at 5%, and in Storage.js dataGridForResult.  There is a section where it will continue to &quot;adjust&quot; the columns not willing to go less then their minimum in order to fit into 100%.  Great spot for an infinite loop.

Patch to come soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151445</commentid>
    <comment_count>6</comment_count>
      <attachid>40420</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-09-30 21:20:21 -0700</bug_when>
    <thetext>Created attachment 40420
[PATCH] Fix Hang

Since I moved the DataGrid creation code into its view (like DOM Storage and Cookies did and are unaffected due to fixed/known number of columns) its hard to see the explicit changes, so I&apos;ll mention them here.

Changes:
- numColumns variable to count the number of columns
- const minimumPrecent = Math.min(5, Math.floor(100/numColumns));

The Math.floor is not really necessary but working with integer values seemed better then having horrible percentages like &quot;4.761904761904762&quot;.  I don&apos;t think we should worry about the unrealistic case of &gt;100 columns, causing the minimumPercent to floor to 0.  The grid could not be useful, but at least it wouldn&apos;t crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151944</commentid>
    <comment_count>7</comment_count>
      <attachid>40420</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-02 12:43:10 -0700</bug_when>
    <thetext>Comment on attachment 40420
[PATCH] Fix Hang

DatabaseQueryView.js uses dataGridForResult. So we shouldn&apos;t move it yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151955</commentid>
    <comment_count>8</comment_count>
      <attachid>40542</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-02 12:52:40 -0700</bug_when>
    <thetext>Created attachment 40542
[PATCH] Fix Hang

Good Catch. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151960</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-02 13:11:08 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/49039
	M	WebCore/ChangeLog
	M	WebCore/inspector/front-end/StoragePanel.js
r49039 = 9b3be88c052ba7e1b9c6a78f125d1a6222530cf7 (trunk)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>40391</attachid>
            <date>2009-09-30 12:35:21 -0700</date>
            <delta_ts>2009-09-30 12:35:21 -0700</delta_ts>
            <desc>test case</desc>
            <filename>bug.html</filename>
            <type>text/html</type>
            <size>789</size>
            <attacher name="Tim Lind">timlind</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIj8+CjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEv
RFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgoJPGhlYWQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
CnZhciBkYiA9IG9wZW5EYXRhYmFzZSgiYnVnLTI5OTI0IiwgIjEuMCIsICJzYW1wbGUgZm9yIHdl
YmtpdCBidWcgMjk5MjQiLDIwMDAwMCk7CgpkYi50cmFuc2FjdGlvbigKCWZ1bmN0aW9uKHQpIHsK
CQl0LmV4ZWN1dGVTcWwoIkNSRUFURSBUQUJMRSBpZiBub3QgZXhpc3RzIE5hdWdodHkgKCBjb2wx
LCBjb2wyLCBjb2wzLCBjb2w0LCBjb2w1LCBjb2w2LCBjb2w3LCBjb2w4LCBjb2w5LCBjb2wxMCwg
Y29sMTEsIGNvbDEyLCBjb2wxMywgY29sMTQsIGNvbDE1LCBjb2wxNiwgY29sMTcsIGNvbDE4LCBj
b2wxOSwgY29sMjAsIGNvbDIxLCB1bmlxdWUgKGNvbDEsIGNvbDIpICkiLCBbXSwKCQkJZnVuY3Rp
b24odHgpIHsKCQkJCXR4LmV4ZWN1dGVTcWwoImluc2VydCBpbnRvIE5hdWdodHkgKGNvbDEsIGNv
bDIsIGNvbDMpIHZhbHVlcyAoPyw/LD8pIiwgWyJpbSIsImduYSIsImdldCB5b3UiXSkJCgkJCX0K
CQkpCgkgfSwKCSBmdW5jdGlvbihlKSB7IHRocm93IG5ldyBFcnJvcigidHJhbnNhY3Rpb24gZXJy
b3IiICsgZS5tZXNzYWdlKSB9CikKCjwvc2NyaXB0Pgo8L2hlYWQ+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40420</attachid>
            <date>2009-09-30 21:20:21 -0700</date>
            <delta_ts>2009-10-02 12:52:40 -0700</delta_ts>
            <desc>[PATCH] Fix Hang</desc>
            <filename>datagrid_hang.patch</filename>
            <type>text/plain</type>
            <size>7860</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzcxYmQ0ZC4uMDk5YTdkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wOS0zMCAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERhdGFiYXNlIEluc3BlY3RvciBjcmFzaGVzIFNhZmFyaSB3aGVu
IHRhYmxlIGhhcyBtb3JlIHRoYW4gMjEgY29sdW1ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk5MjQKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJh
c2VUYWJsZVZpZXcucHJvdG90eXBlLmRhdGFHcmlkRm9yUmVzdWx0KTogbWlubXVtIHBlcmNlbnQg
bWF5IGJlIGxlc3MgdGhlbiA1JQorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVW
aWV3LnByb3RvdHlwZS5fcXVlcnlGaW5pc2hlZCk6IGNoYW5nZWQgY2FsbCB0byBjcmVhdGUgZGF0
YSBncmlkCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanM6IG1v
dmVkIGRhdGFHcmlkRm9yUmVzdWx0IHRvIGl0cyBWaWV3CisKIDIwMDktMDktMjggIENoYXJsZXMg
V2VpICA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE5pa29sYXMgWmltbWVybWFubi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EYXRhYmFzZVRhYmxlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EYXRhYmFzZVRhYmxlVmlldy5qcwppbmRleCBhYTc2Nzk0Li41YTQyYTc2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVWaWV3LmpzCkBAIC01NCwx
MSArNTQsOTMgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5kYXRhYmFzZS5leGVjdXRlU3FsKCJTRUxFQ1QgKiBGUk9NICIgKyB0aGlz
LnRhYmxlTmFtZSwgdGhpcy5fcXVlcnlGaW5pc2hlZC5iaW5kKHRoaXMpLCB0aGlzLl9xdWVyeUVy
cm9yLmJpbmQodGhpcykpOwogICAgIH0sCiAKKyAgICBkYXRhR3JpZEZvclJlc3VsdDogZnVuY3Rp
b24ocmVzdWx0KQorICAgIHsKKyAgICAgICAgaWYgKCFyZXN1bHQucm93cy5sZW5ndGgpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICB2YXIgY29sdW1ucyA9IHt9OworICAgICAg
ICB2YXIgbnVtQ29sdW1ucyA9IDA7CisKKyAgICAgICAgdmFyIHJvd3MgPSByZXN1bHQucm93czsK
KyAgICAgICAgZm9yICh2YXIgY29sdW1uSWRlbnRpZmllciBpbiByb3dzLml0ZW0oMCkpIHsKKyAg
ICAgICAgICAgIHZhciBjb2x1bW4gPSB7fTsKKyAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IGNv
bHVtbklkZW50aWZpZXIubGVuZ3RoOworICAgICAgICAgICAgY29sdW1uLnRpdGxlID0gY29sdW1u
SWRlbnRpZmllcjsKKworICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXSA9IGNv
bHVtbjsKKyAgICAgICAgICAgIG51bUNvbHVtbnMrKzsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBub2RlcyA9IFtdOworICAgICAgICB2YXIgbGVuZ3RoID0gcm93cy5sZW5ndGg7CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBkYXRh
ID0ge307CisKKyAgICAgICAgICAgIHZhciByb3cgPSByb3dzLml0ZW0oaSk7CisgICAgICAgICAg
ICBmb3IgKHZhciBjb2x1bW5JZGVudGlmaWVyIGluIHJvdykgeworICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiAoQnVnIDE5NDM5KSBXZSBzaG91bGQgc3BlY2lhbGx5IGZvcm1hdCBTUUwgTlVMTCBo
ZXJlCisgICAgICAgICAgICAgICAgLy8gKHdoaWNoIGlzIHJlcHJlc2VudGVkIGJ5IEphdmFTY3Jp
cHQgbnVsbCBoZXJlLCBhbmQgdHVybmVkCisgICAgICAgICAgICAgICAgLy8gaW50byB0aGUgc3Ry
aW5nICJudWxsIiBieSB0aGUgU3RyaW5nKCkgZnVuY3Rpb24pLgorICAgICAgICAgICAgICAgIHZh
ciB0ZXh0ID0gU3RyaW5nKHJvd1tjb2x1bW5JZGVudGlmaWVyXSk7CisgICAgICAgICAgICAgICAg
ZGF0YVtjb2x1bW5JZGVudGlmaWVyXSA9IHRleHQ7CisgICAgICAgICAgICAgICAgaWYgKHRleHQu
bGVuZ3RoID4gY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0aCkKKyAgICAgICAgICAgICAg
ICAgICAgY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0aCA9IHRleHQubGVuZ3RoOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0
YUdyaWROb2RlKGRhdGEsIGZhbHNlKTsKKyAgICAgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IGZh
bHNlOworICAgICAgICAgICAgbm9kZXMucHVzaChub2RlKTsKKyAgICAgICAgfQorCisgICAgICAg
IHZhciB0b3RhbENvbHVtbldpZHRocyA9IDA7CisgICAgICAgIGZvciAodmFyIGNvbHVtbklkZW50
aWZpZXIgaW4gY29sdW1ucykKKyAgICAgICAgICAgIHRvdGFsQ29sdW1uV2lkdGhzICs9IGNvbHVt
bnNbY29sdW1uSWRlbnRpZmllcl0ud2lkdGg7CisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBw
ZXJjZW50YWdlIHdpZHRoIGZvciB0aGUgY29sdW1ucy4KKyAgICAgICAgLy8gU2luY2UgdGhlcmUg
bWF5IGJlIGFueSBudW1iZXIgb2YgY29sdW1ucywgdGhlIG1pbmltdW0gd2lkdGggbWF5IG5lZWQg
dG8gYmUgbGVzcyB0aGVuIDUlCisgICAgICAgIGNvbnN0IG1pbmltdW1QcmVjZW50ID0gTWF0aC5t
aW4oNSwgTWF0aC5mbG9vcigxMDAvbnVtQ29sdW1ucykpOworICAgICAgICB2YXIgcmVjb3VwUGVy
Y2VudCA9IDA7CisgICAgICAgIGZvciAodmFyIGNvbHVtbklkZW50aWZpZXIgaW4gY29sdW1ucykg
eworICAgICAgICAgICAgdmFyIHdpZHRoID0gY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0
aDsKKyAgICAgICAgICAgIHdpZHRoID0gTWF0aC5yb3VuZCgod2lkdGggLyB0b3RhbENvbHVtbldp
ZHRocykgKiAxMDApOworICAgICAgICAgICAgaWYgKHdpZHRoIDwgbWluaW11bVByZWNlbnQpIHsK
KyAgICAgICAgICAgICAgICByZWNvdXBQZXJjZW50ICs9IChtaW5pbXVtUHJlY2VudCAtIHdpZHRo
KTsKKyAgICAgICAgICAgICAgICB3aWR0aCA9IG1pbmltdW1QcmVjZW50OworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBjb2x1bW5zW2NvbHVtbklkZW50aWZpZXJdLndpZHRoID0gd2lkdGg7
CisgICAgICAgIH0KKworICAgICAgICAvLyBFbmZvcmNlIHRoZSBtaW5pbXVtIHBlcmNlbnRhZ2Ug
d2lkdGguCisgICAgICAgIHdoaWxlIChyZWNvdXBQZXJjZW50ID4gMCkgeworICAgICAgICAgICAg
Zm9yICh2YXIgY29sdW1uSWRlbnRpZmllciBpbiBjb2x1bW5zKSB7CisgICAgICAgICAgICAgICAg
aWYgKGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0ud2lkdGggPiBtaW5pbXVtUHJlY2VudCkgewor
ICAgICAgICAgICAgICAgICAgICAtLWNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0ud2lkdGg7Cisg
ICAgICAgICAgICAgICAgICAgIC0tcmVjb3VwUGVyY2VudDsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCFyZWNvdXBQZXJjZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hh
bmdlIHRoZSB3aWR0aCBwcm9wZXJ0eSB0byBhIHN0cmluZyBzdWl0YWJsZSBmb3IgYSBzdHlsZSB3
aWR0aC4KKyAgICAgICAgZm9yICh2YXIgY29sdW1uSWRlbnRpZmllciBpbiBjb2x1bW5zKQorICAg
ICAgICAgICAgY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0aCArPSAiJSI7CisKKyAgICAg
ICAgdmFyIGRhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zKTsKKyAg
ICAgICAgdmFyIGxlbmd0aCA9IG5vZGVzLmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGVz
W2ldKTsKKworICAgICAgICByZXR1cm4gZGF0YUdyaWQ7CisgICAgfSwKKwogICAgIF9xdWVyeUZp
bmlzaGVkOiBmdW5jdGlvbihyZXN1bHQpCiAgICAgewogICAgICAgICB0aGlzLmVsZW1lbnQucmVt
b3ZlQ2hpbGRyZW4oKTsKIAotICAgICAgICB2YXIgZGF0YUdyaWQgPSBXZWJJbnNwZWN0b3IucGFu
ZWxzLnN0b3JhZ2UuZGF0YUdyaWRGb3JSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgdmFyIGRhdGFH
cmlkID0gdGhpcy5kYXRhR3JpZEZvclJlc3VsdChyZXN1bHQpOwogICAgICAgICBpZiAoIWRhdGFH
cmlkKSB7CiAgICAgICAgICAgICB2YXIgZW1wdHlNc2dFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CiAgICAgICAgICAgICBlbXB0eU1zZ0VsZW1lbnQuY2xhc3NOYW1lID0g
InN0b3JhZ2UtdGFibGUtZW1wdHkiOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0b3JhZ2VQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9y
YWdlUGFuZWwuanMKaW5kZXggMDFjNjU3ZC4uMTRiZGM1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCkBAIC0yOTcsODUgKzI5Nyw2IEBAIFdlYkluc3Bl
Y3Rvci5TdG9yYWdlUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBkYXRhYmFzZS5nZXRUYWJs
ZU5hbWVzKHRhYmxlTmFtZXNDYWxsYmFjayk7CiAgICAgfSwKIAotICAgIGRhdGFHcmlkRm9yUmVz
dWx0OiBmdW5jdGlvbihyZXN1bHQpCi0gICAgewotICAgICAgICBpZiAoIXJlc3VsdC5yb3dzLmxl
bmd0aCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIHZhciBjb2x1bW5zID0g
e307Ci0KLSAgICAgICAgdmFyIHJvd3MgPSByZXN1bHQucm93czsKLSAgICAgICAgZm9yICh2YXIg
Y29sdW1uSWRlbnRpZmllciBpbiByb3dzLml0ZW0oMCkpIHsKLSAgICAgICAgICAgIHZhciBjb2x1
bW4gPSB7fTsKLSAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IGNvbHVtbklkZW50aWZpZXIubGVu
Z3RoOwotICAgICAgICAgICAgY29sdW1uLnRpdGxlID0gY29sdW1uSWRlbnRpZmllcjsKLQotICAg
ICAgICAgICAgY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXSA9IGNvbHVtbjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZhciBub2RlcyA9IFtdOwotICAgICAgICB2YXIgbGVuZ3RoID0gcm93cy5sZW5n
dGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
ICAgIHZhciBkYXRhID0ge307Ci0KLSAgICAgICAgICAgIHZhciByb3cgPSByb3dzLml0ZW0oaSk7
Ci0gICAgICAgICAgICBmb3IgKHZhciBjb2x1bW5JZGVudGlmaWVyIGluIHJvdykgewotICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiAoQnVnIDE5NDM5KSBXZSBzaG91bGQgc3BlY2lhbGx5IGZvcm1h
dCBTUUwgTlVMTCBoZXJlCi0gICAgICAgICAgICAgICAgLy8gKHdoaWNoIGlzIHJlcHJlc2VudGVk
IGJ5IEphdmFTY3JpcHQgbnVsbCBoZXJlLCBhbmQgdHVybmVkCi0gICAgICAgICAgICAgICAgLy8g
aW50byB0aGUgc3RyaW5nICJudWxsIiBieSB0aGUgU3RyaW5nKCkgZnVuY3Rpb24pLgotICAgICAg
ICAgICAgICAgIHZhciB0ZXh0ID0gU3RyaW5nKHJvd1tjb2x1bW5JZGVudGlmaWVyXSk7Ci0gICAg
ICAgICAgICAgICAgZGF0YVtjb2x1bW5JZGVudGlmaWVyXSA9IHRleHQ7Ci0gICAgICAgICAgICAg
ICAgaWYgKHRleHQubGVuZ3RoID4gY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0aCkKLSAg
ICAgICAgICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0aCA9IHRleHQu
bGVuZ3RoOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuRGF0YUdyaWROb2RlKGRhdGEsIGZhbHNlKTsKLSAgICAgICAgICAgIG5vZGUuc2Vs
ZWN0YWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgbm9kZXMucHVzaChub2RlKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHZhciB0b3RhbENvbHVtbldpZHRocyA9IDA7Ci0gICAgICAgIGZvciAodmFy
IGNvbHVtbklkZW50aWZpZXIgaW4gY29sdW1ucykKLSAgICAgICAgICAgIHRvdGFsQ29sdW1uV2lk
dGhzICs9IGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0ud2lkdGg7Ci0KLSAgICAgICAgLy8gQ2Fs
Y3VsYXRlIHRoZSBwZXJjZW50YWdlIHdpZHRoIGZvciB0aGUgY29sdW1ucy4KLSAgICAgICAgY29u
c3QgbWluaW11bVByZWNlbnQgPSA1OwotICAgICAgICB2YXIgcmVjb3VwUGVyY2VudCA9IDA7Ci0g
ICAgICAgIGZvciAodmFyIGNvbHVtbklkZW50aWZpZXIgaW4gY29sdW1ucykgewotICAgICAgICAg
ICAgdmFyIHdpZHRoID0gY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0aDsKLSAgICAgICAg
ICAgIHdpZHRoID0gTWF0aC5yb3VuZCgod2lkdGggLyB0b3RhbENvbHVtbldpZHRocykgKiAxMDAp
OwotICAgICAgICAgICAgaWYgKHdpZHRoIDwgbWluaW11bVByZWNlbnQpIHsKLSAgICAgICAgICAg
ICAgICByZWNvdXBQZXJjZW50ICs9IChtaW5pbXVtUHJlY2VudCAtIHdpZHRoKTsKLSAgICAgICAg
ICAgICAgICB3aWR0aCA9IG1pbmltdW1QcmVjZW50OwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBjb2x1bW5zW2NvbHVtbklkZW50aWZpZXJdLndpZHRoID0gd2lkdGg7Ci0gICAgICAgIH0K
LQotICAgICAgICAvLyBFbmZvcmNlIHRoZSBtaW5pbXVtIHBlcmNlbnRhZ2Ugd2lkdGguCi0gICAg
ICAgIHdoaWxlIChyZWNvdXBQZXJjZW50ID4gMCkgewotICAgICAgICAgICAgZm9yICh2YXIgY29s
dW1uSWRlbnRpZmllciBpbiBjb2x1bW5zKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbHVtbnNb
Y29sdW1uSWRlbnRpZmllcl0ud2lkdGggPiBtaW5pbXVtUHJlY2VudCkgewotICAgICAgICAgICAg
ICAgICAgICAtLWNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0ud2lkdGg7Ci0gICAgICAgICAgICAg
ICAgICAgIC0tcmVjb3VwUGVyY2VudDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWNvdXBQ
ZXJjZW50KQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQ2hhbmdlIHRoZSB3aWR0
aCBwcm9wZXJ0eSB0byBhIHN0cmluZyBzdWl0YWJsZSBmb3IgYSBzdHlsZSB3aWR0aC4KLSAgICAg
ICAgZm9yICh2YXIgY29sdW1uSWRlbnRpZmllciBpbiBjb2x1bW5zKQotICAgICAgICAgICAgY29s
dW1uc1tjb2x1bW5JZGVudGlmaWVyXS53aWR0aCArPSAiJSI7Ci0KLSAgICAgICAgdmFyIGRhdGFH
cmlkID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zKTsKLSAgICAgICAgdmFyIGxl
bmd0aCA9IG5vZGVzLmxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKLSAgICAgICAgICAgIGRhdGFHcmlkLmFwcGVuZENoaWxkKG5vZGVzW2ldKTsKLQotICAg
ICAgICByZXR1cm4gZGF0YUdyaWQ7Ci0gICAgfSwKLQogICAgIHJlc2l6ZTogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdmFyIHZpc2libGVWaWV3ID0gdGhpcy52aXNpYmxlVmlldzsK
</data>
<flag name="review"
          id="21636"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40542</attachid>
            <date>2009-10-02 12:52:40 -0700</date>
            <delta_ts>2009-10-02 12:53:53 -0700</delta_ts>
            <desc>[PATCH] Fix Hang</desc>
            <filename>columns.patch</filename>
            <type>text/plain</type>
            <size>1774</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTc3MThjMS4uZWY1MGVkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMC0wMiAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERhdGFiYXNlIEluc3BlY3RvciBjcmFzaGVzIFNhZmFyaSB3aGVu
IHRhYmxlIGhhcyBtb3JlIHRoYW4gMjEgY29sdW1ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk5MjQKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU3RvcmFnZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5l
bC5wcm90b3R5cGUuZGF0YUdyaWRGb3JSZXN1bHQpOiBhZGp1c3QgdGhlIG1pbmltdW0gY29sdW1u
IHdpZHRoIHBlcmNlbnRhZ2UgdG8gYmUgZmxleGlibGUgZm9yIG1hbnkgY29sdW1ucy4KKwogMjAw
OS0wOS0zMCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1
aWxkIGZpeCwgbm90IHJldmlld2VkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0b3JhZ2VQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9y
YWdlUGFuZWwuanMKaW5kZXggMDFjNjU3ZC4uOWU1YzI4NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCkBAIC0zMDMsNiArMzAzLDcgQEAgV2ViSW5zcGVj
dG9yLlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gbnVsbDsK
IAogICAgICAgICB2YXIgY29sdW1ucyA9IHt9OworICAgICAgICB2YXIgbnVtQ29sdW1ucyA9IDA7
CiAKICAgICAgICAgdmFyIHJvd3MgPSByZXN1bHQucm93czsKICAgICAgICAgZm9yICh2YXIgY29s
dW1uSWRlbnRpZmllciBpbiByb3dzLml0ZW0oMCkpIHsKQEAgLTMxMSw2ICszMTIsNyBAQCBXZWJJ
bnNwZWN0b3IuU3RvcmFnZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNvbHVtbi50
aXRsZSA9IGNvbHVtbklkZW50aWZpZXI7CiAKICAgICAgICAgICAgIGNvbHVtbnNbY29sdW1uSWRl
bnRpZmllcl0gPSBjb2x1bW47CisgICAgICAgICAgICArK251bUNvbHVtbnM7CiAgICAgICAgIH0K
IAogICAgICAgICB2YXIgbm9kZXMgPSBbXTsKQEAgLTMzOSw3ICszNDEsNyBAQCBXZWJJbnNwZWN0
b3IuU3RvcmFnZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRvdGFsQ29sdW1uV2lk
dGhzICs9IGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0ud2lkdGg7CiAKICAgICAgICAgLy8gQ2Fs
Y3VsYXRlIHRoZSBwZXJjZW50YWdlIHdpZHRoIGZvciB0aGUgY29sdW1ucy4KLSAgICAgICAgY29u
c3QgbWluaW11bVByZWNlbnQgPSA1OworICAgICAgICBjb25zdCBtaW5pbXVtUHJlY2VudCA9IE1h
dGgubWluKDUsIE1hdGguZmxvb3IoMTAwL251bUNvbHVtbnMpKTsKICAgICAgICAgdmFyIHJlY291
cFBlcmNlbnQgPSAwOwogICAgICAgICBmb3IgKHZhciBjb2x1bW5JZGVudGlmaWVyIGluIGNvbHVt
bnMpIHsKICAgICAgICAgICAgIHZhciB3aWR0aCA9IGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0u
d2lkdGg7Cg==
</data>
<flag name="review"
          id="21783"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>