Closed
Description
The deprecation of lenient booleans seems to have made parsing of lenient boolean values in documents many times (in the order of 1000x) slower. Here is a relevant stack trace from the hot threads API.
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.match(Pattern.java:4785)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$CharProperty.match(Pattern.java:3777)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Loop.matchInit(Pattern.java:4804)
java.util.regex.Pattern$Prolog.match(Pattern.java:4741)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$Slice.match(Pattern.java:3972)
java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
java.util.regex.Pattern$Curly.match0(Pattern.java:4247)
java.util.regex.Pattern$Curly.match(Pattern.java:4234)
java.util.regex.Pattern$Branch.match(Pattern.java:4604)
java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Branch.match(Pattern.java:4602)
java.util.regex.Pattern$Branch.match(Pattern.java:4602)
java.util.regex.Pattern$Curly.match0(Pattern.java:4279)
java.util.regex.Pattern$Curly.match(Pattern.java:4234)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Curly.match0(Pattern.java:4279)
java.util.regex.Pattern$Curly.match(Pattern.java:4234)
java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3798)
java.util.regex.Pattern$Curly.match0(Pattern.java:4279)
java.util.regex.Pattern$Curly.match(Pattern.java:4234)
java.util.regex.Pattern$Slice.match(Pattern.java:3972)
java.util.regex.Matcher.match(Matcher.java:1270)
java.util.regex.Matcher.matches(Matcher.java:604)
org.elasticsearch.common.logging.DeprecationLogger.extractWarningValueFromWarningHeader(DeprecationLogger.java:230)
org.elasticsearch.common.logging.DeprecationLogger$$Lambda$1875/1145573162.apply(Unknown Source)
java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
org.elasticsearch.common.util.concurrent.ThreadContext$ThreadContextStruct.putResponse(ThreadContext.java:421)
org.elasticsearch.common.util.concurrent.ThreadContext$ThreadContextStruct.access$1100(ThreadContext.java:337)
org.elasticsearch.common.util.concurrent.ThreadContext.addResponseHeader(ThreadContext.java:280)
org.elasticsearch.common.logging.DeprecationLogger.deprecated(DeprecationLogger.java:254)
org.elasticsearch.common.logging.DeprecationLogger.deprecated(DeprecationLogger.java:124)
org.elasticsearch.common.xcontent.support.AbstractXContentParser.booleanValue(AbstractXContentParser.java:115)
org.elasticsearch.index.mapper.BooleanFieldMapper.parseCreateField(BooleanFieldMapper.java:247)
org.elasticsearch.index.mapper.FieldMapper.parse(FieldMapper.java:287)
It is probably fine that lenient booleans are a bit slower to index, but the difference here is too much?