question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

DSpace (5/6?) handle server doesn't start after JDK 8 update

See original GitHub issue

Describe the bug After updating to

openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)

or

openjdk version "1.8.0_352"
OpenJDK Runtime Environment Corretto-8.352.08.1 (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM Corretto-8.352.08.1 (build 25.352-b08, mixed mode)

The handle-server script no longer starts, probably due to JDK-8287132 - Retire Runtime.runFinalizersOnExit so that it always throws UOE

To Reproduce Steps to reproduce the behavior:

  1. Update the system packaged JDK 8 (Coretto and RHEL-packaged openjdk confirmed)
  2. Try to start handle-server script
  3. (Startup error message)
2022/10/26 03:04:46 CEST" 25 Started new run.
java.lang.UnsupportedOperationException
    at java.lang.Runtime.runFinalizersOnExit(Runtime.java:287)
    at java.lang.System.runFinalizersOnExit(System.java:1059)
    at net.handle.server.Main.initialize(Main.java:124)
    at net.handle.server.Main.main(Main.java:75)
Shutting down...

The reported errors in the mailing lists looks like DSpace 5 installations, but the handle server dependency looks the same in the DSpace 6 pom.xml, so probably also applies there?

Expected behavior

Normal startup of handle-server

KNOWN WORKAROUNDS Either of these options will work, but neither is ideal:

  • Downgrade OpenJDK 8 to a version prior to 1.8.0.352 (which is where this change was made)
  • Use OpenJDK 7 (which is no longer supported)

Related work https://bugs.openjdk.org/browse/JDK-8287132 https://groups.google.com/g/dspace-community/c/B-865GtF93A

Issue Analytics

  • State:open
  • Created a year ago
  • Comments:16 (7 by maintainers)

github_iconTop GitHub Comments

2reactions
ebalnavescommented, Nov 14, 2022

The compiled handle.jar file is available at https://release.prosentient.com.au/handle62/handle.jar.gz It can be used to replace the handle-6.2.jar reference in the dspace 6.4 build or copied directly to the target directly to the target directories - particularly of course lib

./lib/handle-6.2.jar ./webapps/jspui/WEB-INF/lib/handle-6.2.jar ./webapps/xmlui/WEB-INF/lib/handle-6.2.jar ./webapps/swordv2/WEB-INF/lib/handle-6.2.jar ./webapps/rdf/WEB-INF/lib/handle-6.2.jar ./webapps/rest/WEB-INF/lib/handle-6.2.jar ./webapps/sword/WEB-INF/lib/handle-6.2.jar ./webapps/oai/WEB-INF/lib/handle-6.2.jar

It was an interesting archeological exercise obtaining the handle v6 source. handle.net do not maintain web references to archived distributions. web.archive.org was helpful in this respect

Edmund

1reaction
tdonohuecommented, Nov 2, 2022

@OyvindLGjesdal : Thanks for your feedback. After digging around a bit, I realized that there was some earlier work also needed to support migrating to Handle Server v9 in #2394 … and those changes involved minor updates to the make-handle-config script. Maybe that’s the missing piece here? I’d recommend trying to make those updates to make-handle-config and trying again…hopefully it’ll work this time.

In terms of testing the handle-server works, you should be able to minimally start the handle-server with some “fake/test” settings, and verify that it starts up on the configured ports (2641 and 8000 by default, IIIRC).

In any case, if you can get dspace make-handle-config to no longer throw errors, and start-handle-server to spin everything up on the expected ports, then that should mean that everything is “working”. At that point, if you wanted to create a PR, then I’m sure we could find some testers to help verify it works for them.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Fix broken handle server for Java 1.8 (DSpace 6.x version ...
Run the make-handle-config script and insert dummy settings · Start the handle-server script · review the output of handle-server/logs error and access files....
Read more >
Known Issues for JDK 8 - Oracle
The workaround is to uninstall the existing 32-bit JRE and install it again. The "Enable Java Access Bridge" check box will appear after...
Read more >
Installing DSpace - Confluence Mobile - LYRASIS Wiki
You can install and run DSpace on most modern PC, laptop or server hardware. ... We recommend installing the Java 8 update 20...
Read more >
DSpace 6.x Documentation
Fix update-handle-prefix script to no longer update handle ... a DSpace site must also run a 'Handle server' that can accept and resolve....
Read more >
Chapter 3. DSpace System Documentation: Installation
Note that DSpace will need to run as the same user as Tomcat, so you might want to install and run Tomcat as...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found