view test/runtime/6626217/many_loader1.java.foo @ 6170:d8a240abb23a

7177128: SA cannot get correct system properties after 7126277 Summary: Bug fix of 7126277 changed hashing algorithm and also changed key as final field, this led SA unable to set correct value for key. Solution by reading key/value and insert them into the new table. Reviewed-by: dholmes, mikael Contributed-by: yumin.qi@oracle.com
author minqi
date Fri, 22 Jun 2012 15:39:16 -0700
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(); 
  }
}