/*NOTREMOVE. *Copyright(c)* *DONOTALTERORREMOVECOPYRIGHTNOTICESORTHISFILEHEADER. * *Thiscodeisfreesoftware;youcanredistributeitand/ormodifyit *underthe;withouttheimpliedwarrantyofMERCHANTABILITYor publishedbytheFreeFreeSoftwareFoundation. * *Thiscodeisdistributedinthehopethatitwillbeuseful,butWITHOUT *ANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYor YoureceivedGeneralPublicLicense *version2formoredetails(acopyisincludedintheLICENSEfilethat *accompaniedthiscode). * *YoushouldhavereceivedacopyoftheGNUGeneralPublicLicenseversion *2alongwiththiswork;ifnot,writetotheFreeSoftwareFoundation, *Inc.,51Franklin..ifyouadditionalinformationany
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 ** *orvisitwww.oracle.comifyouneedadditionalinformationorhaveany*librarytestjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 *.
*/
/* *@test bug4660756 :Needclearsourceafteraredefineclass @/jdkcomsun//RedefineTTYLineNumberjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 *@library/testjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *@compile49System..println("statementprintedby")java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81 othervmjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
*/
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
tputAnalyzer
bp1Reply..() importbp1LineparseLineNum)
import..regex; import java.util.regex.Pattern;
.(JdbCommand()
publicvoid B() {
System.(" :@ ")
}
()
Systemprintln printed jdb
}
/java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
RedefineTTYLineNumberTarguntitled41= RedefineTTYLineNumberTarg
untitled41.A();
;
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
// parses line number from the jdb "Breakpoint hit" message privatestaticint parseLineNum(String s) { // Breakpoint hit: "thread=main", RedefineTTYLineNumberTarg.A(), line=49 bci=0 // 49 System.out.println("expected statement printed by jdb");
Matcher m = Pattern.compile("\\bline=(\\d+)\\b").matcher(s); if (!m.find()) { thrownew RuntimeException("could not parse line number");
} return Integer.parseInt(m.group(1));
}
privatevoid verifyBPSource(int n, String reply) { if (!reply.contains("expected statement printed by jdb")) { thrownew RuntimeException("Breakpoint source (" + n + ") is not correct");
}
}
new OutputAnalyzer(getDebuggeeOutput())
.shouldNotContain("Internal exception:"); // 1 line is deleted before RedefineTTYLineNumberTarg.A(), // so bp2Line should be equals bp1Line-1
Asserts.assertEquals(bp2Line, bp1Line - 1, "BP line numbers");
verifyBPSource(1, bp1Reply); // verify source code is printed correctly
verifyBPSource(2, bp2Reply);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.