CachedRowSetImpl.populate does not correctly validate whether a map object is specified
The check
if (map == null ) {
obj = data.getObject(i);
} else {
obj = data.getObject(i, map);
}
Should be
if (map == null || map.size() == 0) {
obj = data.getObject(i);
} else {
obj = data.getObject(i, map);
}
if a webrowset is read in and has an empty map tag, you would have a non-null value for map and then try to execute
obj = data.getObject(i, map);
Which is not supported on all databases such as derby
The check
if (map == null ) {
obj = data.getObject(i);
} else {
obj = data.getObject(i, map);
}
Should be
if (map == null || map.size() == 0) {
obj = data.getObject(i);
} else {
obj = data.getObject(i, map);
}
if a webrowset is read in and has an empty map tag, you would have a non-null value for map and then try to execute
obj = data.getObject(i, map);
Which is not supported on all databases such as derby