@Test
  public void testBugInPut() throws Exception {
    client1.invoke(new CacheSerializableRunnable("putFromClient1") {

      @Override
      public void run2() throws CacheException {
        Region region = cache.getRegion(SEPARATOR + REGION_NAME);
        assertNotNull(region);
        region.put(KEY1, VALUE1);
        cache.getLogger().info("Put done successfully");

      }
    });
  }
This Dunit test is to verify the bug in put() operation. When the put is invoked on the server
and NotifyBySubscription is false then it follows normal path and then again calls put of region
on which region queue is based. so recurssion is happening.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HABugInPutDUnitTest.java