ローカル変数の宣言で
List list=new ArrayList();
とか、
Context con=new InitialContext();
とか、書いてる理由がわかりません

他から呼び出される関数を
public void setXXX(ArrayList list){}
じゃなくて
public void setXXX(List list){}
とやるのはわかるけど・・・