Странная загрузка файлов между Sun и Java с использованием SwingWorker и HttpClient-4.1.1. - PullRequest
1 голос
/ 13 июля 2011

Мы модифицируем фэн-офис (с открытым исходным кодом, групповая программа на PHP, Apache и MySQL).Мы пытаемся реализовать функцию загрузки нескольких файлов.Это поток:

(1) Пользователь нажимает кнопку (на веб-странице), загружается JNLP (2), в результате чего появляется диалоговое окно «Выбор файла».Пользователь выбирает несколько файлов и нажимает «Загрузить», (3) затем файлы загружаются в цикле, а индикатор выполнения обновляется после каждого файла.

Теперь внутри mfu.jar (ядро для загрузки нескольких файлов).Мы используем apache httpclient-4.1.1 вместе с SwingWorker для загрузки файлов и обновления индикатора выполнения [многопоточность, я уже говорил, насколько мы крутые?;-)].Странно то, что на машинах, использующих java от Sun (появляется логотип Sun), все работает отлично.На машинах, использующих Open JDK или Oracle Java (появляется логотип Oracle, Linux или Windows, 32-битный или 64-битный), вместо того, чтобы разные файлы загружались ровно один раз, мы получаем один из них, загружаемый несколько раз (одно и то же имя,тот же контент)!

какие-либо подсказки?

PS: Я извиняюсь, если данных недостаточно, я пытался сосредоточиться на проблеме с точки зрения моего понимания способствующих факторов.

EIDT: Очевидно, httpclient-4.1.1 использует какой-то механизм кэширования, но не может найти строгие отношения.

1 Ответ

0 голосов
/ 14 июля 2011

Проблема решена. Каким-то образом мы забыли рассмотреть некоторые из основных принципов многопоточности, и все SwingWorker пытались использовать один и тот же uploader одновременно. Мы дали каждому SwingWorkrer свое uploader, и все работает отлично.

...