<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://inside.java/feed.xml" rel="self" type="application/atom+xml" /><link href="https://inside.java/" rel="alternate" type="text/html" /><updated>2026-05-24T08:52:37+00:00</updated><id>https://inside.java/feed.xml</id><title type="html">insidejava</title><subtitle>News and views from members of the Java team at Oracle</subtitle><entry><title type="html">Tutorial: Accessibility in JavaFX</title><link href="https://inside.java/2026/05/24/javafx-accesibility-tutorials/" rel="alternate" type="text/html" title="Tutorial: Accessibility in JavaFX" /><published>2026-05-24T00:00:00+00:00</published><updated>2026-05-24T00:00:00+00:00</updated><id>https://inside.java/2026/05/24/javafx-accesibility-tutorials</id><content type="html" xml:base="https://inside.java/2026/05/24/javafx-accesibility-tutorials/"><![CDATA[<p><img class="webfeedsFeaturedVisual" style="display: none;" src="/images/thumbnail/code.jpg" /></p>]]></content><author><name>[&quot;Ana-MariaMihalceanu&quot;]</name></author><category term="Client" /><summary type="html"><![CDATA[These tutorials describe how to build accessible JavaFX applications.]]></summary></entry><entry><title type="html">Java AOT in Production at Netflix</title><link href="https://inside.java/2026/05/23/java-aot-in-production-at-netflix/" rel="alternate" type="text/html" title="Java AOT in Production at Netflix" /><published>2026-05-23T00:00:00+00:00</published><updated>2026-05-23T00:00:00+00:00</updated><id>https://inside.java/2026/05/23/Java-AOT-in-Production-at-Netflix</id><content type="html" xml:base="https://inside.java/2026/05/23/java-aot-in-production-at-netflix/"><![CDATA[<div class="youtube-embed">
    <iframe src="https://www.youtube.com/embed/4kEh8hxAP4U" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
</div>

<p><em>“Draw the Rest of the Owl: Leyden in Production and the Infrastructure Needed to Get It There.”</em></p>

<p><em>Learn how Netflix used Project Leyden to improve startup time of critical services and the software and SDLC they built to make that happen.</em></p>

<p><em>Presented by Martin Chalupa (Netflix) and Ian Brown (Netflix) at JavaOne 2026 (CA, March 2026).</em></p>

<p><em>Make sure to check the <a href="https://www.youtube.com/playlist?list=PLX8CzqL3ArzUMVSzm-z_-if8BIB55EGl4">JavaOne 2026 playlist</a>.</em></p>]]></content><author><name></name></author><category term="Leyden" /><category term="Performance" /><summary type="html"><![CDATA["Draw the Rest of the Owl: Leyden in Production and the Infrastructure Needed to Get It There." Learn how Netflix used Project Leyden to improve startup time of critical services and the software and SDLC they built to make that happen.]]></summary></entry><entry><title type="html">Newsletter: JDK 27 Approaches Rampdown | Final Field Mutation Warnings Heads-up</title><link href="https://inside.java/2026/05/22/quality-heads-up/" rel="alternate" type="text/html" title="Newsletter: JDK 27 Approaches Rampdown | Final Field Mutation Warnings Heads-up" /><published>2026-05-22T00:00:00+00:00</published><updated>2026-05-22T00:00:00+00:00</updated><id>https://inside.java/2026/05/22/Quality-Heads-Up</id><content type="html" xml:base="https://inside.java/2026/05/22/quality-heads-up/"><![CDATA[<p>This Heads-Up is part of the regular communication sent to the projects involved; it announces that JDK 27 approaches rampdown and final field mutation warnings heads-up.</p>

