int priority = LOW_PRIORITY; if (implementsSerializableDirectly || seenTransientField) priority--; if (isSerializable <= 0.1) priority--;
double bias = 0.0; if (!getMethodName().equals("<init>")) bias = 1.0; int priority = computePriority(isSerializable, bias);
	public void sawOpcode(int seen) {		if (seen == PUTFIELD) {			String nameOfClass = getClassConstantOperand();			String nameOfField = getNameConstantOperand();			if ( getClassName().equals(nameOfClass) &&						fieldsThatMightBeAProblem.containsKey(nameOfField)) {			try {			OpcodeStack.Item first = stack.getStackItem(0);					JavaClass classStored = first.getJavaClass();					double isSerializable = Analyze							.isDeepSerializable(classStored);					if (isSerializable <= 0.2) {						XField f = fieldsThatMightBeAProblem.get(nameOfField);						String sig = f.getSignature();						// System.out.println("Field signature: " + sig);						// System.out.println("Class stored: " +						// classStored.getClassName());						String genSig = "L"								+ classStored.getClassName().replace('.', '/')								+ ";";						if (!sig.equals(genSig)) {							int priority = LOW_PRIORITY;							if (implementsSerializableDirectly									|| seenTransientField)								priority--;							if (isSerializable <= 0.1)								priority--;							fieldWarningList.add(new BugInstance(this,									"SE_BAD_FIELD_STORE", priority).addClass(									getThisClass().getClassName()).addField(f)									.addClass(classStored).addSourceLine(this));						}					}				} catch (Exception e) {					// ignore it				}			}		        		}		 stack.sawOpcode(this,seen);	}