Я запускаю приложение GWT с использованием GWT 2.5.1 и Ext GWT v2.2.4 на Eclipse Juno. Java 6 (32 бит), и я не могу ничего изменить.Приложение GWT зависает из-за внутреннего бесконечного цикла
Я был недавно передан это приложение, которое отлично работает на другой машине. После запуска приложения (Запустить> Приложение GWT), я продолжу вход в мое приложение, мой код выполняется нормально, но затем мое приложение замерзает. Я отлажена и обнаружил, что приложения входит в бесконечный цикл в этом внутреннем методе GWT (т.е. в классе com.google.gwt.dev.shell.BrowserChannelServer
):
public void reactToMessages(SessionHandlerServer handler) {
do {
try {
getStreamToOtherSide().flush();
MessageType messageType = Message.readMessageType(
getStreamFromOtherSide());
switch (messageType) {
case FREE_VALUE:
final FreeMessage freeMsg = FreeMessage.receive(this);
handler.freeValue(this, freeMsg.getIds());
break;
case INVOKE: //<<<< Keeps getting into this block
InvokeOnServerMessage imsg = InvokeOnServerMessage.receive(this);
ExceptionOrReturnValue result = handler.invoke(this, imsg.getThis(),
imsg.getMethodDispatchId(), imsg.getArgs());
sendFreedValues();
ReturnMessage.send(this, result);
break;
case INVOKE_SPECIAL:
handleInvokeSpecial(handler);
break;
case QUIT:
return;
default:
throw new RemoteDeathError(new BrowserChannelException(
"Invalid message type " + messageType));
}
} catch (IOException e) {
throw new RemoteDeathError(e);
} catch (BrowserChannelException e) {
throw new RemoteDeathError(e);
}
} while (true);
}
messageType
всегда ВЫЗОВ и так как условие в то время как это верно, цикл никогда не заканчивается , Таким образом, выполнение застрял в этом стеке:
Daemon Thread [Code server for av.mymodule from Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 on http://127.0.0.1:8889/mymodule.html?gwt.codesvr=127.0.0.1:9997 @ tsb2t8vtLUT/vrj#] (Suspended)
BrowserChannelServer.reactToMessages(BrowserChannelServer$SessionHandlerServer) line: 292
BrowserChannelServer.processConnection() line: 547
BrowserChannelServer.run() line: 364
Thread.run() line: 662
Я очистил проект, удаленные файлы кэша, временные файлы, перекомпилировать несколько раз, пытался старую версию 2.4.0, но я не могу попробовать 2.6, потому что я буду нужна java 7, которую я не могу установить на данный момент. Я пробовал хром и firefox, те же результаты. После некоторого поиска я нашел несколько предложений, которые я не должен увеличивать с помощью браузера, но я этого не делаю.
В чем проблема?
Как я уже упоминал, это внутренний код GWT. Я не могу его изменить. Если это неправильно, то что-то очень не так. Это может быть ошибка GWT, в которой я очень сомневаюсь, но даже тогда только команда GWT может ее решить, потому что я ничего не знаю о внутренних компонентах GWT. –
@MuhammadGelbana Прошу прощения за это! Если это так, вы должны скопировать исходные коды и создать собственный виджет или класс, а затем, пожалуйста, проверьте его снова. Иногда GWT дает мне некоторые недостатки и все еще некоторые слабые стороны. Я понятия не имею о GWT 2.6. – Cataclysm