wasNull is false all the time for string types. correct ?

On 3 November 2016 at 20:39, Andrey Mashenkov <[email protected]>
wrote:

> 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 <[email protected]> wrote:
>
>> String.valuOf(null) return "null" string by contract.
>>
>> On Thu, Nov 3, 2016 at 5:33 PM, Anil <[email protected]> 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
>>>
>>>
>>>
>>
>

Reply via email to