private String dive(int depth,int iteration){
  String str0;
  String str1;
  String str2;
  String str3;
  String str4;
  String str5;
  String str6;
  String str7;
  String funStr;
  funStr="";
switch (iteration % 8) {
case 0:
    funStr=str0=makeString(iteration);
  break;
case 1:
funStr=str1=makeString(iteration);
break;
case 2:
funStr=str2=makeString(iteration);
break;
case 3:
funStr=str3=makeString(iteration);
break;
case 4:
funStr=str4=makeString(iteration);
break;
case 5:
funStr=str5=makeString(iteration);
break;
case 6:
funStr=str6=makeString(iteration);
break;
case 7:
funStr=str7=makeString(iteration);
break;
}
strong[depth]=funStr;
weak[depth]=new WeakReference(funStr);
if (depth + 1 < MAX_DEPTH) dive(depth + 1,iteration + 1);
 else Main.sleep(100);
return funStr;
}

private String dive ( int depth , int iteration ) { String str0 ; String str1 ; String str2 ; String str3 ; String str4 ; String str5 ; String str6 ; String str7 ; String funStr ; funStr = "" ; switch ( iteration % 8 ) { case 0 : funStr = str0 = makeString ( iteration ) ; break ; case 1 : funStr = str1 = makeString ( iteration ) ; break ; case 2 : funStr = str2 = makeString ( iteration ) ; break ; case 3 : funStr = str3 = makeString ( iteration ) ; break ; case 4 : funStr = str4 = makeString ( iteration ) ; break ; case 5 : funStr = str5 = makeString ( iteration ) ; break ; case 6 : funStr = str6 = makeString ( iteration ) ; break ; case 7 : funStr = str7 = makeString ( iteration ) ; break ; } strong [ depth ] = funStr ; weak [ depth ] = new WeakReference ( funStr ) ; if ( depth + 1 < MAX_DEPTH ) dive ( depth + 1 , iteration + 1 ) ; else Main . sleep ( 100 ) ; return funStr ; }
recursively dive down , setting one or more local variables . we pad the stack out with locals , attempting to create a mix of valid and invalid references on the stack .
