@Ignore
  @Test
  public void testFailedIndexUpdateOnJTACommitForPut() throws Exception {
    Person.THROW_ON_INDEX = true;
    AttributesFactory af = new AttributesFactory();
    af.setDataPolicy(DataPolicy.REPLICATE);
    Region region = cache.createRegion("sample", af.create());
    qs.createIndex("foo", IndexType.FUNCTIONAL, "index", SEPARATOR + "sample");
    Context ctx = cache.getJNDIContext();
    UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
    Integer x = 0;
    utx.begin();
    region.create(x, new Person("xyz", 45));
    try {
      utx.commit();
      fail("Commit should have thrown an exception because the index update threw");
    } catch (Exception e) {
      // this is desired
    }
  }
verify that queries on indexes work with transaction
geode-core/src/integrationTest/java/org/apache/geode/cache/query/transaction/QueryAndJtaJUnitTest.java