protected String getResolutionFailureMessage() { String defaultMessage = Msg.BUNDLE_UNRESOLVED_EXCEPTION;  if (!Debug.DEBUG) { return defaultMessage; } if (runtimeResolveError != null) { return runtimeResolveError; }
public String getResolutionFailureMessage() {
	protected String getResolutionFailureMessage() {		String defaultMessage = Msg.BUNDLE_UNRESOLVED_EXCEPTION;		// don't spend time if debug info is not needed		if (!Debug.DEBUG) {			return defaultMessage;		}		if (runtimeResolveError != null) {			return runtimeResolveError; // do not null this field out until a successful resolve is done.		}		BundleDescription bundleDescription = getBundleDescription();		if (bundleDescription == null) {			return defaultMessage;		}		// just a sanity check - this would be an inconsistency between the		// framework and the state		if (bundleDescription.isResolved()) {			throw new IllegalStateException(Msg.BUNDLE_UNRESOLVED_STATE_CONFLICT);		}		VersionConstraint[] unsatisfied = framework.adaptor.getPlatformAdmin().getStateHelper().getUnsatisfiedConstraints(bundleDescription);		if (unsatisfied.length == 0) {			return Msg.BUNDLE_UNRESOLVED_NOT_CHOSEN_EXCEPTION;		}		StringBuffer missing = new StringBuffer();		for (int i = 0; i < unsatisfied.length; i++) {			if (unsatisfied[i] instanceof ImportPackageSpecification) {				missing.append(NLS.bind(Msg.BUNDLE_UNRESOLVED_PACKAGE, toString(unsatisfied[i])));			} else if (unsatisfied[i] instanceof HostSpecification) {				missing.append(NLS.bind(Msg.BUNDLE_UNRESOLVED_HOST, toString(unsatisfied[i])));			} else {				missing.append(NLS.bind(Msg.BUNDLE_UNRESOLVED_BUNDLE, toString(unsatisfied[i])));			}			missing.append(',');		}		missing.deleteCharAt(missing.length() - 1);		return NLS.bind(Msg.BUNDLE_UNRESOLVED_UNSATISFIED_CONSTRAINT_EXCEPTION, missing.toString());	}