if(exceptionTypes == null)
if(exceptionTypes == null || exceptionTypes.length == 0)
	MethodInfoItem(DataInputStream in) throws IOException	{	    super(in);	    int attributes_count = in.readUnsignedShort();            String[] exceptions = null;	    for(int i = 0; i < attributes_count; i++)	    {		int attribute_name_index = in.readUnsignedShort();		int attribute_length = in.readInt();		String attributeName = getUtf8String(attribute_name_index);		if(attributeName.equals("Exceptions"))		{		    int count = in.readUnsignedShort();		    exceptions = new String[count];		    for(int j = 0; j < count; j++)		    {			exceptions[j] = getClassConstantName(in.readUnsignedShort());		    }		}		else if(attributeName.equals("Deprecated"))		{		    this.deprecated = true;		}                else if(attributeName.equals("Signature"))                {                    int signature_index = in.readUnsignedShort();                    String signature = getUtf8String(signature_index);                    //System.out.println(signature);                    MethodSignatureParser p = new MethodSignatureParser(this, signature);                    typeParameters = p.getTypeParameters();                    parameterTypes = p.getParameterTypes();                    returnType = p.getReturnType();                    exceptionTypes = p.getExceptionTypes();                }		else		{		    skip(in, attribute_length);		}	    }            if(exceptionTypes == null)            {	        if(exceptions == null)                {		    exceptionTypes = new RefType[0];                }                else                {                    exceptionTypes = new RefType[exceptions.length];                    for(int i = 0; i < exceptions.length; i++)                    {                        exceptionTypes[i] = new ClassType(exceptions[i]);                    }                }            }            if(parameterTypes == null)            {                String sig = getUtf8String(descriptor_index);                ArrayList l = new ArrayList();                for(int i = 1; sig.charAt(i) != ')'; i++)                {                    int start = i;                    while(sig.charAt(i) == '[')                        i++;                    if(sig.charAt(i) == 'L')                        i = sig.indexOf(';', i);                    l.add(Type.fromNonGenericSig(sig.substring(start, i + 1)));                }                parameterTypes = new Type[l.size()];                l.toArray(parameterTypes);            }            if(returnType == null)            {                String sig = getUtf8String(descriptor_index);                returnType = Type.fromNonGenericSig(sig.substring(sig.lastIndexOf(')') + 1));            }            if(exceptionTypes == null)            {                exceptionTypes = new ClassType[exceptions.length];                for (int i = 0; i < exceptions.length; i++)                 {                    exceptionTypes[i] = new ClassType(exceptions[i]);                }            }	}