<p><img class="webfeedsFeaturedVisual" style="display: none;" src="/images/thumbnail/code.jpg?280654202" /></p>]]></content><author><name>[&quot;DavidDelabassee&quot;]</name></author><category term="JDK 27" /><summary type="html"><![CDATA[This Heads-Up is part of the regular communication sent to the projects involved; it announces that JDK 27 approaches rampdown and final field mutation warnings heads-up.]]></summary></entry><entry><title type="html">On Default Values for Primitive-Like Classes</title><link href="https://inside.java/2026/05/21/values-primitive-classes/" rel="alternate" type="text/html" title="On Default Values for Primitive-Like Classes" /><published>2026-05-21T00:00:00+00:00</published><updated>2026-05-21T00:00:00+00:00</updated><id>https://inside.java/2026/05/21/values-primitive-classes</id><content type="html" xml:base="https://inside.java/2026/05/21/values-primitive-classes/"><![CDATA[<p><img class="webfeedsFeaturedVisual" style="display: none;" src="/images/thumbnail/DukeReadingDocuments.png" /></p>]]></content><author><name>[&quot;JohnRose&quot;]</name></author><category term="Valhalla" /><summary type="html"><![CDATA[Primitive defaults are chosen so that they are (probably) represented by memory set to one or more bytes with all bits set to zero; we call these all-zero-bits values. We want “primitive-like” classes to have similar optimization opportunities, even if some classes will choose to nominate defaults values that are not all-zero-bits values. This document discusses possible semantics for such default values, as well as examines their possible quality of implementation, as supported by the JVM and runtime. It will look at cross-cutting interactions with class definition, classfile format, class initialization, bytecode verification, instance construction, and array creation (with some notes on frozen arrays).]]></summary></entry><entry><title type="html">Quality Outreach Heads-up - JDK 27: Numeric Fields in JSON Thread Dumps</title><link href="https://inside.java/2026/05/20/quality-heads-up/" rel="alternate" type="text/html" title="Quality Outreach Heads-up - JDK 27: Numeric Fields in JSON Thread Dumps" /><published>2026-05-20T00:00:00+00:00</published><updated>2026-05-20T00:00:00+00:00</updated><id>https://inside.java/2026/05/20/Quality-Heads-Up</id><content type="html" xml:base="https://inside.java/2026/05/20/quality-heads-up/"><![CDATA[<p><img class="webfeedsFeaturedVisual" style="display: none;" src="/images/thumbnail/code.jpg" /></p>

<p><em>The <a href="https://wiki.openjdk.java.net/display/quality/Quality+Outreach">OpenJDK Quality Group</a> is promoting the testing of FOSS projects with OpenJDK builds as a way to improve the overall quality of the release. This heads-up is part of a <a href="https://mail.openjdk.org/archives/list/quality-discuss@openjdk.org/thread/REAJQSW4DJ6BZNEKLGU56HB2757I26HM/">Quality Outreach</a> update sent to the projects involved. To learn more about the program and how to join, please check the <a href="https://wiki.openjdk.java.net/display/quality/Quality+Outreach">Quality Outreach wiki page</a>.</em></p>

<h2 id="numeric-values-usage-in-json-thread-dumps">Numeric Values Usage in JSON Thread Dumps</h2>

<p>JSON thread dumps generated by <code class="language-plaintext highlighter-rouge">com.sun.management.HotSpotDiagnosticMXBean.dumpThreads</code> and the<code class="language-plaintext highlighter-rouge"> jcmd Thread.dump_to_file</code> command now write thread identifiers, thread counts, and the process identifier as JSON numbers instead of strings.</p>

