e.printStackTrace();
	public ConditionalPermissionInfo addConditionalPermissionInfo(ConditionInfo[] conds, PermissionInfo[] perms) {		ConditionalPermissionInfoImpl condPermInfo = new ConditionalPermissionInfoImpl(conds, perms);		synchronized (condPerms) {			condPerms.add(condPermInfo);			try {				storage.serializeConditionalPermissionInfos(condPerms);			} catch (IOException e) {				framework.publishFrameworkEvent(FrameworkEvent.ERROR, framework.systemBundle, e);			}		}		AbstractBundle bundles[] = framework.getAllBundles();		for (int i = 0; i < bundles.length; i++) {			AbstractBundle bundle = bundles[i];			if (bundle.domain == null) {				continue;			}			BundleCombinedPermissions bcp = (BundleCombinedPermissions) bundle.domain.getPermissions();			/* TODO I don't think we need this check */			if (perms == null) {				continue;			}			bcp.checkConditionalPermissionInfo(condPermInfo);		}		return condPermInfo;	}