1
我正在嘗試爲web應用做一些junit測試,並且不斷收到OutOfMemoryError。我知道它在代碼中發生了什麼,但我不知道爲什麼它會這樣做。Junit使用java.lang.OutOfMemoryError進行測試已被捕獲,Java堆空間
Survey survey = new Survey();
SurveyLayoutColumn column1 = new SurveyLayoutColumn();
column1.addAnswerSpace(new Answer());
SurveyLayoutColumn column2 = new SurveyLayoutColumn();
column2.addAnswerSpace(new Answer());
column2.addAnswerSpace(new Answer());
SurveyLayoutColumn column3 = new SurveyLayoutColumn();
column3.addAnswerSpace(new Answer());
survey.addLayoutColumn(column1);
survey.addLayoutColumn(column2);
survey.addLayoutColumn(column3);
survey.addQuestion(new Question());
survey.addQuestion(new Question());
survey.addQuestion(new Question());
survey.addQuestion(new Question());
Application app = new controllers.Application();
app.saveSurvey(survey);
long count = Survey.count();
assertEquals(count,0);
它發生在app.saveSurvey(surey),這裏是該方法
public static void saveSurvey(Survey survey) {
System.out.println("Survey title is: " + survey.title);
survey.published = true;
survey.save();
Map<String, Object> viewData = new HashMap<String, Object>();
viewData.put("status", "success");
JSONSerializer serializer = new JSONSerializer();
serializer
.include("status")
.exclude("*");
renderJSON(serializer.serialize(viewData));
}
任何幫助,將是對爲什麼會發生很大的代碼。
編輯: 這裏是跟蹤
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at play.data.binding.Unbinder.unBind(Unbinder.java:106)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
at play.data.binding.Unbinder.unBind(Unbinder.java:63)
at play.data.binding.Unbinder.unBind(Unbinder.java:110)
你能發佈完整的堆棧跟蹤嗎? – 2013-03-11 14:20:33
只是出於好奇,這段代碼片斷是什麼?long count = Survey.count();'做什麼? – SudoRahul 2013-03-11 14:25:19
java.lang.OutOfMemoryError:Java堆空間。多數民衆贊成它說 – user1179321 2013-03-11 14:25:24