На что указывает сообщение об ошибке «Попытка разбить длинный или двойной фрагмент в стеке»?

Я получаю следующую ошибку из моего кода:

Попытка разделить стек на long или double

Я не знаю, откуда произошла эта ошибка, и не знаю, как чтобы отладить это. На какую проблему это указывает? Как я могу это исправить?

[ERROR]  [Mon May 23 14:29:46 IST 2011]   [(class: org/apache/jsp/dashboard_jsp, method: _jspService signature:     (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V) Attempt to split long or double on the stack]  [10.97.34.222] hddlntdsz2350  [ session not set ] 
java.lang.VerifyError: (class: org/apache/jsp/dashboard_jsp, method: _jspService signature: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V) Attempt to split long or double on the stack
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at org.jboss.web.tomcat.service.TomcatInjectionContainer.newInstance(TomcatInjectionContainer.java:273)

Код проблемы: Я создал модель, как указано ниже

public class DashboardViewModel implements Serializable {

/** defalut serialization id */
private static final long serialVersionUID = 1L;

/**
 * Collection representing all the services
 */
private Map<Long, ServiceCustomerModel> serviceDataMap;

}

На определенной странице JSP я делаю следующее.

for (Long serviceId : dashboardViewModel.getServices()) {
           Service service = dashboardViewModel.getService(serviceId);
}

Метод getServices в указанном выше целевом классе выглядит следующим образом:

public Set<Long> getServices() {
    return this.serviceDataMap.keySet();
}

При включении указанного выше кода в jsp. Я получаю сообщение об ошибке. В противном случае это работает.

Дальнейшие исследования:

Я обновил файл dashboard.jsp следующим фрагментом кода. Я не могу определить, почему, но этот код работает.

ArrayList<Long> test = new ArrayList<Long>();
test.addAll(dashboardViewModel.getServices());
for (long serviceId : test) {
    Service service = dashboardViewModel.getService(serviceId);
}

Имеет ли этот код какое-либо значение для данных?

10
задан wattostudios 6 May 2012 в 03:35
поделиться