it compiled without the annotation  do you want me to add it  just for safety of mind i m pretty happy to have it private  because it means you cannot use the constructor in a subclass or without reflection hacks  i should add an explicit test  though  i did not check the libcore tests  yet  for indirect enforcement while this is exercised in run tests  a miss is bad  because at the time of throwing this for repeat initialization error  the runtime would abort without it  i would think a reflection test would be good enough  and that would allow it to stay private 