I think it will get corrected if you give
if(value != null && !value.equalsIgnoreCase("")) {
since it was OR it will check for not null (!= null) and will enter the loop once is satisfied even if it is empty
string ("") since it will not check for the second expression if it gets a true for the first expression. Also to stress a point it will be good to use constants first to avoid any null pointer exception in equalsIgnoreCase() like
!("".equalsIgnoreCase(value))