title: Java MultiThreading - One thread enters critical section twice before other thread
body: <p>I have a critical code, wrapped inside <code>synchronized (this) {}</code>.</p>
  
  <p>In the logs I see thread #1 enters critical section, then thread #2 reaches there, and waits, then, Thread #1 leaves critical section, and enters it again (2ms later) ! even before the other thread entered.</p>
  
  <p>How is it possible ?
  didn't thread #2 should have entered the critical section ?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>adding part of my class...</p>
  
  <pre><code>@Service
  public class RequestService {
  
      Logger logger = LoggerFactory.getLogger(RequestService.class);
  
      public HttpResponse executeRequest(HttpClient httpClient, HttpGet request) throws IOException, InterruptedException {
          logger.info("About to enter critical code");
          synchronized (this) {
              logger.info("executing http request");
              HttpResponse response = httpClient.execute(request);
              logger.info("got http response");
              return response;
          }
      }
  }
  </code></pre>