Just to provide a little closure, it appears that this issue is fixed in
Java 14.0.2.

Chris

On Mon, Jul 27, 2020 at 5:38 PM Chris Larsson <clars...@yakabod.com> wrote:

> Nice... That's the code I was just looking at.
>
>
> https://github.com/apache/lucene-solr/blob/branch_8_6/solr/core/src/java/org/apache/solr/update/processor/ParseDateFieldUpdateProcessorFactory.java
>
> From the stack trace:
> Caused by: java.time.format.DateTimeParseException: Text
> '2020-07-27T18:02:42.069Z' could not be parsed: null
> at
> java.base/java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:2021)
> at
> java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1924)
> at
> org.apache.solr.update.processor.ParseDateFieldUpdateProcessorFactory.parseInstant(ParseDateFieldUpdateProcessorFactory.java:233)
> at
> org.apache.solr.update.processor.ParseDateFieldUpdateProcessorFactory.validateFormatter(ParseDateFieldUpdateProcessorFactory.java:217)
> ... 56 more
> Caused by: java.lang.NullPointerException
> at
> java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.prefixLength(DateTimeFormatterBuilder.java:4538)
> at
> java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.add0(DateTimeFormatterBuilder.java:4407)
>
>
> It seems to like the DateTimeFormatter.parse fails after being called by
> line 233 in ParseDateFieldUpdateProcessorFactory.java:233.  But if
> I understand, which may be a stretch, it seems like the formatter itself is
> created earlier in the code at line 189.  I guess I was concerned that the
> formatter creation was the problem since the fix seems to be to impose a
> locale using java.locale.providers=JRE,SPI.  If I understand this
> https://www.oracle.com/java/technologies/javase/jdk14-suported-locales.html#providers
>  using
> JRE  =  COMPAT  and COMPAT says "Represents the locale sensitive services
> that are compatible with the prior JDK releases up to JDK 8."  Is it
> possible that the formatter being created is not compatible with Java 14
> and that's why setting the locale back to 8 makes it work?
>
> Again I thank you for your responses.
>
> C
>
> On Mon, Jul 27, 2020 at 5:13 PM Erick Erickson <erickerick...@gmail.com>
> wrote:
>
>> I just remembered the issue and relayed the JIRA ;).
>>
>> As to why I suspect the Java issue, if this was a core Solr issue I’d
>> expect it to be a show stopper,
>> Solr isn’t much good if you can’t create cores. Of course weirder things
>> have happened. Plus,
>> the date is fine: "2020-07-27T18:02:42.069Z"
>>
>> If you have the bandwidth, I’d log all the inputs in
>> ParseDateFieldUpdateProcessor.validateFormatter,
>> which looks at a glance to be where the exception is caught. The code
>> looks like this:
>>
>> public static void validateFormatter(DateTimeFormatter formatter) {
>>   // check it's valid via round-trip
>>   try {
>>     parseInstant(formatter, formatter.format(Instant.now()), new
>> ParsePosition(0));
>>   } catch (Exception e) {
>>     throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
>>         "Bad or unsupported pattern: " + formatter.toFormat().toString(),
>> e);
>>   }
>> }
>>
>> I suspect the message is a bit misleading and the formatter in that call
>> is null or some such. Why I
>> haven’t a clue.
>>
>> Best,
>> Erick
>>
>>
>> > On Jul 27, 2020, at 3:54 PM, Chris Larsson <clars...@yakabod.com>
>> wrote:
>> >
>> > Thank you Erick.  I appreciate you taking the time to respond.  I have
>> seen
>> > the post you shared and I know the work around does solve the issue.  I
>> am
>> > more concerned about why Solr doesn't work with the default settings.
>> I am
>> > also not convinced it is solely a Java issue, but I would like to
>> > investigate that further so I ask what makes you say it is a Java issue
>> as
>> > opposed to being a Solr issue?  I see David's comment, but he seems to
>> be
>> > approaching the solution as an end user as opposed to a Solr developer.
>> >
>> >
>> > On Mon, Jul 27, 2020 at 3:43 PM Erick Erickson <erickerick...@gmail.com
>> >
>> > wrote:
>> >
>> >> Take a look at:
>> >>
>> >> https://issues.apache.org/jira/browse/SOLR-13606
>> >>
>> >> It’s actually a weirdness with Java. In that JIRA David Smiley
>> >> suggest a way to deal with it, but I confess I haven’t a clue
>> >> about the nuances there.
>> >>
>> >> Best,
>> >> Erick
>> >>
>> >>
>> >>
>> >>> On Jul 27, 2020, at 3:12 PM, Chris Larsson <clars...@yakabod.com>
>> wrote:
>> >>>
>> >>> Ran into an issue attempting to create a core on a new install of Solr
>> >>> 8.6.  The system is CentOS 8 fully updated and using Java OpenJDK
>> version
>> >>> 14.0.1.
>> >>>
>> >>> # java -version
>> >>> openjdk version "14.0.1" 2020-04-14
>> >>> OpenJDK Runtime Environment 20.3 (build 14.0.1+7)
>> >>> OpenJDK 64-Bit Server VM 20.3 (build 14.0.1+7, mixed mode, sharing)
>> >>>
>> >>> Attempting to create a core from the command line results in the
>> >> following
>> >>> messages:
>> >>>
>> >>> # cd /opt/solr;  sudo -u solr bin/solr create_core -c foocore
>> >>> WARNING: Using _default configset with data driven schema
>> functionality.
>> >>> NOT RECOMMENDED for production use.
>> >>>        To turn off: bin/solr config -c foocore -p 8983 -action
>> >>> set-user-property -property update.autoCreateFields -value false
>> >>>
>> >>> ERROR: Error CREATEing SolrCore 'foocore': Unable to create core
>> >> [foocore]
>> >>> Caused by: null
>> >>>
>> >>>
>> >>> The Solr admin site at http://localhost:8983/solr/#/ reports:
>> >>>
>> >>> SolrCore Initialization Failures
>> >>> foocore:
>> >>>
>> >>
>> org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:
>> >>> Bad or unsupported pattern:
>> >>> java.time.format.DateTimeFormatter$ClassicFormat@1c85900d
>> >>>
>> >>> Additional output while the server was running in the foreground:
>> >>>
>> >>> 2020-07-27 18:02:42.104 ERROR (qtp997850486-21) [   ]
>> >>> o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: Error
>> >>> CREATEing SolrCore 'foocore': Unable to create core [foocore] Caused
>> by:
>> >>> null
>> >>> at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1312)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.handler.admin.CoreAdminOperation.lambda$static$0(CoreAdminOperation.java:95)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.handler.admin.CoreAdminOperation.execute(CoreAdminOperation.java:367)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.handler.admin.CoreAdminHandler$CallInfo.call(CoreAdminHandler.java:397)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:181)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:214)
>> >>> at
>> >> org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:854)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:818)
>> >>> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:566)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:415)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:345)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>> >>> at
>> >>
>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>> >>> at org.eclipse.jetty.server.Server.handle(Server.java:500)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
>> >>> at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
>> >>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
>> >>> at
>> >>> org.eclipse.jetty.io
>> >> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>> >>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>> >>> at org.eclipse.jetty.io
>> .ChannelEndPoint$2.run(ChannelEndPoint.java:117)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
>> >>> at
>> >>>
>> >>
>> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
>> >>> at java.base/java.lang.Thread.run(Thread.java:832)
>> >>> Caused by: org.apache.solr.common.SolrException: Unable to create core
>> >>> [foocore]
>> >>> at
>> >>>
>> >>
>> org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1408)
>> >>> at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1273)
>> >>> ... 47 more
>> >>> Caused by: org.apache.solr.common.SolrException: Bad or unsupported
>> >>> pattern: java.time.format.DateTimeFormatter$ClassicFormat@1c85900d
>> >>> at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1071)
>> >>> at org.apache.solr.core.SolrCore.<init>(SolrCore.java:906)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1387)
>> >>> ... 48 more
>> >>> Caused by: org.apache.solr.common.SolrException: Bad or unsupported
>> >>> pattern: java.time.format.DateTimeFormatter$ClassicFormat@1c85900d
>> >>> at
>> >>>
>> >>
>> org.apache.solr.update.processor.ParseDateFieldUpdateProcessorFactory.validateFormatter(ParseDateFieldUpdateProcessorFactory.java:220)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.update.processor.ParseDateFieldUpdateProcessorFactory.init(ParseDateFieldUpdateProcessorFactory.java:192)
>> >>> at org.apache.solr.core.PluginBag.initInstance(PluginBag.java:107)
>> >>> at org.apache.solr.core.PluginBag.createPlugin(PluginBag.java:155)
>> >>> at org.apache.solr.core.PluginBag.init(PluginBag.java:300)
>> >>> at org.apache.solr.core.PluginBag.init(PluginBag.java:289)
>> >>> at org.apache.solr.core.SolrCore.<init>(SolrCore.java:995)
>> >>> ... 50 more
>> >>> Caused by: java.time.format.DateTimeParseException: Text
>> >>> '2020-07-27T18:02:42.069Z' could not be parsed: null
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:2021)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1924)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.update.processor.ParseDateFieldUpdateProcessorFactory.parseInstant(ParseDateFieldUpdateProcessorFactory.java:233)
>> >>> at
>> >>>
>> >>
>> org.apache.solr.update.processor.ParseDateFieldUpdateProcessorFactory.validateFormatter(ParseDateFieldUpdateProcessorFactory.java:217)
>> >>> ... 56 more
>> >>> Caused by: java.lang.NullPointerException
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.prefixLength(DateTimeFormatterBuilder.java:4538)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.add0(DateTimeFormatterBuilder.java:4407)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.add(DateTimeFormatterBuilder.java:4402)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$ZoneTextPrinterParser.getTree(DateTimeFormatterBuilder.java:4149)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$ZoneIdPrinterParser.parse(DateTimeFormatterBuilder.java:4260)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.parse(DateTimeFormatterBuilder.java:2362)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.parse(DateTimeFormatterBuilder.java:2362)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.parse(DateTimeFormatterBuilder.java:2362)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.parse(DateTimeFormatterBuilder.java:2372)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatter.parseUnresolved0(DateTimeFormatter.java:2111)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2040)
>> >>> at
>> >>>
>> >>
>> java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1920)
>> >>> ... 58 more
>> >>>
>> >>> 2020-07-27 18:02:42.104 INFO  (qtp997850486-21) [   ]
>> >> o.a.s.s.HttpSolrCall
>> >>> [admin] webapp=null path=/admin/cores
>> >>> params={name=foocore&action=CREATE&instanceDir=foocore&wt=json}
>> >> status=400
>> >>> QTime=1318
>> >>> 2020-07-27 18:02:53.943 INFO  (qtp997850486-22) [   ]
>> >> o.a.s.s.HttpSolrCall
>> >>> [admin] webapp=null path=/admin/cores
>> >>> params={indexInfo=false&wt=json&_=1595872899383} status=0 QTime=0
>> >>> 2020-07-27 18:02:53.954 INFO  (qtp997850486-21) [   ]
>> >> o.a.s.s.HttpSolrCall
>> >>> [admin] webapp=null path=/admin/info/system
>> >>> params={wt=json&_=1595872899384} status=0 QTime=6
>> >>> 2020-07-27 18:02:54.022 INFO  (qtp997850486-19) [   ]
>> >> o.a.s.s.HttpSolrCall
>> >>> [admin] webapp=null path=/admin/info/system
>> >>> params={wt=json&_=1595872899384} status=0 QTime=6
>> >>>
>> >>>
>> >>> Chris
>> >>
>> >>
>>
>>

Reply via email to