Android / Java synchronized behavior

I’m experiencing something that I don’t understand.
I have a method that is synchronized:

    protected synchronized void load()
    {
      try
      {
          Thread.sleep(5000);
      } catch (InterruptedException e)
      {
          e.printStackTrace();
      }
    }

I’m calling this method from different threads.
If another thread called this method, the next thread calling it should be blocked until the (class)lock is released from the first thread, right ?

But the extremely weird behavior is the following.

a) Making this method synchronized causes my main UI thread to freeze. Making it not synchronized doesn’t. (only calling it from 1 thread (not the UI thread))

b) If the method is synchronized and I debug (still only calling it from 1 thread), it doesn’t freeze. Breakpoint triggers, app UI keeps being smooth even while breakpoint is on.

I cannot explain b) at all. Does anyone have an idea?

Thanks!
Cheers