From feb316ccd0e6cc1ac62ab6cce481e427a781b8c7 Mon Sep 17 00:00:00 2001
From: Nathan Sweet <nathan.sweet@gmail.com>
Date: Wed, 13 Jun 2012 11:07:24 +0000
Subject: [PATCH] Fixed issue 6, AccessClassLoader not tracking instances
 properly, not synchronized.

---
 .../reflectasm/AccessClassLoader.java                | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/com/esotericsoftware/reflectasm/AccessClassLoader.java b/src/com/esotericsoftware/reflectasm/AccessClassLoader.java
index c4ed1a3..c153522 100644
--- a/src/com/esotericsoftware/reflectasm/AccessClassLoader.java
+++ b/src/com/esotericsoftware/reflectasm/AccessClassLoader.java
@@ -10,11 +10,15 @@ class AccessClassLoader extends ClassLoader {
 
 	static AccessClassLoader get (Class type) {
 		ClassLoader parent = type.getClassLoader();
-		for (int i = 0, n = accessClassLoaders.size(); i < n; i++) {
-			AccessClassLoader accessClassLoader = accessClassLoaders.get(i);
-			if (accessClassLoader.getParent() == parent) return accessClassLoader;
+		synchronized (accessClassLoaders) {
+			for (int i = 0, n = accessClassLoaders.size(); i < n; i++) {
+				AccessClassLoader accessClassLoader = accessClassLoaders.get(i);
+				if (accessClassLoader.getParent() == parent) return accessClassLoader;
+			}
+			AccessClassLoader accessClassLoader = new AccessClassLoader(parent);
+			accessClassLoaders.add(accessClassLoader);
+			return accessClassLoader;
 		}
-		return new AccessClassLoader(parent);
 	}
 
 	private AccessClassLoader (ClassLoader parent) {