in src/main/java/org/apache/bcel/verifier/VerifierAppFrame.java [291:345]
private void verify() throws ClassNotFoundException {
setTitle("PLEASE WAIT");
final Verifier v = VerifierFactory.getVerifier(currentClass);
v.flush(); // Don't cache the verification result for this class.
VerificationResult vr;
vr = v.doPass1();
if (vr.getStatus() == VerificationResult.VERIFIED_REJECTED) {
pass1TextPane.setText(vr.getMessage());
pass1TextPane.setBackground(Color.red);
pass2TextPane.setText("");
pass2TextPane.setBackground(Color.yellow);
pass3aTextPane.setText("");
pass3aJList.setListData(ArrayUtils.EMPTY_STRING_ARRAY);
pass3aTextPane.setBackground(Color.yellow);
pass3bTextPane.setText("");
pass3bJList.setListData(ArrayUtils.EMPTY_STRING_ARRAY);
pass3bTextPane.setBackground(Color.yellow);
} else { // Must be VERIFIED_OK, Pass 1 does not know VERIFIED_NOTYET
pass1TextPane.setBackground(Color.green);
pass1TextPane.setText(vr.getMessage());
vr = v.doPass2();
if (vr.getStatus() == VerificationResult.VERIFIED_REJECTED) {
pass2TextPane.setText(vr.getMessage());
pass2TextPane.setBackground(Color.red);
pass3aTextPane.setText("");
pass3aTextPane.setBackground(Color.yellow);
pass3aJList.setListData(ArrayUtils.EMPTY_STRING_ARRAY);
pass3bTextPane.setText("");
pass3bTextPane.setBackground(Color.yellow);
pass3bJList.setListData(ArrayUtils.EMPTY_STRING_ARRAY);
} else { // must be Verified_OK, because Pass1 was OK (cannot be Verified_NOTYET).
pass2TextPane.setText(vr.getMessage());
pass2TextPane.setBackground(Color.green);
final JavaClass jc = Repository.lookupClass(currentClass);
/*
* boolean all3aok = true; boolean all3bok = true; String all3amsg = ""; String all3bmsg = "";
*/
final String[] methodNames = new String[jc.getMethods().length];
Arrays.setAll(methodNames, i -> jc.getMethods()[i].toString().replace('\n', ' ').replace('\t', ' '));
pass3aJList.setListData(methodNames);
pass3aJList.setSelectionInterval(0, jc.getMethods().length - 1);
pass3bJList.setListData(methodNames);
pass3bJList.setSelectionInterval(0, jc.getMethods().length - 1);
}
}
final String[] msgs = v.getMessages();
messagesTextPane.setBackground(msgs.length == 0 ? Color.green : Color.yellow);
final StringBuilder allmsgs = new StringBuilder();
for (int i = 0; i < msgs.length; i++) {
msgs[i] = msgs[i].replace('\n', ' ');
allmsgs.append(msgs[i]).append("\n\n");
}
messagesTextPane.setText(allmsgs.toString());
setTitle(currentClass + " - " + Verifier.NAME);
}