@Test
  public void test024CreateNullValue() throws CacheException {
    final String name = getName();

    final Object createCallbackArg = "CREATE CALLBACK ARG";

    vm0.invoke("Create Cache Server", () -> {
      RegionFactory<Object, Object> factory = getBridgeServerRegionAttributes(null, null);
      createRegion(name, factory);
      startBridgeServer(0);
    });

    final int port = vm0.invoke(ConnectionPoolDUnitTest::getCacheServerPort);
    final String host0 = NetworkUtils.getServerHostName();

    Stream.of(vm1, vm2).forEach(vm -> vm.invoke("Create region", () -> {
      getLonerSystem();
      getCache();
      RegionFactory<Object, Object> factory = getCache().createRegionFactory();
      factory.setScope(Scope.LOCAL);
      factory.setConcurrencyChecksEnabled(false);

      configureConnectionPool(factory, host0, new int[] {port}, true, -1, -1, null);
      createRegion(name, factory);
    }));

    vm2.invoke("Create nulls", () -> {
      Region<Object, Object> region = getRootRegion().getSubregion(name);
      for (int i = 0; i < 10; i++) {
        region.create(i, null, createCallbackArg);
      }
    });

    vm2.invoke("Verify invalidates", () -> {
      Region<Object, Object> region = getRootRegion().getSubregion(name);
      for (int i = 0; i < 10; i++) {
        Region.Entry entry = region.getEntry(i);
        await().until(() -> entry != null);
        await().until(() -> entry.getValue() == null);
      }
    });

    vm1.invoke("Attempt to create values", () -> {
      Region<Object, Object> region = getRootRegion().getSubregion(name);
      for (int i = 0; i < 10; i++) {
        region.create(i, "new" + i);
      }
    });

    vm2.invoke("Verify invalidates", () -> {
      Region<Object, Object> region = getRootRegion().getSubregion(name);
      for (int i = 0; i < 10; i++) {
        Region.Entry entry = region.getEntry(i);
        await().until(() -> entry != null);
        await().until(() -> entry.getValue() == null);
      }
    });

    Stream.of(vm1, vm2).forEach(vm -> vm.invoke("Close Pool", () -> {
      Region<Object, Object> region = getRootRegion().getSubregion(name);
      region.localDestroyRegion();
    }));
  }
Tests that invoking {@link Region#create} with a <code>null</code> value does the right thing
with the {@link Pool}.

@since GemFire 3.5
geode-core/src/distributedTest/java/org/apache/geode/cache/ConnectionPoolDUnitTest.java