view test/runtime/6626217/many_loader1.java.foo @ 3246:fcc932c8238c

7007254: NullPointerException occurs with jvisualvm placed under a dir. including Japanese chars Summary: use java_lang_String::create_from_platform_dependent_str() instead of java_lang_String::create_from_str() in JvmtiEnv::AddToSystemClassLoaderSearch() Reviewed-by: dcubed
author thurka
date Sat, 16 Apr 2011 11:59:54 +0200
parents 495caa35b1b5
children
line wrap: on
line source

// A simple class to extend an abstract class and get loaded with different
// loaders.  This class is loaded via LOADER1.  A similar named class will
// be loaded via LOADER2.
public class many_loader extends bug_21227 {
  public You_Have_Been_P0wned _p0wnee;

  // I need to compile (hence call in a loop) a function which returns a value
  // loaded from classloader other than the system one.  The point of this
  // call is to give me an abstract 'hook' into a function loaded with a
  // foreign loader.

  // The original 'make(boolean)' returns a bug_21227.  The VM will inject a
  // synthetic method to up-cast the returned 'from_loader1' into a
  // 'bug_21227'.
  public many_loader[] make( IFace iface ) { 
    // This function needs to return a value known to be loaded from LOADER2.
    // Since I need to use a yet different loader, I need to make an unknown
    // foreign call.  In this case I'll be using an interface to make the
    // unknown call, with but a single implementor so the compiler can do the
    // upcast statically.
    return iface==null ? null : iface.gen(); 
  }
}