<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kamil Banach on JAVAPRO International</title><link>https://javapro-en.svenruppert.com/authors/kamil-banach/</link><description>Recent content in Kamil Banach on JAVAPRO International</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 07 Jul 2026 07:07:12 +0000</lastBuildDate><atom:link href="https://javapro-en.svenruppert.com/authors/kamil-banach/index.xml" rel="self" type="application/rss+xml"/><item><title>From ‘Class Not Found’ to Calm: Practical Shading and Shadowing for Java Apps</title><link>https://javapro-en.svenruppert.com/from-class-not-found-to-calm-practical-shading-and-shadowing-for-java-apps/</link><pubDate>Tue, 07 Jul 2026 07:07:12 +0000</pubDate><guid>https://javapro-en.svenruppert.com/from-class-not-found-to-calm-practical-shading-and-shadowing-for-java-apps/</guid><description>&lt;p&gt;Your pipeline is green, the app is deployed, and everything looks fine… until production says &amp;ldquo;nope&amp;rdquo;. A request fails and the logs show &lt;code&gt;ClassNotFoundException&lt;/code&gt;, or worse, &lt;code&gt;NoSuchMethodError&lt;/code&gt;. These are among the most confusing runtime errors because the code compiled successfully, but the JVM is acting differently than you would expect.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s dive in and explore how the class loader works, what class shadowing is (when one class silently wins over another on the classpath) and what class shading is (when you deliberately relocate packages so multiple versions can coexist). We&amp;rsquo;ll also see how these two concepts can help solve mysterious production issues and make your app more stable and secure.&lt;/p&gt;</description></item></channel></rss>