Hallo,
ich schreibe doch einige kleine OSGi Plugins in Eclipse. Ich habe aber heute das erste mal ein merkwürdiges Problem:
Ich sende via UDP Daten und horche auf die Antwort. Das klappt alles.
Aber ich habe einen Timeout gesetzt, wenn keine Antwort kommt, gibt er einen Fehler aus.
Das klappt in Eclipse ... aber wenn ich das Plugin veröffentliche und einbinde, scheint der Timeout gar nicht zu funktionieren.
Das ganze Projekt zu posten sprengt den Rahmen, aber die Stelle wo der Timeout passieren soll:
Weiter vorne im Code:
Wie gesagt, starte ich das Projekt in Eclipse, passt alles .. aber nicht mehr wenn ich es veröffentliche.
So als wäre bei der Target Platform die Funktion des Timeout nicht gegeben.
Kann gar nicht sein, oder?
Danke
ich schreibe doch einige kleine OSGi Plugins in Eclipse. Ich habe aber heute das erste mal ein merkwürdiges Problem:
Ich sende via UDP Daten und horche auf die Antwort. Das klappt alles.
Aber ich habe einen Timeout gesetzt, wenn keine Antwort kommt, gibt er einen Fehler aus.
Das klappt in Eclipse ... aber wenn ich das Plugin veröffentliche und einbinde, scheint der Timeout gar nicht zu funktionieren.
Das ganze Projekt zu posten sprengt den Rahmen, aber die Stelle wo der Timeout passieren soll:
Java:
while (true) {
try {
socket.receive(o);
rawResp.append(new String(o.getData(), o.getOffset(), o.getLength()));
if ((o.getLength() - o.getOffset()) < 4096) {
break;
}
} catch (SocketTimeoutException e1) {
if (connectParameter.isReconnectAtReadTimeout()) {
timeoutCounter++;
if (timeoutCounter > connectParameter.getTimeoutCounter()) {
timeoutCounter = 0;
status = Status.FAILED;
updateStatus(status);
response.setResponseCode(-1);
response.setResponseStatus("Connection closed");
request.getResponseListener().update(request, response);
}
}
break;
}
}
Weiter vorne im Code:
Java:
socket = new DatagramSocket();
socket.connect(new InetSocketAddress(connectParameter.getHost(), connectParameter.getPort()));
socket.setSoTimeout(connectParameter.getReadTimeout());
Wie gesagt, starte ich das Projekt in Eclipse, passt alles .. aber nicht mehr wenn ich es veröffentliche.
So als wäre bei der Target Platform die Funktion des Timeout nicht gegeben.
Kann gar nicht sein, oder?
Danke