Have you looked at the documentation for the append() method? It says exactly what should happen here. Not all methods throw NullPointerException if you pass them a null.
Note that this is more detail than you need for
SCJP. The exact behavior of a specific method like append() isn't that important. Now if s1 had been null, then that would throw a NullPointerException, and that's a general enough rule that are expected to know something like that for SCJP.