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
(1) |
2
(3) |
|
3
(1) |
4
(5) |
5
(4) |
6
(6) |
7
(6) |
8
(2) |
9
(4) |
|
10
(4) |
11
(3) |
12
(3) |
13
(3) |
14
(4) |
15
(5) |
16
(5) |
|
17
(6) |
18
(1) |
19
(6) |
20
(2) |
21
(4) |
22
(5) |
23
(6) |
|
24
(8) |
25
(6) |
26
(5) |
27
(6) |
28
(5) |
29
(3) |
30
(5) |
|
31
(7) |
|
|
|
|
|
|
|
From: <ka...@us...> - 2009-05-22 09:31:08
|
Revision: 3212
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3212&view=rev
Author: kappa1
Date: 2009-05-22 09:30:50 +0000 (Fri, 22 May 2009)
Log Message:
-----------
Special thanks to Riven in helping find the bug below :)
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-05-22 09:14:38 UTC (rev 3211)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2009-05-22 09:30:50 UTC (rev 3212)
@@ -536,7 +536,6 @@
* 3) extract natives
* 4) add to jars to class path
* 5) switch applets
- *
*/
public void run() {
state = STATE_CHECKING_CACHE;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2009-05-22 09:14:47
|
Revision: 3211
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3211&view=rev
Author: kappa1
Date: 2009-05-22 09:14:38 +0000 (Fri, 22 May 2009)
Log Message:
-----------
BUG FIX: downloaded jars can now connect to the host they were from.
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-05-18 13:24:05 UTC (rev 3210)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2009-05-22 09:14:38 UTC (rev 3211)
@@ -44,17 +44,22 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.FilePermission;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
+import java.net.SocketPermission;
import java.net.URL;
import java.net.URLClassLoader;
import java.net.URLConnection;
import java.security.AccessControlException;
import java.security.AccessController;
+import java.security.CodeSource;
+import java.security.PermissionCollection;
import java.security.PrivilegedExceptionAction;
+import java.security.SecureClassLoader;
import java.security.cert.Certificate;
import java.util.Enumeration;
import java.util.StringTokenizer;
@@ -63,6 +68,9 @@
import java.util.jar.JarOutputStream;
import java.util.jar.Pack200;
+import sun.net.www.ParseUtil;
+import sun.security.util.SecurityConstants;
+
/**
* <p>
* The AppletLoader enables deployment of LWJGL to applets in an easy
@@ -170,6 +178,9 @@
/** urls of the jars to download */
protected URL[] urlList;
+ /** classLoader used to added downloaded jars to the classpath */
+ protected ClassLoader classLoader;
+
/** actual thread that does the loading */
protected Thread loaderThread;
@@ -666,19 +677,45 @@
percentage = 95;
- Class[] parameters = new Class[] {URL.class};
+ URL[] urls = new URL[urlList.length];
- // modify class path by adding downloaded jars to it
- for (int i = 0; i < urlList.length-1; i++) {
- // get location of jar as a url
- URL u = new URL("file:" + path + getJarName(urlList[i]));
-
- // add to class path
- Method method = URLClassLoader.class.getDeclaredMethod("addURL", parameters);
- method.setAccessible(true);
- method.invoke(getClass().getClassLoader(), new Object[] {u});
+ for (int i = 0; i < urlList.length; i++) {
+ urls[i] = new URL("file:" + path + getJarName(urlList[i]));
}
+ // added downloaded jars to the classpath with required permissions
+ classLoader = new URLClassLoader(urls) {
+ protected PermissionCollection getPermissions (CodeSource codesource) {
+ PermissionCollection perms = null;
+
+ try {
+ // getPermissions from original classloader is important as it checks for signed jars ands shows any security dialogs needed
+ Method method = SecureClassLoader.class.getDeclaredMethod("getPermissions", new Class[] { CodeSource.class });
+ method.setAccessible(true);
+ perms = (PermissionCollection)method.invoke(getClass().getClassLoader(), new Object[] {codesource});
+
+ String host = getCodeBase().getHost();
+
+ if (host != null && (host.length() > 0)) {
+ // add permission to downloaded jars to access host they were from
+ perms.add(new SocketPermission(host, SecurityConstants.SOCKET_CONNECT_ACCEPT_ACTION));
+ }
+ else if (codesource.getLocation().getProtocol().equals("file")) {
+ // if running locally add file permission
+ String path = codesource.getLocation().getFile().replace('/', File.separatorChar);
+ path = ParseUtil.decode(path);
+ if (path.endsWith(File.separator)) path += "-";
+ perms.add(new FilePermission(path, SecurityConstants.FILE_READ_ACTION));
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return perms;
+ }
+ };
+
debug_sleep(2000);
// add natives files path to native class path
@@ -699,7 +736,7 @@
debug_sleep(2000);
- Class appletClass = Class.forName(getParameter("al_main"));
+ Class appletClass = classLoader.loadClass(getParameter("al_main"));
lwjglApplet = (Applet) appletClass.newInstance();
lwjglApplet.setStub(this);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|