[ 
https://issues.apache.org/jira/browse/NUTCH-2512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16503033#comment-16503033
 ] 

Sebastian Nagel commented on NUTCH-2512:
----------------------------------------

Hi [~Bl4ck1c3], I've now even was able to compile the recent master (1.x) using 
Java 10 ("installed" on Ubuntu 18.04 as Java 11):
{noformat}
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
% $JAVA_HOME/bin/java -version
openjdk version "10.0.1" 2018-04-17
% ant -d -v clean runtime test
Apache Ant(TM) version 1.10.3 compiled on March 29 2018
...
Detected Java version: 10 in: /usr/lib/jvm/java-11-openjdk-amd64
...
BUILD SUCCESSFUL
{noformat}
When running {{ant test}} the protocol-http(client) unit tests fail with an 
error in Jetty used to answer the test HTTP requests:
{noformat}
2018-06-06 11:03:02,335 ERROR mortbay.log (Slf4jLog.java:warn(87)) - 
/basic-http.jsp
java.lang.ClassCastException: 
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to 
java.base/java.net.UR
LClassLoader
        at 
org.apache.jasper.compiler.JspRuntimeContext.<init>(JspRuntimeContext.java:94)
        at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:100)
        at 
org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)
        at 
org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
2018-06-06 11:03:02,356 WARN  mortbay.log (Slf4jLog.java:warn(76)) - 
/basic-http.jsp: javax.servlet.UnavailableException: 
java.lang.ClassCastException: 
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to 
java.base/java.net.URLClassLoader
2018-06-06 11:03:02,386 INFO  mortbay.log (Slf4jLog.java:info(67)) - Stopped 
[email protected]:47504
...
HTTP Status Code for http://127.0.0.1:47504/basic-http.jsp expected:<200> but 
was:<500>
junit.framework.AssertionFailedError: HTTP Status Code for 
http://127.0.0.1:47504/basic-http.jsp expected:<200> but was:<500>
        at 
org.apache.nutch.protocol.http.TestProtocolHttp.fetchPage(TestProtocolHttp.java:130)
        at 
org.apache.nutch.protocol.http.TestProtocolHttp.testStatusCode(TestProtocolHttp.java:80)
{noformat}

It's a [known problem when upgrading from Java 8 to 
9|https://community.oracle.com/thread/4011800]. Don't know yet how to fix it, 
probably requires an upgrade of the Jetty server used for testing.

I've changed the issue title: this will be fixed for 1.15, not for 1.14. Thanks!

> Nutch does not build under JDK9
> -------------------------------
>
>                 Key: NUTCH-2512
>                 URL: https://issues.apache.org/jira/browse/NUTCH-2512
>             Project: Nutch
>          Issue Type: Bug
>          Components: build, injector
>    Affects Versions: 1.14
>         Environment: Ubuntu 16.04 (All patches up to 02/20/2018)
> Oracle Java 9 - Oracle JDK 9 (Latest as off 02/22/2018)
>            Reporter: Ralf
>            Priority: Major
>             Fix For: 1.15
>
>
> Nutch 1.14 (Source) does not compile properly under JDK 9
> Nutch 1.14 (Binary) does not function under Java 9
>  
> When trying to Nuild Nutch, Ant complains about missing Sonar files then 
> exits with:
> "BUILD FAILED
> /home/nutch/nutch/build.xml:79: Unparseable date: "01/25/1971 2:00 pm" "
>  
> Once having commented out the "offending code" the Build finishes but the 
> resulting Binary fails to function (as well as the Apache Compiled Binary 
> distribution), Both exit with:
>  
> Injecting seed URLs
> /home/nutch/nutch2/bin/nutch inject searchcrawl//crawldb urls/
> Injector: starting at 2018-02-21 02:02:16
> Injector: crawlDb: searchcrawl/crawldb
> Injector: urlDir: urls
> Injector: Converting injected urls to crawl db entries.
> WARNING: An illegal reflective access operation has occurred
> WARNING: Illegal reflective access by 
> org.apache.hadoop.security.authentication.util.KerberosUtil 
> (file:/home/nutch/nutch2/lib/hadoop-auth-2.7.4.jar) to method 
> sun.security.krb5.Config.getInstance()
> WARNING: Please consider reporting this to the maintainers of 
> org.apache.hadoop.security.authentication.util.KerberosUtil
> WARNING: Use --illegal-access=warn to enable warnings of further illegal 
> reflective access operations
> WARNING: All illegal access operations will be denied in a future release
> Injector: java.lang.NullPointerException
>         at 
> org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getBlockIndex(FileInputFormat.java:444)
>         at 
> org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:413)
>         at 
> org.apache.hadoop.mapreduce.lib.input.DelegatingInputFormat.getSplits(DelegatingInputFormat.java:115)
>         at 
> org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:301)
>         at 
> org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:318)
>         at 
> org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:196)
>         at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290)
>         at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287)
>         at java.base/java.security.AccessController.doPrivileged(Native 
> Method)
>         at java.base/javax.security.auth.Subject.doAs(Subject.java:423)
>         at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1746)
>         at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287)
>         at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1308)
>         at org.apache.nutch.crawl.Injector.inject(Injector.java:417)
>         at org.apache.nutch.crawl.Injector.run(Injector.java:563)
>         at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>         at org.apache.nutch.crawl.Injector.main(Injector.java:528)
>  
> Error running:
>   /home/nutch/nutch2/bin/nutch inject searchcrawl//crawldb urls/
> Failed with exit value 255.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to