<p>For example, when using a command like <code class="language-plaintext highlighter-rouge">jcmd &lt;PID&gt; Thread.dump_to_file -format=json threads.json</code> to write thread stack traces to a file in JSON format, the output would look like in the snippet below.</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"threadDump"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"formatVersion"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w">
    </span><span class="nl">"processId"</span><span class="p">:</span><span class="w"> </span><span class="mi">36340</span><span class="p">,</span><span class="w">
    </span><span class="nl">"time"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2026-05-15T12:43:21.601545Z"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"runtimeVersion"</span><span class="p">:</span><span class="w"> </span><span class="s2">"27-ea+22-2010"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"threadContainers"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
      </span><span class="p">{</span><span class="w">
        </span><span class="nl">"container"</span><span class="p">:</span><span class="w"> </span><span class="s2">"&lt;root&gt;"</span><span class="p">,</span><span class="w">
        </span><span class="nl">"parent"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
        </span><span class="nl">"owner"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w">
        </span><span class="nl">"threads"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
          </span><span class="p">{</span><span class="w">
            </span><span class="nl">"tid"</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w">
            </span><span class="nl">"time"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2026-05-15T12:43:21.604046Z"</span><span class="p">,</span><span class="w">
            </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"main"</span><span class="p">,</span><span class="w">
            </span><span class="nl">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"TIMED_WAITING"</span><span class="p">,</span><span class="w">
            </span><span class="nl">"stack"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
              </span><span class="s2">"java.base</span><span class="se">\/</span><span class="s2">java.lang.Thread.sleepNanos0(Native Method)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"java.base</span><span class="se">\/</span><span class="s2">java.lang.Thread.sleepNanos(Thread.java:562)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"java.base</span><span class="se">\/</span><span class="s2">java.lang.Thread.sleep(Thread.java:593)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"HelloThreads.main(HelloThreads.java:4)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"java.base</span><span class="se">\/</span><span class="s2">jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"java.base</span><span class="se">\/</span><span class="s2">java.lang.reflect.Method.invoke(Method.java:583)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"jdk.compiler</span><span class="se">\/</span><span class="s2">com.sun.tools.javac.launcher.SourceLauncher.execute(SourceLauncher.java:260)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"jdk.compiler</span><span class="se">\/</span><span class="s2">com.sun.tools.javac.launcher.SourceLauncher.run(SourceLauncher.java:138)"</span><span class="p">,</span><span class="w">
              </span><span class="s2">"jdk.compiler</span><span class="se">\/</span><span class="s2">com.sun.tools.javac.launcher.SourceLauncher.main(SourceLauncher.java:76)"</span><span class="w">
            </span><span class="p">]</span><span class="w">
          </span><span class="p">}</span><span class="w">
        </span><span class="p">],</span><span class="w">
        </span><span class="nl">"threadCount"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="w">
      </span><span class="p">}</span><span class="w">
      </span><span class="err">....</span><span class="w">
    </span><span class="p">]</span><span class="w">
  </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p>This change of format also introduces versioning through <code class="language-plaintext highlighter-rouge">"formatVersion": 2</code> member, while metadata fields such as <code class="language-plaintext highlighter-rouge">processId</code>, <code class="language-plaintext highlighter-rouge">tid</code>, and <code class="language-plaintext highlighter-rouge">threadCount</code> are serialized as JSON numeric values rather than JSON string types.</p>

<h2 id="call-to-action">Call to Action</h2>

<p>We encourage you to download the <a href="https://jdk.java.net/27/">JDK 27 early-access builds</a> and test any tools, scripts, tests, or applications that parse JSON thread dumps.
If needed, update them to handle numeric values for thread identifiers, thread counts, and the process identifier, and use the new formatVersion field to detect and handle future thread dump format changes.</p>

<center>~</center>]]></content><author><name>[&quot;Ana-MariaMihalceanu&quot;]</name></author><category term="JDK 27" /><category term="Serviceability" /><summary type="html"><![CDATA[This Heads-Up is part of the regular communication sent to the projects involved; it covers thatJSON thread dumps now emit thread identifiers, thread counts, and the process identifier as numeric types.]]></summary></entry><entry><title type="html">Java 26: Better Language, Better APIs, Better Runtime</title><link href="https://inside.java/2026/05/19/javaone-better-jdk26/" rel="alternate" type="text/html" title="Java 26: Better Language, Better APIs, Better Runtime" /><published>2026-05-19T00:00:00+00:00</published><updated>2026-05-19T00:00:00+00:00</updated><id>https://inside.java/2026/05/19/JavaOne-Better-JDK26</id><content type="html" xml:base="https://inside.java/2026/05/19/javaone-better-jdk26/"><![CDATA[<div class="youtube-embed">
    <iframe src="https://www.youtube.com/embed/86eK0Or2eIE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
</div>

<p><em>Since JavaOne 2025, JDK 25 was released, the latest version with long-term support. But Java never stands still; it’s already time to ship JDK 26. This talk summarizes the most important changes between Java 21 and 25:</em></p>

