More fixing, testing, for parser-filtering
diff --git a/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java b/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java
index e4f4adb..a3194c3 100644
--- a/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java
+++ b/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java
@@ -225,15 +225,18 @@
_exposedContext = null;
// Almost! Most likely still have the current token;
// with the sole exception of
+ /*
t = delegate.getCurrentToken();
if (t != JsonToken.FIELD_NAME) {
_currToken = t;
return t;
}
+ */
break;
}
// If not, traverse down the context chain
- ctxt = _exposedContext.findChildOf(ctxt);
+ ctxt = _headContext.findChildOf(ctxt);
+
_exposedContext = ctxt;
if (ctxt == null) { // should never occur
throw _constructError("Unexpected problem: chain of filtered context broken");
@@ -574,10 +577,11 @@
f = f.filterStartObject();
}
_itemFilter = f;
- _headContext = _headContext.createChildObjectContext(f, true);
if (f == TokenFilter.INCLUDE_ALL) {
+ _headContext = _headContext.createChildObjectContext(f, true);
return _nextBuffered();
}
+ _headContext = _headContext.createChildObjectContext(f, false);
continue main_loop;
case ID_END_ARRAY: