import java.lang.reflect.Constructor; 
import java.lang.reflect.Method; 
import java.lang.reflect.*; 


public class Bug { 

    String f; 

    public static void main(String[] args) throws Exception { 
        Bug b = new Bug(); 
        b.f = (String) mungedString(); 
        b.trigger(); 

    } 

    public void trigger() throws Exception { 
        Method m = Runtime.class.getMethod(f, new Class[]{String.class}); 

    } 


     static Object mungedString() throws Exception { 
      Field[] fields = String.class.getDeclaredFields(); 
      Field field = null; 
      for(Field f: fields) { 
          if (f.getName().equals("value")) 
              field = f; 
      } 
      field.setAccessible(true); 

      Field modifiersField = Field.class.getDeclaredField("modifiers"); 
      modifiersField.setAccessible(true); 
      modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); 
      Object s = new String(); 
     field.set(s, null); 
      return s; 

   } 

} 