title: disable/understand java applet class cache behavior
body: <p>I have a java applet that I am transitioning from distributing unsigned to signed.  The signed version seemed to start up slower, and in investigating this, the slowdown is in a series of connections to my web server that are fast when unsigned, but slow when the applet is signed.  I've struggled to get traction on this, as I can't figure out why it's making the connections in the first place, much less how to disable the behavior.  I'm also unclear on what creates the classes, and searches for java things involving "Customizer" have been unproductive.</p>
  
  <p>Here's the relevant output from the java console (with a little obvious censorship):</p>
  
  <blockquote>
    <p>basic: Applet loaded.<br>
    basic: Applet resized and added to parent container<br>
    basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 279063 us, pluginInit dt 1299510 us, TotalTime: 1578573 us<br>
    network: Cache entry not found [url: MYHOSTURL/games/java/lang/ObjectCustomizer.class, version: null]<br>
    network: Connecting MYHOSTURL/games/java/lang/ObjectCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/java/lang/ObjectCustomizer.class with cookie "STUFF"<br>
    network: Cache entry found [url: MYHOSTURL/games/UnitValueCustomizer.class, version: null] prevalidated=false/0<br>
    cache: Adding MemoryCache entry: MYHOSTURL/games/UnitValueCustomizer.class<br>
    cache: Resource MYHOSTURL/games/UnitValueCustomizer.class has expired.<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with cookie "STUFF"<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with cookie "STUFF"<br>
    cache: Resource MYHOSTURL/games/UnitValueCustomizer.class has expired.<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with cookie "STUFF"<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/UnitValueCustomizer.class with cookie "STUFF"<br>
    network: Cache entry not found [url: MYHOSTURL/games/java/lang/ObjectCustomizer.class, version: null]<br>
    network: Connecting MYHOSTURL/games/java/lang/ObjectCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/java/lang/ObjectCustomizer.class with cookie "STUFF"<br>
    network: Cache entry not found [url: MYHOSTURL/games/BoundSizeCustomizer.class, version: null]<br>
    network: Connecting MYHOSTURL/games/BoundSizeCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/BoundSizeCustomizer.class with cookie "STUFF"<br>
    network: Cache entry not found [url: MYHOSTURL/games/BoundSizeCustomizer.class, version: null]<br>
    network: Connecting MYHOSTURL/games/BoundSizeCustomizer.class with proxy=DIRECT<br>
    network: Connecting MYHOSTURL:80/ with proxy=DIRECT<br>
    network: Connecting MYHOSTURL/games/BoundSizeCustomizer.class with cookie "STUFF"<br>
    network: Connecting MYHOSTURL:3000/ with proxy=DIRECT<br>
    My program's first output<br></p>
  </blockquote>
  
  <p>(Note: the UnitValueCustomizer cache entry found is a junk file I put on the web server just to see what would happen - which was that everything operated normally despite downloading garbage instead of a class.)</p>
  
  <p>The listed classes (nor the word "Customizer") do not appear in the java source for the application, nor in the .class or .jar files generated in compilation.  The class names without the "Customizer" are from Miglayout.</p>
  
  <p>So any hints on how to get rid of this by whatever means are welcome, including but not limited to:</p>
  
  <ol>
  <li><p>How to tell the VM not to look for anything outside the provided applet .jar</p></li>
  <li><p>What language feature produces these phantom classes &amp; how to avoid that</p></li>
  <li><p>Any information on this class loading mechanism or what it's called</p></li>
  </ol>