> (Its confusing that when the photo has been removed getCurrentPhoto() returns an empty array.)
That is confusing indeed, and it's the source of the problem. I'll make it not set the array member instead when there is no photo.