RFR: 8245095: Implementation of JEP 408: Simple Web Server
github.com+741251+turbanoff at openjdk.java.net
Tue Sep 14 13:51:05 UTC 2021
On Tue, 14 Sep 2021 08:52:37 GMT, Julia Boes <jboes at openjdk.org> wrote:
> This change implements a simple web server that can be run on the command-line with `java -m jdk.httpserver`.
> This is facilitated by adding an entry point for the `jdk.httpserver` module, an implementation class whose main method is run when the above command is executed. This is the first such module entry point in the JDK.
> The server is a minimal HTTP server that serves the static files of a given directory, similar to existing alternatives on other platforms and convenient for testing, development, and debugging.
> Additionally, a small API is introduced for programmatic creation and customization.
> Testing: tier1-3.
src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java line 288:
> 286: }
> 288: private static final Headers EMPTY = new UnmodifiableHeaders(new Headers());
IDEA warns here:
>Referencing subclass UnmodifiableHeaders from superclass Headers initializer might lead to class loading deadlock
>Such references can cause JVM-level deadlocks in multithreaded environment, when one thread tries to load the superclass and another thread tries to load the subclass at the same time.
More information about the core-libs-dev