test/compiler/classUnloading/anonymousClass/TestAnonymousClassUnloading.java
Print this page
*** 21,32 ****
* questions.
*/
import sun.hotspot.WhiteBox;
import sun.misc.Unsafe;
- import sun.misc.IOUtils;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLConnection;
/*
--- 21,32 ----
* questions.
*/
import sun.hotspot.WhiteBox;
import sun.misc.Unsafe;
+ import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLConnection;
/*
*** 107,117 ****
*/
static public void main(String[] args) throws Exception {
// (1) Load an anonymous version of this class using the corresponding Unsafe method
URL classUrl = TestAnonymousClassUnloading.class.getResource("TestAnonymousClassUnloading.class");
URLConnection connection = classUrl.openConnection();
! byte[] classBytes = IOUtils.readFully(connection.getInputStream(), connection.getContentLength(), true);
Class<?> anonymousClass = UNSAFE.defineAnonymousClass(TestAnonymousClassUnloading.class, classBytes, null);
// (2) Make sure all paths of doWork are profiled and compiled
for (int i = 0; i < 100000; ++i) {
doWork(anonymousClass);
--- 107,123 ----
*/
static public void main(String[] args) throws Exception {
// (1) Load an anonymous version of this class using the corresponding Unsafe method
URL classUrl = TestAnonymousClassUnloading.class.getResource("TestAnonymousClassUnloading.class");
URLConnection connection = classUrl.openConnection();
!
! int length = connection.getContentLength();
! byte[] classBytes = connection.getInputStream().readAllBytes();
! if (length != -1 && classBytes.length != length) {
! throw new IOException("Expected:" + length + ", actual: " + classBytes.length);
! }
!
Class<?> anonymousClass = UNSAFE.defineAnonymousClass(TestAnonymousClassUnloading.class, classBytes, null);
// (2) Make sure all paths of doWork are profiled and compiled
for (int i = 0; i < 100000; ++i) {
doWork(anonymousClass);