Общее·количество·просмотров·страницы

Java Dev Notes - разработка на Java (а также на JavaScript/Python/Flex и др), факты, события из АйТи

Архив блога

пятница, 20 мая 2011 г.

Баг-репорт ExtJS 4.0.0

Сегодня утром отправил баг-репорт на форум Sencha. См. Null error (Null Pointer Exception) in Ext.data.Connection.

Ошибка заключается в следующем: иногда xhr.getAllResponseHeaders() возвращает null. А возвращаемое значение не проверяется и используется сразу.

Вот сниппет из класса Ext.data.Connection:

/**
* Create the response object
* @private
* @param {Object} request
*/

createResponse : function(request) {
var xhr = request.xhr,
headers = {},
lines = xhr.getAllResponseHeaders().replace(/\r\n/g, '\n').split('\n'),
count = lines.length,
line, index, key, value, response;
 
// other code goes here....
}


Несложно догадаться, что строка
lines = xhr.getAllResponseHeaders().replace(/\r\n/g, '\n').split('\n'),
 
приведет к ошибки, если xhr.getAllResponseHeaders() возвратит null. Что и происходит в данном случае.

Фикс этого безобразия следующий:

lines = xhr.getAllResponseHeaders() ? xhr.getAllResponseHeaders().replace(/\r\n/g, '\n').split('\n') : '',

Комментариев нет:

Отправить комментарий

Постоянные читатели