public static Iterator<String> getGenericSignatureIterator(Method target) {
		try {
			GenericSignatureParser parser = null;
			String genericSignature = null;
			for (Attribute a : target.getAttributes()) {
				if (a instanceof Signature) {

					Signature sig = (Signature) a;
					if (genericSignature != null) {
						if (!genericSignature.equals(sig.getSignature())) {
							if (false) {
								System.out.println("Inconsistent signatures: ");
								System.out.println(genericSignature);
								System.out.println(sig.getSignature());
							}
							return null; // we've seen two inconsistent
											// signatures
						}
						continue;
					}

					genericSignature = sig.getSignature();
					if (compareSignatures(target.getSignature(), genericSignature))
						parser = new GenericSignatureParser(genericSignature);
				}
			}
			Iterator<String> iter = parser == null ? null : parser.parameterSignatureIterator();
			return iter;
		} catch (RuntimeException e) {
		} // degrade gracefully
		return null;
	}