Замечания, sp создается всегда даже если не играется можно сделать sp = nul;
а ниже  if(sp != null ) ....