I ran into an interesting timing issue / bug in v6.0 ResultSet class. If an update happens to the DataSource just after the ResultSet has had invalidateCache() called it fails with the error "null is null or not an object" this is due to the fact that invalidateCache (well actually invalidateRows) sets both localData and allRows to null which updateCacheData assigns to a local variable cache with the code cache = filteringOnClient ? this.allRows : this.localData, this variable is not checked to see if it's non-null, ideally check if it's an array, before it's used with and call to add, set, or removeAt. Viable solutions include checking cache and if null return out of the function before doing all the rest of the logic, or check it and assign it an empty array to simply keep it from failing. Unfortunately with the call to the obfuscated _doSort at the bottom of that function it makes it difficult/time consuming to create a patch for it in house.
PS, I took a quick look at the v6.5 and it appears to have the same issue.
-john
PS, I took a quick look at the v6.5 and it appears to have the same issue.
-john
Comment