Javadoc says that null value should be returned. But from the other side, there is wasNull() method, that should be use for null checks.
On Thu, Nov 3, 2016 at 5:39 PM, Andrey Gura <ag...@apache.org> wrote: > String.valuOf(null) return "null" string by contract. > > On Thu, Nov 3, 2016 at 5:33 PM, Anil <anilk...@gmail.com> wrote: > >> HI , >> >> null values are returned as "null" with ignite jdbc result set. >> >> private <T> T getTypedValue(int colIdx, Class<T> cls) throws >> SQLException { >> ensureNotClosed(); >> ensureHasCurrentRow(); >> >> try { >> T val = cls == String.class ? (T)String.valueOf(curr.get(colIdx >> - 1)) : (T)curr.get(colIdx - 1); >> >> wasNull = val == null; >> >> return val; >> } >> catch (IndexOutOfBoundsException ignored) { >> throw new SQLException("Invalid column index: " + colIdx); >> } >> catch (ClassCastException ignored) { >> throw new SQLException("Value is an not instance of " + >> cls.getName()); >> } >> } >> >> >> if a column value is null (curr.get(colIdx - 1) return null but >> String.valueOf( (curr.get(colIdx - 1) ) is not null it is "null". >> >> ArrayList<String> obj = new ArrayList<String>(); >> obj.add(null); >> System.out.println(null == (String)String.valueOf(obj.get(0))); >> >> above Sysout is false. >> >> Fix : >> >> Object colValue = curr.get(colIdx - 1); >> >> T val = cls == String.class ? (String) colValue : (T) colValue; >> >> or return (T) colValue >> >> >> please let me know if you see any issues. thanks >> >> >> >