@Test
  public void testLocationExtraction() throws IOException {
    // {
    //    "index" : "test",
    //    "source" : {
    //         value : "something"
    //    }
    // }
    FastByteArrayOutputStream os = new FastByteArrayOutputStream();
    JsonGenerator gen = new JsonFactory().createJsonGenerator(os, JsonEncoding.UTF8);
    gen.writeStartObject();

    gen.writeStringField("index", "test");

    gen.writeFieldName("source");
    gen.writeStartObject();
    gen.writeStringField("value", "something");
    gen.writeEndObject();

    gen.writeEndObject();

    gen.close();

    byte[] data = os.copiedByteArray();
    JsonParser parser = new JsonFactory().createJsonParser(data);

    assertThat(parser.nextToken(), equalTo(JsonToken.START_OBJECT));
    assertThat(parser.nextToken(), equalTo(JsonToken.FIELD_NAME)); // "index"
    assertThat(parser.nextToken(), equalTo(JsonToken.VALUE_STRING));
    assertThat(parser.nextToken(), equalTo(JsonToken.FIELD_NAME)); // "source"
    //        JsonLocation location1 = parser.getCurrentLocation();
    //        parser.skipChildren();
    //        JsonLocation location2 = parser.getCurrentLocation();
    //
    //        byte[] sourceData = new byte[(int) (location2.getByteOffset() -
    // location1.getByteOffset())];
    //        System.arraycopy(data, (int) location1.getByteOffset(), sourceData, 0,
    // sourceData.length);
    //
    //        JsonParser sourceParser = new JsonFactory().createJsonParser(new
    // FastByteArrayInputStream(sourceData));
    //        assertThat(sourceParser.nextToken(), equalTo(JsonToken.START_OBJECT));
    //        assertThat(sourceParser.nextToken(), equalTo(JsonToken.FIELD_NAME)); // "value"
    //        assertThat(sourceParser.nextToken(), equalTo(JsonToken.VALUE_STRING));
    //        assertThat(sourceParser.nextToken(), equalTo(JsonToken.END_OBJECT));
  }