agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 781,809 ****
buf.endTable();
}
});
// display exception table for this method
! TypeArray exceptionTable = method.getExceptionTable();
! // exception table is 4 tuple array of shorts
! int numEntries = (int)exceptionTable.getLength() / 4;
if (numEntries != 0) {
buf.h4("Exception Table");
buf.beginTable(1);
buf.beginTag("tr");
buf.headerCell("start bci");
buf.headerCell("end bci");
buf.headerCell("handler bci");
buf.headerCell("catch type");
buf.endTag("tr");
! for (int e = 0; e < numEntries; e += 4) {
buf.beginTag("tr");
! buf.cell(Integer.toString(exceptionTable.getIntAt(e)));
! buf.cell(Integer.toString(exceptionTable.getIntAt(e + 1)));
! buf.cell(Integer.toString(exceptionTable.getIntAt(e + 2)));
! short cpIndex = (short) exceptionTable.getIntAt(e + 3);
ConstantPool.CPSlot obj = cpIndex == 0? null : cpool.getSlotAt(cpIndex);
if (obj == null) {
buf.cell("Any");
} else if (obj.isMetaData()) {
buf.cell(obj.getSymbol().asString().replace('/', '.'));
--- 781,810 ----
buf.endTable();
}
});
// display exception table for this method
! boolean hasException = method.hasExceptionTable();
! if (hasException) {
! ExceptionTableElement[] exceptionTable = method.getExceptionTable();
! int numEntries = exceptionTable.length;
if (numEntries != 0) {
buf.h4("Exception Table");
buf.beginTable(1);
buf.beginTag("tr");
buf.headerCell("start bci");
buf.headerCell("end bci");
buf.headerCell("handler bci");
buf.headerCell("catch type");
buf.endTag("tr");
! for (int e = 0; e < numEntries; e ++) {
buf.beginTag("tr");
! buf.cell(Integer.toString(exceptionTable[e].getStartPC()));
! buf.cell(Integer.toString(exceptionTable[e].getEndPC()));
! buf.cell(Integer.toString(exceptionTable[e].getHandlerPC()));
! short cpIndex = (short) exceptionTable[e].getCatchTypeIndex();
ConstantPool.CPSlot obj = cpIndex == 0? null : cpool.getSlotAt(cpIndex);
if (obj == null) {
buf.cell("Any");
} else if (obj.isMetaData()) {
buf.cell(obj.getSymbol().asString().replace('/', '.'));
*** 813,822 ****
--- 814,824 ----
buf.endTag("tr");
}
buf.endTable();
}
+ }
// display constant pool hyperlink
buf.h3("Constant Pool");
buf.append(genConstantPoolLink(cpool));
buf.genHTMLEpilogue();