public static void clean(ResultSet result) throws SQLException {
		if (!activeResults.containsKey(result))
			return;
		WeakReference<PreparedStatement> ref = activeResults.get(result);
		boolean removeStatement = true;
		for (Entry<ResultSet, WeakReference<PreparedStatement>> ent : activeResults
				.entrySet()) {
			if (!ent.getKey().equals(result) && ent.getValue().equals(ref))
				removeStatement = false;
		}

		result.close();
		if (removeStatement) {
			ref.get().close();
			activeStatements.remove(ref.get());
		}
		activeResults.remove(result);
		System.gc();
	}