OpenJDK's Flight-Recorder and Mission Control

November 4, 2019

Flight Recorder is a low overhead profiler and diagnostics events recorder for the Hotspot JVM. Java Mission Control is a software to visualize these events. It has been included for years in the Oracle JDK but used to be a commercial feature. To use it you needed to add -XX:+UnlockCommercialFeatures -XX:+FlightRecorder flags and you were not allowed to use it in production unless you paid a license.

Continue reading →

Mystery Jetty Threads Due To Failed Startup

October 30, 2019

Yesterday I had an app with an embedded Jetty Server which didn’t shut down properly. The main thread exited and the app had called .stop() on the Jetty server. However, the app kept running.

Continue reading →

Create HTTPS Certificates in Java with Bouncy Castle

October 29, 2019

Multiple times I needed to create HTTPS certificates programmatically. For example to create test certificates for HTTPS in development without complicated setup. There is surprisingly little information out there about how to create certificates programmatically in Java. Most guides OpenSSL or another command-line tool. I wanted to avoid to run an external program but wanted to do it programmatically.

Continue reading →

Create HTTPS Certificates in Java: The unsafe way

October 28, 2019

TLDR: I recommend using Bouncy Castle instead of this method. I used this method in the past but I’m using Bouncy Castle now to support Java 11+.

Continue reading →

Secret SQL Weapon: Indexed (or Materialized) Views

October 27, 2019

A few months backs I implemented logic which needs to lookup entries in a big existing table, but the lookup wasn’t easy indexable. Here’s a guide on one approach you can take. I’m using SQL Server for this example. Let’s assume we have a table with guests, something like this

Continue reading →