Java 7 verhindert FTP-Übertragungen unter Windows Vista und 7.
In FTP muss vor der Übertragung einer Datei ein PORT- oder ein PASV-Befehl gesendet werden. Sobald einer der Befehle gesendet wird, schließt die Windows-Firewall den Socket, der ihn gesendet hat. Dies geschieht nur, wenn die Firewall aktiviert ist und eine Ausnahme für java.exe fehlt. Ich vermute, dass dieses Problem mit Java 7 zusammenhängt, das den neuen Vista IP-Stack verwendet.
Hat jemand Ideen, wie man dieses Problem beheben oder umgehen kann? Wir verteilen eine Java-FTP-Bibliothek, sodass wir offensichtlich keine Ausnahmen selbst hinzufügen können.
Ausnahme:
java.net.SocketException: Permission denied: recv failed
JRE-Versionsinfo:
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
FOLLOW-UP 1 (14. November 2011): Oracle hat das Problem analysiert und festgestellt, dass es sich anscheinend um einen Fehler in der Windows-Firewall und / oder im IPv6-Stack handelt. Sie haben es geschafft, das Problem mit einer nativen C-App (dh einer Nicht-Java-App) zu replizieren. Dies ist ein starker Beweis dafür, dass der Fehler nicht in Java vorliegt. Sie haben Microsoft informiert, so dass der Ball jetzt in ihrem Spielfeld ist. Weitere Informationen finden Sie unter http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696
FOLLOW-UP 2 (27. Juli 2012): Ein (sehr hilfreicher) Kontakt bei Oracle hat mir mitgeteilt, dass das Problem jetzt bei Microsoft eskaliert ist. Wir hoffen, bald einige Ergebnisse zu sehen.
FOLLOW-UP 3 (15. August 2012): Unser Kontakt bei Oracle hat uns mitgeteilt, dass Microsoft den Fehler akzeptiert hat und derzeit Prioritäten setzt.
FOLLOW-UP 4 (21. September 2012): Microsoft hat einen Patch erstellt, der derzeit von Oracle getestet wird. Kein Wort zu einem Veröffentlichungsdatum.
FOLLOW-UP 5 (11. Oktober 2012): Endlich Erfolg! Microsoft hat öffentlich einen Hotfix veröffentlicht . Sie implizieren, dass das Update in Zukunft in einem allgemeinen Software-Update enthalten sein wird:
"Wenn Sie von diesem Problem nicht ernsthaft betroffen sind, empfehlen wir Ihnen, auf das nächste Software-Update zu warten, das diesen Hotfix enthält."