Issue 1492: Large diff causes ArrayIndexOutOfBoundsException
Status:  New
Owner: ----
Project Member Reported by choro...@wikimedia.org, Jul 25, 2012
Affected Version: 2.4/2.5/master

What steps will reproduce the problem?
1. Use a webkit-based browser (confirmed in Chrome/Chromium and Safari)
2. Open a diff of a large file (not necessarily a large diff, just the file is big)
3. Gerrit hangs

What is the expected output? What do you see instead?
You see the diff. Instead, no diff loads. The error console gets spammed with a bunch of errors (see below).

Please provide any additional information below.
This is viewable on the public install for the WMF, example: https://gerrit.wikimedia.org/r/#/c/5220/1/OpenStackManager.i18n.php (also happens on unified diff)

Console output: 
RangeError
arguments: Array[0]
get message: function getter() { [native code] }
get stack: function getter() { [native code] }
set message: function setter() { [native code] }
set stack: function setter() { [native code] }
type: "stack_overflow"
__proto__: Error

Stack trace (with -Dgwt.style=DETAILED):
X
Y
com_google_gerrit_prettify_client_ClientSideFormatter_go__Lcom_google_gwt_core_client_JavaScriptObject_2Ljava_lang_String_2Ljava_lang_String_2ILjava_lang_String_2 BEF34455854068D2D2A52F24C6BB3857.cache.html:4412
com_google_gerrit_prettify_client_ClientSideFormatter_$prettify__Lcom_google_gerrit_prettify_client_ClientSideFormatter_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2 BEF34455854068D2D2A52F24C6BB3857.cache.html:4403
com_google_gerrit_prettify_common_PrettyFormatter_$format__Lcom_google_gerrit_prettify_common_PrettyFormatter_2Lcom_google_gerrit_prettify_common_SparseFileContent_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:4234
com_google_gerrit_client_patches_AbstractPatchContentTable_$getSparseHtmlFileB__Lcom_google_gerrit_client_patches_AbstractPatchContentTable_2Lcom_google_gerrit_common_data_PatchScript_2Lcom_google_gerrit_prettify_common_SparseHtmlFile_2 BEF34455854068D2D2A52F24C6BB3857.cache.html:478
com_google_gerrit_client_patches_SideBySideTable_render__Lcom_google_gerrit_common_data_PatchScript_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:3038
com_google_gerrit_client_patches_AbstractPatchContentTable_$display__Lcom_google_gerrit_client_patches_AbstractPatchContentTable_2Lcom_google_gerrit_reviewdb_client_Patch$Key_2Lcom_google_gerrit_reviewdb_client_PatchSet$Id_2Lcom_google_gerrit_reviewdb_client_PatchSet$Id_2Lcom_google_gerrit_common_data_PatchScript_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:438
com_google_gerrit_client_patches_PatchScreen_$onResult__Lcom_google_gerrit_client_patches_PatchScreen_2Lcom_google_gerrit_common_data_PatchScript_2ZV BEF34455854068D2D2A52F24C6BB3857.cache.html:1564
com_google_gerrit_client_patches_PatchScreen$10_preDisplay__Ljava_lang_Object_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:1816
com_google_gerrit_client_rpc_ScreenLoadCallback_onSuccess__Ljava_lang_Object_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:3459
com_google_gwtjsonrpc_client_JsonUtil_invoke__Lcom_google_gwtjsonrpc_client_impl_ResultDeserializer_2Lcom_google_gwtjsonrpc_common_AsyncCallback_2Lcom_google_gwt_core_client_JavaScriptObject_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:35226
com_google_gwtjsonrpc_client_impl_v2_10_JsonCall20_onResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:35788
com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:25959
com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V BEF34455854068D2D2A52F24C6BB3857.cache.html:26185
(anonymous function) BEF34455854068D2D2A52F24C6BB3857.cache.html:33475
com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2 BEF34455854068D2D2A52F24C6BB3857.cache.html:23597
com_google_gwt_core_client_impl_Impl_entry0__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2 BEF34455854068D2D2A52F24C6BB3857.cache.html:23625
(anonymous function)

Jul 25, 2012
Project Member #1 choro...@wikimedia.org
Turning off syntax highlighting seems to be a viable workaround.
Jul 25, 2012
#2 amu...@wikimedia.org
I have a similar issue on Safari browser which is webkit based too.  I had Syntax color disabled for a long time because it caused blank page on large files.