<ul>
  <li><em>from unnamed patterns and flexible constructors to module imports</em></li>
  <li><em>from the foreign-function and memory API to stream gatherers and the class-file API</em></li>
  <li><em>from a simpler <code class="language-plaintext highlighter-rouge">main</code> to launching multisource-file programs</em></li>
  <li><em>from Markdown in JavaDoc to quantum-resistant encryption</em></li>
  <li><em>from faster launch times to improved garbage collection</em></li>
</ul>

<p><em>… before taking a closer look at the newest release, including its preview features:</em></p>

<ul>
  <li><em>Primitive patterns and lazy constants</em></li>
  <li><em>Updated structured concurrency</em></li>
  <li><em>PEM encoding and HTTP/3 support</em></li>
  <li><em>New command-line options to enable deep reflection</em></li>
</ul>

<p><em>There are plenty of features in the language, API, and runtime to discuss; whether new, improved, or finalized. Let’s go over them.</em></p>

<p><em>Make sure to check the <a href="https://www.youtube.com/playlist?list=PLX8CzqL3ArzUMVSzm-z_-if8BIB55EGl4">JavaOne 2026 playlist</a>.</em></p>]]></content><author><name>[&quot;NicolaiParlog&quot;]</name></author><category term="JDK 26" /><summary type="html"><![CDATA[Since JavaOne 2025, Java has moved from JDK 25, the latest LTS release, toward JDK 26, with major updates across the language, APIs, runtime, tooling, security, startup performance, and garbage collection. This talk reviews the most important changes from Java 21 through 25, then explores JDK 26 and its preview features, including primitive patterns, lazy constants, structured concurrency, PEM encoding, HTTP/3, and new deep-reflection options.]]></summary></entry><entry><title type="html">Caching for Agentic Java Systems: Internal, Distributed, and Semantic</title><link href="https://inside.java/2026/05/18/javaone-caching-agentic-ai/" rel="alternate" type="text/html" title="Caching for Agentic Java Systems: Internal, Distributed, and Semantic" /><published>2026-05-18T00:00:00+00:00</published><updated>2026-05-18T00:00:00+00:00</updated><id>https://inside.java/2026/05/18/JavaOne-Caching-Agentic-AI</id><content type="html" xml:base="https://inside.java/2026/05/18/javaone-caching-agentic-ai/"><![CDATA[<div class="youtube-embed">
    <iframe src="https://www.youtube.com/embed/YPxMiaXToWs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
</div>

<p><em>Caching is a first-class architectural concern in agentic systems. This talk breaks down how Java applications can layer internal, distributed, and semantic caches. We’ll explore in-process caching with Caffeine for ultra-low-latency access, distributed caching with Redisson and Valkey for shared cache and semantic caching using Vector Similarity Search to reduce latency and cost while scaling LLM access.</em></p>

<p><em>Make sure to check the <a href="https://www.youtube.com/playlist?list=PLX8CzqL3ArzUMVSzm-z_-if8BIB55EGl4">JavaOne 2026 playlist</a>.</em></p>]]></content><author><name></name></author><category term="AI" /><summary type="html"><![CDATA[Caching is a first-class architectural concern in agentic systems. This talk breaks down how Java applications can layer internal, distributed, and semantic caches. We'll explore in-process caching with Caffeine for ultra-low-latency access, distributed caching with Redisson and Valkey for shared cache and semantic caching using Vector Similarity Search to reduce latency and cost while scaling LLM access.]]></summary></entry><entry><title type="html">JEP targeted to JDK 27: 531: Lazy Constants (3rd Preview)</title><link href="https://inside.java/2026/05/17/jep531-target-jdk27/" rel="alternate" type="text/html" title="JEP targeted to JDK 27: 531: Lazy Constants (3rd Preview)" /><published>2026-05-17T00:00:00+00:00</published><updated>2026-05-17T00:00:00+00:00</updated><id>https://inside.java/2026/05/17/JEP531-target-JDK27</id><content type="html" xml:base="https://inside.java/2026/05/17/jep531-target-jdk27/"><![CDATA[<p>The following JEP is targeted to JDK 27: 531: Lazy Constants (Third Preview)</p>

<p><img class="webfeedsFeaturedVisual" style="display: none;" src="/images/thumbnail/jep.jpg?244538402" /></p>]]></content><author><name>[&quot;Per-AkeMinborg&quot;, &quot;MaurizioCimadamore&quot;]</name></author><category term="JDK 27" /><category term="Core Libraries" /><summary type="html"><![CDATA[The following JEP is targeted to JDK 27: 531: Lazy Constants (Third Preview)]]></summary></entry><entry><title type="html">Quality Outreach Heads-up - JDK 27: Post-Quantum Hybrid Key Exchange for TLS 1.3</title><link href="https://inside.java/2026/05/17/quality-heads-up/" rel="alternate" type="text/html" title="Quality Outreach Heads-up - JDK 27: Post-Quantum Hybrid Key Exchange for TLS 1.3" /><published>2026-05-17T00:00:00+00:00</published><updated>2026-05-17T00:00:00+00:00</updated><id>https://inside.java/2026/05/17/Quality-Heads-Up</id><content type="html" xml:base="https://inside.java/2026/05/17/quality-heads-up/"><![CDATA[<p><img class="webfeedsFeaturedVisual" style="display: none;" src="/images/thumbnail/code.jpg" /></p>

