Translate

2019년 5월 30일 목요일

[jqGrid][Bug] Importing - Uncaught Error: Syntax error, unrecognized expression: rows>page







jqGrid의 Export / Import 예제를 만들다가 발견을 했다.



환경: jqGrid v4.7.1 이하버전

증상

xmlstring 형식으로 import 시도 시 데이터가 없는 그리드만 생성되고 아래와 같은 에러가 발생한다.
1004lucifer



jquery.js:2 Uncaught Error: Syntax error, unrecognized expression: rows>page
    at Function.a.error (jquery.js:2)
    at f (jquery.js:2)
    at x (jquery.js:2)
    at Function.a [as find] (jquery.js:2)
    at init.find (jquery.js:2)
    at new init (jquery.js:1)
    at st (jquery.js:1)
    at Object.getXmlData (jquery.jqGrid.js:285)
    at addXmlData (jquery.jqGrid.js:1286)
    at populate (jquery.jqGrid.js:2040)







원인

 - https://github.com/tonytomov/jqGrid/blob/v4.7.1/js/jquery.jqGrid.js#L9557

jqGrid 개발자 소스로 한줄씩 디버깅을 하면서 확인을 해봤으며,
xml 에서 json으로 변환 시 page 부분 데이터중 '>' 기호가 escape 되어 이후의 데이터 파싱 부분에서 에러가 발생하는 것을 확인했다.
('rows>page' 이렇게 데이터가 들어가야 하는데 'rows>page' 라고 데이터가 들어가서 xmlstring 에서 데이터를 추출 시 오류가 발생한다.)
1004lucifer
버전을 바꿔가면서 v4.5.0 부터 v4.7.1 까지 몇개를 테스트 했는데 모두 동일한 오류가 발생했으며, v3.4에 기능이 만들어진 이후에 특정시점부터 버그가 발생한 것으로 보인다.


심지어 공식 데모사이트에서도 동일한 에러가 발생을 한다.
http://trirand.com/blog/jqgrid/jqgrid.html
(Menu: 'New in version 3.4 > Import Configuration from XML')



댓글 없음 :

댓글 쓰기