corda/test
Joel Dice 7a4cae0dde load bootstrap classes in findInterfaceMethod
In afbd4ff, I made a low-risk, but very specific fix for a more
general problem: "bootstrap" classes (i.e. classes which the VM has
built-in knowledge of) need to be loaded from the classpath before any
of their methods are called.  Based on recent testing, I found there were
more cases than I previously thought where the VM tries to call methods on
"unloaded" bootstrap classes, so we needed a more general solution to
the problem.

This commit addresses it by closing the last (known) loophole by which
methods might be called on bootstrap classes: invokeinterface, and its
helper method findInterfaceMethod.  The fix is to check for bootstrap
classes in findInterfaceMethod and load the full versions if
necessary.  This process may lead to garbage collection and/or thrown
exceptions, which made me nervous about cases of direct or indirect
calls to findInterfaceMethod not expecting those events, which is why
I hadn't used that approach earlier.  However, it turns out there were
only a few places that made non-GC-safe calls to findInterfaceMethod,
and a bit of code rearrangement fixed that.
2015-02-06 13:51:32 -07:00
..
avian match Java's schizophrenic concept of inner class access modifiers 2014-03-06 16:17:43 -07:00
extra consolidate duplicate Cell classes 2014-03-24 10:47:37 -06:00
AllFloats.java refactor code responsible for moving data in the compiler 2009-11-27 21:15:12 -07:00
Annotations.java Test complicated annotation constructs 2013-11-27 10:39:28 -06:00
ArrayDequeTest.java Renamed these two files to indicate they are not actual tests, but rather just to help other tests 2014-03-19 10:54:06 -06:00
ArraysTest.java implement Arrays.deepEquals and Objects.deepEquals 2014-01-30 17:12:34 -07:00
AtomicTests.java Reduced code duplication by combining these three very similar tests into a single file. 2014-01-03 16:24:11 -07:00
BitsetTest.java Fixed issue where BitSet didn't handle a range of 64 bits correctly on bulk operations - now just return the predefined MASK which has all the bits set when requesting that all the bits be set. 2012-07-06 23:33:05 -06:00
Buffers.java various refinements to network implementation 2014-03-31 15:22:14 -06:00
Busy.java make sure a busy-waiting loop can't block the GC (and hence the whole VM) 2013-12-13 10:39:36 -07:00
ci.sh Add mac publishing + testing 2015-01-05 12:01:56 -07:00
Collections.java Implement Collections#sort 2013-11-04 12:08:22 -06:00
CompletionServiceTest.java fix Completeion/Completion misspelling 2014-03-12 10:44:24 -06:00
ConcurrentHashMapTest.java rename Concurrent to ConcurrentHashMapTest 2014-03-12 13:04:20 -06:00
Datagrams.java various refinements to network implementation 2014-03-31 15:22:14 -06:00
Dates.java fix Dates test for openjdk and stub out java.util.TimeZone 2013-11-07 20:44:02 -07:00
DefineClass.java uncomment testStatic call in DefineClass 2011-03-15 17:33:09 -06:00
DequeHelper.java Renamed these two files to indicate they are not actual tests, but rather just to help other tests 2014-03-19 10:54:06 -06:00
DivideByZero.java throw ArithmeticException on divide-by-zero 2010-12-19 17:47:21 -07:00
Enums.java Implemented proper enum toString() behavior and an enum test. it should 2007-09-26 12:59:18 -06:00
EnumSetTest.java Adding EnumSet, which is backed by a speedy BitSet. 2012-07-02 14:28:51 -06:00
Exceptions.java only wrap Exceptions in ExceptionInInitializerErrors, not Errors 2014-07-10 13:43:10 -06:00
FileOutput.java close FileInputStream before deleting file in FileOutput test 2011-01-17 10:33:43 -07:00
Files.java Delete temporary test file afterwards 2013-11-26 16:05:14 -06:00
Finalizers.java run java finalizers in a separate thread to guarantee no application locks are held when doing so 2009-08-24 17:51:31 -06:00
Floats.java fix NaN handling in floating point comparisons 2013-04-03 16:19:33 -06:00
FutureTaskTest.java Added implementation and tests for FutureTask. 2014-03-10 10:53:49 -06:00
GC.java fix custom-classloader-related concurrency problems and other bugs 2010-09-16 20:49:02 -06:00
Hello.java revert accidentally-committed change to Hello.java 2008-10-21 17:42:05 -06:00
Initializers.java fix ARM stack unwinding (part 2) 2011-02-20 13:49:40 -07:00
Integers.java Test the newly-introduced Integer#decode method 2013-10-25 15:32:33 -05:00
jni.cpp bulk, global reformat 2014-07-11 13:25:22 -06:00
JNI.java fix JNIEnv::FindClass calls from JNI_OnLoad for all supported class libraries 2014-07-01 10:53:26 -06:00
LazyLoading.java fix jdk-test failures 2013-12-06 19:30:04 -07:00
LinkedBlockingQueueTest.java Fix ci.sh tests on arm qemu systems 2014-04-29 14:14:44 -06:00
List.java Fix an off-by-1 error in the remove method. 2012-07-06 14:03:56 -06:00
Logging.java fix non-Avian classpath build regression introduced in 7a768f2 2014-05-21 10:46:52 -06:00
Longs.java fix 64-bit shifts on x86_32 (part 2) 2012-09-03 08:44:13 -06:00
MemoryRamp.java test/MemoryRamp.java: demonstrate slow multithreaded memory access. 2014-06-04 18:00:06 +02:00
MessageFormatTest.java Implement single quotes in MessageFormat 2014-01-28 09:56:25 -07:00
Misc.java update to more recent version of Android class library 2014-08-21 13:42:49 -06:00
NullPointer.java fix broken interpreter build due to out-of-order class initialization 2015-01-15 17:13:46 -07:00
Observe.java implement java/util/Observ* 2014-01-20 10:17:22 -07:00
OutOfMemory.java rework VM exception handling; throw OOMEs when appropriate 2010-12-27 15:55:23 -07:00
Processes.java implement Process.destroy 2011-11-03 12:30:51 -06:00
Proxies.java support runtime-visible annotations and java.lang.reflect.Proxy 2009-09-18 18:01:54 -06:00
QueueHelper.java Renamed these two files to indicate they are not actual tests, but rather just to help other tests 2014-03-19 10:54:06 -06:00
References.java fix handling of reachable, moved weak references in postVisit 2009-09-01 17:23:30 -06:00
Reflection.java Added some tests for class types 2014-10-11 23:50:53 +04:00
Regex.java add support for using the OpenJDK 8 class library 2014-04-23 15:36:56 -06:00
Serialize.java Do not test java.util.TreeMap's serialization in the Serialize test 2013-12-06 19:24:41 -06:00
Simple.java fix Exceptions test for amd64 2008-11-02 15:25:51 -07:00
Sockets.java Stop using *Critical functions in throwIOException 2014-04-24 15:23:05 -06:00
StackOverflow.java fix StackOverflowError stack walking in tails=true builds 2014-03-14 09:59:04 -06:00
StringBuilderTest.java Adding a couple simple tests around the StringBuilder 2014-07-24 13:47:31 -06:00
Strings.java fix portability problem in Strings test 2014-05-09 16:38:33 -06:00
Subroutine.java test line number table generation in subroutines 2014-05-30 23:40:24 -06:00
Switch.java implement tableswitch and lookupswitch instructions plus run loop bugfixes and tweaks 2007-08-12 20:52:12 -06:00
test.sh fix openjdk and android builds when continuations=true 2014-03-21 07:38:29 -06:00
Threads.java load bootstrap classes in findInterfaceMethod 2015-02-06 13:51:32 -07:00
TimeUnitConversions.java Fix for spelling error joel pointed out, as well as a simple unit test around the TimeUnit conversions 2013-12-24 11:30:50 -07:00
Trace.java use wait/notifyAll too avoid starvation in Trace test 2011-02-26 12:40:54 -07:00
Tree.java modify TreeSet.MyIterator to support both ascending and descending iteration 2013-12-04 17:52:27 -07:00
UnsafeTest.java fix crash when calling Class.getDeclaredMethods using the OpenJDK class library 2015-01-22 12:02:28 -07:00
UrlTest.java include leading slash in path when parsing URLs in URLStreamHandler 2012-02-18 15:14:16 -07:00
Zip.java fix access violation introduced in last commit 2011-09-14 13:27:17 -06:00
ZipOutputStreamTest.java Add tests for creating zip files using both write methods 2013-07-08 14:50:17 -06:00