我对现有应用程序的代码进行了一些修改。虽然测试我得到异常创建:java.lang.OutOfMemoryError。但是错误在一段时间内只发生一次。下面是其中所述错误发生创建的异常:java.lang.OutOfMemoryError
}else if(subject.equals("Mobile")){
to=(String)hashMap.get("M_MOBILETOMAIL");
m_mobileoptionvalue=(String)parameters.get("m_mobileoptionvalue");
m_mobileq1value=(String)parameters.get("m_mobileq1value");
StringTokenizer m_tokenizer1 = new StringTokenizer(m_mobileq1value,"|");
while (m_tokenizer1.hasMoreTokens()){
m_mobileq1List.add(m_tokenizer1.nextToken());
}
m_mobileq2value=(String)parameters.get("m_mobileq2value");
StringTokenizer m_tokenizer2 = new StringTokenizer(m_mobileq2value,"|");
while (m_tokenizer2.hasMoreTokens()){
m_mobileq2List.add(m_mobileq2value);
}
m_mobileq3value=(String)parameters.get("m_mobileq3value");
StringTokenizer m_tokenizer3 = new StringTokenizer(m_mobileq3value,"|");
while (m_tokenizer3.hasMoreTokens()){
m_mobileq3List.add(m_mobileq3value);
}
m_mobileq4value=(String)parameters.get("m_mobileq4value");
m_mobileq4=(String)parameters.get("m_mobileq4");
}
我正在流汗的错误是在线路
m_mobileq2List.add(m_mobileq2value);
另外附接JVM日志----
exception created in one of the service methods of the servlet MailSend in application interact_assorted_intapp7. Exception created : java.lang.OutOfMemoryError
at java.util.ArrayList.newElementArray(ArrayList.java:94)
at java.util.ArrayList.growAtEnd(ArrayList.java:375)
at java.util.ArrayList.add(ArrayList.java:158)
at com.international.servlets.MailSend.doPost(MailSend.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
我的代码段经历了一些相关的帖子,但没有得到任何适当的结果。同时HeapSize的增加超出了范围。
您是否内存不足? –
我认为,背后的原因是内存泄漏。在完成所有变量之后,确保所有变量都有弱点或幻影参考,并且必须注意不要强烈引用任何死的物体。 –
你需要给JVM更多的内存来处理,否则你可能会在某处发生内存泄漏。 – Bart