Android / Java synchronized behavior

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

    protected synchronized void load()
      } catch (InterruptedException e)

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?