Почему/когда executions.getCurrent () null? - Как отладить это?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему/когда executions.getCurrent () null? - Как отладить это?

Сообщение Anonymous »

Я пытаюсь понять, что такое zk.ui.exection.getCurrent () и когда это null . Я получил сообщение об ошибке журнала, в котором говорилось, что «толчок сервера не может быть запущен без выполнения» во время асинхронной операции и отслеживал его до executions.getCurrent () null. < /P>

Я использую zk 8.5.0. С Spring Framework 4 и у меня также есть многопоточное приложение. Это действительно сложно публиковать код, но я могу сказать вам, что это происходит во время метода start () (запуска до метода run ()) внутри класса, который реализует запускаемый интерфейс. Я пытался отладить его строки - receoming.getCurrent () всегда имеет значение. Я пытался каким -то образом заставить его стать нулевым, закрыв вкладку или обновляя страницу, пока асинхронная операция продолжалась, но не повезло. Это привело к другой ошибке, что -то о том, чтобы не найти рабочий стол с данным идентификатором.java.lang.IllegalStateException: Server Push cannot be started without execution
at org.zkoss.zk.ui.impl.DesktopImpl.enableServerPush0(DesktopImpl.java:1510)
at org.zkoss.zk.ui.impl.DesktopImpl.enableServerPush(DesktopImpl.java:1470)
at org.zkoss.zk.ui.impl.DesktopImpl.enableServerPush(DesktopImpl.java:1455)
at c.p.t.e.LongOperation.enableServerPushForThisTask(LongOperation.java:172)
at c.p.t.e.LongOperation.start(LongOperation.java:117)
at c.p.t.c.MyController.myExport(MyController.java:332)
< /code>

Это означает, что я включаю Serverpush для рабочего стола, и в большинстве случаев это выполняется правильно. Я пытаюсь выяснить, что может привести к неудаче ...
Точная ошибка возникает в org.zkoss.zk.ui.impl.desktopimpl.java (L.1510) внутри частного логического inserverpush0 (serverpush sp, boolean ensable) {...}.public class DesktopImpl implements Desktop, DesktopCtrl, java.io.Serializable {
...
private boolean enableServerPush0(ServerPush sp, boolean enable) {
if (_sess == null)
throw new IllegalStateException("Server push cannot be enabled in a working thread");

final boolean serverPushAlreadyExists = _spush != null;

if (serverPushAlreadyExists != enable) {
final Integer icnt = (Integer) _sess.getAttribute(ATTR_PUSH_COUNT);
int cnt = icnt != null ? icnt.intValue() : 0;
if (enable) {
if (Executions.getCurrent() == null)
throw new IllegalStateException("Server Push cannot be started without execution");
...
}
< /code>

Я знаю, что я не предоставляю достаточно информации для фактической отладки моего кода. Я был бы благодарен, если бы кто -то мог указать меня в правильном направлении. Что мне попробовать? Любые варианты использования, которые могут привести к тому, что executions.getCurrent () станет нулевым?

Подробнее здесь: https://stackoverflow.com/questions/560 ... o-debug-it

Вернуться в «JAVA»