You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(134) |
Sep
(52) |
Oct
(13) |
Nov
(342) |
Dec
(163) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(44) |
Feb
(62) |
Mar
(158) |
Apr
(38) |
May
(70) |
Jun
(58) |
Jul
(104) |
Aug
(207) |
Sep
(83) |
Oct
(122) |
Nov
(23) |
Dec
(49) |
| 2004 |
Jan
(119) |
Feb
(132) |
Mar
(192) |
Apr
(140) |
May
(77) |
Jun
(74) |
Jul
(201) |
Aug
(63) |
Sep
(102) |
Oct
(70) |
Nov
(173) |
Dec
(78) |
| 2005 |
Jan
(174) |
Feb
(197) |
Mar
(105) |
Apr
(59) |
May
(77) |
Jun
(43) |
Jul
(21) |
Aug
(18) |
Sep
(47) |
Oct
(37) |
Nov
(74) |
Dec
(50) |
| 2006 |
Jan
(44) |
Feb
(19) |
Mar
(32) |
Apr
(24) |
May
(31) |
Jun
(55) |
Jul
(138) |
Aug
(28) |
Sep
(12) |
Oct
(41) |
Nov
(58) |
Dec
(24) |
| 2007 |
Jan
(28) |
Feb
(14) |
Mar
(10) |
Apr
(68) |
May
(30) |
Jun
(26) |
Jul
(18) |
Aug
(63) |
Sep
(19) |
Oct
(29) |
Nov
(20) |
Dec
(10) |
| 2008 |
Jan
(38) |
Feb
(7) |
Mar
(37) |
Apr
(120) |
May
(41) |
Jun
(36) |
Jul
(39) |
Aug
(24) |
Sep
(28) |
Oct
(30) |
Nov
(36) |
Dec
(75) |
| 2009 |
Jan
(46) |
Feb
(22) |
Mar
(50) |
Apr
(70) |
May
(134) |
Jun
(105) |
Jul
(75) |
Aug
(34) |
Sep
(38) |
Oct
(34) |
Nov
(19) |
Dec
(20) |
| 2010 |
Jan
(11) |
Feb
(20) |
Mar
(65) |
Apr
(83) |
May
(104) |
Jun
(73) |
Jul
(78) |
Aug
(57) |
Sep
(43) |
Oct
(35) |
Nov
(9) |
Dec
(4) |
| 2011 |
Jan
(21) |
Feb
(11) |
Mar
(18) |
Apr
(10) |
May
(18) |
Jun
(15) |
Jul
(48) |
Aug
(25) |
Sep
(17) |
Oct
(45) |
Nov
(15) |
Dec
(12) |
| 2012 |
Jan
(21) |
Feb
(9) |
Mar
(12) |
Apr
(9) |
May
(9) |
Jun
(5) |
Jul
(1) |
Aug
(10) |
Sep
(12) |
Oct
(1) |
Nov
(28) |
Dec
(5) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
(1) |
3
(1) |
|
4
(1) |
5
|
6
(1) |
7
(1) |
8
(2) |
9
(2) |
10
(1) |
|
11
(2) |
12
(3) |
13
(1) |
14
(3) |
15
(1) |
16
(1) |
17
|
|
18
(1) |
19
(2) |
20
|
21
(1) |
22
(1) |
23
(2) |
24
|
|
25
(1) |
26
(1) |
27
|
28
(2) |
29
|
30
(2) |
31
|
|
From: <ka...@us...> - 2009-10-12 11:56:53
|
Revision: 3245
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3245&view=rev
Author: kappa1
Date: 2009-10-12 11:56:46 +0000 (Mon, 12 Oct 2009)
Log Message:
-----------
Stop AppletLoader on download failure, instead of displaying error and continuing download of files.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2009-10-08 00:03:55 UTC (rev 3244)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2009-10-12 11:56:46 UTC (rev 3245)
@@ -874,7 +874,7 @@
}
else {
// retry attempts exhasted, download failed
- fatalErrorOccured("failed to download " + currentFile, null);
+ throw new Exception("failed to download " + currentFile);
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2009-10-08 00:04:07
|
Revision: 3244
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3244&view=rev
Author: kappa1
Date: 2009-10-08 00:03:55 +0000 (Thu, 08 Oct 2009)
Log Message:
-----------
AppletLoader file download handling improved.
Unknown Caching that was causing problems has been found and disabled.
The infamous "Fatal Error occured (5): null" bug should really be dead this time :)
3 attempts are made to download a file if it fails to download.
File size is now verified after a downloaded to make sure it is the correct size.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2009-09-29 13:51:41 UTC (rev 3243)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2009-10-08 00:03:55 UTC (rev 3244)
@@ -53,6 +53,7 @@
import java.io.Writer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
+import java.net.HttpURLConnection;
import java.net.SocketPermission;
import java.net.URL;
import java.net.URLClassLoader;
@@ -780,11 +781,15 @@
URLConnection urlconnection;
+ // store file sizes, used for download verification
+ int[] fileSizes = new int[urlList.length];
+
// calculate total size of jars to download
for (int i = 0; i < urlList.length; i++) {
urlconnection = urlList[i].openConnection();
urlconnection.setDefaultUseCaches(false);
- totalSizeDownload += urlconnection.getContentLength();
+ fileSizes[i] = urlconnection.getContentLength();
+ totalSizeDownload += fileSizes[i];
}
int initialPercentage = percentage = 10;
@@ -792,48 +797,88 @@
// download each jar
byte buffer[] = new byte[65536];
for (int i = 0; i < urlList.length; i++) {
- debug_sleep(2000);
-
- urlconnection = urlList[i].openConnection();
- String currentFile = getFileName(urlList[i]);
- InputStream inputstream = getJarInputStream(currentFile, urlconnection);
- FileOutputStream fos = new FileOutputStream(path + currentFile);
+ int unsuccessfulAttempts = 0;
+ int maxUnsuccessfulAttempts = 3;
+ boolean downloadFile = true;
-
- int bufferSize;
- long downloadStartTime = System.currentTimeMillis();
- int downloadedAmount = 0;
- String downloadSpeedMessage = "";
-
- while ((bufferSize = inputstream.read(buffer, 0, buffer.length)) != -1) {
- debug_sleep(10);
- fos.write(buffer, 0, bufferSize);
- currentSizeDownload += bufferSize;
- percentage = initialPercentage + ((currentSizeDownload * 45) / totalSizeDownload);
- subtaskMessage = "Retrieving: " + currentFile + " " + ((currentSizeDownload * 100) / totalSizeDownload) + "%";
+ // download the jar a max of 3 times
+ while(downloadFile) {
+ downloadFile = false;
- downloadedAmount += bufferSize;
- long timeLapse = System.currentTimeMillis() - downloadStartTime;
- // update only if a second or more has passed
- if (timeLapse >= 1000) {
- // get kb/s, nice that bytes/millis is same as kilobytes/seconds
- float downloadSpeed = (float) downloadedAmount / timeLapse;
- // round to two decimal places
- downloadSpeed = ((int)(downloadSpeed*100))/100f;
- // set current speed message
- downloadSpeedMessage = " @ " + downloadSpeed + " KB/sec";
- // reset downloaded amount
- downloadedAmount = 0;
- // reset start time
- downloadStartTime = System.currentTimeMillis();
+ debug_sleep(2000);
+
+ urlconnection = urlList[i].openConnection();
+
+ if (urlconnection instanceof HttpURLConnection) {
+ urlconnection.setRequestProperty("Cache-Control", "no-cache");
+ urlconnection.connect();
+ }
+
+ String currentFile = getFileName(urlList[i]);
+ InputStream inputstream = getJarInputStream(currentFile, urlconnection);
+ FileOutputStream fos = new FileOutputStream(path + currentFile);
+
+
+ int bufferSize;
+ long downloadStartTime = System.currentTimeMillis();
+ int downloadedAmount = 0;
+ int fileSize = 0;
+ String downloadSpeedMessage = "";
+
+ while ((bufferSize = inputstream.read(buffer, 0, buffer.length)) != -1) {
+ debug_sleep(10);
+ fos.write(buffer, 0, bufferSize);
+ currentSizeDownload += bufferSize;
+ fileSize += bufferSize;
+ percentage = initialPercentage + ((currentSizeDownload * 45) / totalSizeDownload);
+ subtaskMessage = "Retrieving: " + currentFile + " " + ((currentSizeDownload * 100) / totalSizeDownload) + "%";
+
+ downloadedAmount += bufferSize;
+ long timeLapse = System.currentTimeMillis() - downloadStartTime;
+ // update only if a second or more has passed
+ if (timeLapse >= 1000) {
+ // get kb/s, nice that bytes/millis is same as kilobytes/seconds
+ float downloadSpeed = (float) downloadedAmount / timeLapse;
+ // round to two decimal places
+ downloadSpeed = ((int)(downloadSpeed*100))/100f;
+ // set current speed message
+ downloadSpeedMessage = " @ " + downloadSpeed + " KB/sec";
+ // reset downloaded amount
+ downloadedAmount = 0;
+ // reset start time
+ downloadStartTime = System.currentTimeMillis();
+ }
+
+ subtaskMessage += downloadSpeedMessage;
}
- subtaskMessage += downloadSpeedMessage;
+ inputstream.close();
+ fos.close();
+
+ // download complete, verify if it was successful
+ if (urlconnection instanceof HttpURLConnection) {
+ if (fileSize == fileSizes[i]) {
+ // successful download
+ }
+ else if (fileSizes[i] <= 0) {
+ // If contentLength for fileSizes[i] <= 0, we don't know if the download
+ // is complete. We're going to guess the download is complete.
+ }
+ else {
+ unsuccessfulAttempts++;
+ // download failed try again
+ if (unsuccessfulAttempts < maxUnsuccessfulAttempts) {
+ downloadFile = true;
+ currentSizeDownload -= fileSize; // reset progress bar
+ }
+ else {
+ // retry attempts exhasted, download failed
+ fatalErrorOccured("failed to download " + currentFile, null);
+ }
+ }
+ }
}
-
- inputstream.close();
- fos.close();
}
subtaskMessage = "";
}
@@ -1233,4 +1278,4 @@
}
-}
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|