<p><i>The <a href="https://wiki.openjdk.java.net/display/quality/Quality+Outreach">OpenJDK Quality Group</a> is promoting the testing of FOSS projects with OpenJDK builds as a way to improve the overall quality of the release. This heads-up is part of a <a href="https://mail.openjdk.org/archives/list/quality-discuss@openjdk.org/thread/REAJQSW4DJ6BZNEKLGU56HB2757I26HM/">Quality Outreach</a> update sent to the projects involved. To learn more about the program, and how-to join, please check <a href="https://wiki.openjdk.java.net/display/quality/Quality+Outreach">here</a>.</i></p>

<h2 id="configure-hybrid-key-exchange-support">Configure Hybrid Key Exchange Support</h2>

<p><a href="https://openjdk.org/jeps/527">JEP 527</a> has been integrated in JDK 27 early-access builds, bringing hybrid post-quantum key exchange to TLS 1.3. This improves Java’s TLS implementation by combining traditional elliptic-curve key algorithms with quantum-resistant ML-KEM, helping protect against future <a href="https://en.wikipedia.org/wiki/Harvest_now%2C_decrypt_later">harvest-now, decrypt-later</a> threats.</p>

<p>Java applications that use the standard <code class="language-plaintext highlighter-rouge">javax.net.ssl</code> APIs can benefit by default, without code changes, as long as they do not override the TLS named groups. 
By default, JDK 27 enables <code class="language-plaintext highlighter-rouge">X25519MLKEM768</code> alongside existing classical key exchange algorithms, so TLS clients offer both a hybrid <code class="language-plaintext highlighter-rouge">X25519MLKEM768</code> key share and a traditional <code class="language-plaintext highlighter-rouge">x25519</code> key share.</p>

<p>JDK 27 adds three hybrid key exchange options through the SunJSSE provider:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">X25519MLKEM768</code> is a hybrid scheme combining <code class="language-plaintext highlighter-rouge">ECDHE</code> with <code class="language-plaintext highlighter-rouge">X25519</code> and <code class="language-plaintext highlighter-rouge">ML-KEM-768</code>.</li>
  <li><code class="language-plaintext highlighter-rouge">SecP256r1MLKEM768</code> is a hybrid scheme combining <code class="language-plaintext highlighter-rouge">ECDHE</code> using the <code class="language-plaintext highlighter-rouge">secp256r1</code> curve with <code class="language-plaintext highlighter-rouge">ML-KEM-768</code>.</li>
  <li><code class="language-plaintext highlighter-rouge">SecP384r1MLKEM1024</code> is a hybrid scheme combining <code class="language-plaintext highlighter-rouge">ECDHE</code> using the <code class="language-plaintext highlighter-rouge">secp384r1</code> curve with <code class="language-plaintext highlighter-rouge">ML-KEM-1024</code>.</li>
</ul>

<p>You can customize the enabled groups either with the <code class="language-plaintext highlighter-rouge">jdk.tls.namedGroups</code> system property or programmatically via <code class="language-plaintext highlighter-rouge">SSLParameters::setNamedGroups</code>:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">SSLSocket</span> <span class="n">tlsSocket</span> <span class="o">=</span> <span class="o">(</span><span class="nc">SSLSocket</span><span class="o">)</span> <span class="nc">SSLContext</span><span class="o">.</span><span class="na">getDefault</span><span class="o">()</span>
        <span class="o">.</span><span class="na">getSocketFactory</span><span class="o">()</span>
        <span class="o">.</span><span class="na">createSocket</span><span class="o">();</span>

<span class="nc">SSLParameters</span> <span class="n">params</span> <span class="o">=</span> <span class="n">tlsSocket</span><span class="o">.</span><span class="na">getSSLParameters</span><span class="o">();</span>

<span class="n">params</span><span class="o">.</span><span class="na">setNamedGroups</span><span class="o">(</span><span class="k">new</span> <span class="nc">String</span><span class="o">[]</span> <span class="o">{</span>
        <span class="s">"SecP384r1MLKEM1024"</span><span class="o">,</span>
        <span class="s">"X25519MLKEM768"</span><span class="o">,</span>
        <span class="s">"secp384r1"</span><span class="o">,</span>
        <span class="s">"x25519"</span>
<span class="o">});</span>

<span class="n">tlsSocket</span><span class="o">.</span><span class="na">setSSLParameters</span><span class="o">(</span><span class="n">params</span><span class="o">);</span>
</code></pre></div></div>

<h2 id="call-to-action">Call to Action</h2>

<p>As this implementation is still new, we encourage you to download the <a href="https://jdk.java.net/27/">JDK 27 early-access builds</a>, try this feature, and share your feedback through the <a href="https://mail.openjdk.org/mailman/listinfo/security-dev">security-dev OpenJDK mailing list</a> (registration required).</p>

<center>~</center>]]></content><author><name>[&quot;Ana-MariaMihalceanu&quot;]</name></author><category term="JDK 27" /><category term="Security" /><summary type="html"><![CDATA[This Heads-Up is part of the regular communication sent to the projects involved; it covers that JDK 27 EA Builds now include post-quantum hybrid key exchange for TLS 1.3.]]></summary></entry><entry><title type="html">Post-Mortem JVM Crash Analysis with jcmd</title><link href="https://inside.java/2026/05/16/javaone-jcmd-jvm-analysis/" rel="alternate" type="text/html" title="Post-Mortem JVM Crash Analysis with jcmd" /><published>2026-05-16T00:00:00+00:00</published><updated>2026-05-16T00:00:00+00:00</updated><id>https://inside.java/2026/05/16/JavaOne-Jcmd-JVM-Analysis</id><content type="html" xml:base="https://inside.java/2026/05/16/javaone-jcmd-jvm-analysis/"><![CDATA[<div class="youtube-embed">
    <iframe src="https://www.youtube.com/embed/mng0DTspxpQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
</div>

<p><em>This session highlights the progress of JEP 528, which brings core dump and minidump support to jcmd. The jcmd tool is widely used for monitoring and troubleshooting live HotSpot JVMs. With JEP 528, jcmd will also be able to diagnose crashed JVMs, creating a more consistent troubleshooting experience across both live and post-mortem environments.</em></p>

<p><em>Join us for a deep dive into the future of JVM crash analysis and post-mortem diagnostics.</em></p>

<p><em>Make sure to check the <a href="https://www.youtube.com/playlist?list=PLX8CzqL3ArzUMVSzm-z_-if8BIB55EGl4">JavaOne 2026 playlist</a>.</em></p>]]></content><author><name>[&quot;FairozMatte&quot;]</name></author><category term="HotSpot" /><category term="Serviceability" /><summary type="html"><![CDATA[This session highlights the progress of JEP 528, which brings core dump and minidump support to jcmd. The jcmd tool is widely used for monitoring and troubleshooting live HotSpot JVMs. With JEP 528, jcmd will also be able to diagnose crashed JVMs, creating a more consistent troubleshooting experience across both live and post-mortem environments.]]></summary></entry></feed>