log

age author description
Tue, 19 Dec 2017 11:21:23 +0900 Shinji KONO cyclic dependency ... default tip java9-try
Tue, 19 Dec 2017 09:05:20 +0900 Shinji KONO add modules
Mon, 06 Feb 2017 18:03:21 -0800 nastaran Extended the model class sun.misc.SharedSecrets to make it compatible with the updates in jdk8u121. The update caused the test gov.nasa.jpf.test.java.io.ObjectStreamTest to fail.
Wed, 25 May 2016 10:43:50 -0700 nastaran Updated the model class sun.misc.SharedSecrets to make it compatible with the recent updates in jdk8u75. New methods added to sun.misc.SharedSecrets are used by clinit in java.io.ObjectInputStream which caused JPF to throw java.lang.NoSuchMethodException.
Wed, 25 May 2016 10:00:18 -0700 nastaran Fixed a bug in AtomicLong native peer.
Fri, 16 Oct 2015 15:55:08 -0700 nastaran Fixed a bug in the implementation for lambda support. Now, every invocation of invokedynamic that is associated with a lamabda expression including free variables leads to a new instance of a function object.
Thu, 25 Jun 2015 13:20:50 -0700 nastaran Provided support for double colon operator used for lamabda expressions. Fixed a bug related to generating names for funcation object classes (by supporting double colon operator, a new stragety needed to generate unique names for function objects. To achive that the bootstrap ids are incorporated into names). Finally modified the method that retrieves the SAM from functional interfaces.
Mon, 11 May 2015 12:17:18 -0700 Peter Mehlitz fixed the missing class init status update for native clinits. Since we moved
Mon, 04 May 2015 22:10:33 -0700 Peter Mehlitz moved NonShared + checker listener over from old jpf-aprop. Note this is still a JVM specific listener but it could be VM agnostic
Wed, 22 Apr 2015 15:54:26 -0700 Peter Mehlitz added class name to warning for ambiguous native methods (without MJI signatures)
Tue, 21 Apr 2015 00:34:15 -0700 Peter Mehlitz the fix I would have liked to avoid - apparently hotspot internally does nested locking during class init, which can lead to deadlocks such as described in http://ternarysearch.blogspot.ru/2013/07/static-initialization-deadlock.html. Actually, it's not a regular deadlock since core dumps still list the threads as runnable, althouth it doesn't seem to be a livelock either. In any case, it can be simulated by nested locking and clinit execution, and it is such a serious defect that we want to be able to catch it. The general mechanism is to replace the disparate (but properly ordered) direct clinit calls of the generic ClassInfo.initializeClass() with a single sythetic method that includes all required locking (bottom up), clinit calls / class status change (top down), and unlocking (top down). We also need to add a synthetic insn to defer changing the class status of classes that don't have clinits(), or otherwise the correct lock/unlock order will not amount to anything if the hierarchy is entered through one of the clinit-absent classes. Now we get proper deadlocks if there are concurrent cyclic dependencies during class resolution. However, this can be such a state exploder that we certainly don't want this as the default behavior, especially since it probably is hotspot specific. Nested class init locking is therefore controlled by jvm.nested_init and respective jvm.nested_init.include/exclude options. Added a NestedInitTest to demonstrate use. Thanks to Lilia Abdulina for bringing this long forgotten issue up
Wed, 15 Apr 2015 22:40:21 -0700 Peter Mehlitz streamlined class init, which was a mixed case of registerClass()/initializeClass() and pushRequiredClinits(). Now it is a single initializeClass(ti) method which combines the previous initializeClass(), pushRequiredClinits() and pushClinit() methods. The reason for combining these is the forthcoming replacement of separately locked clinits from different DirectCallStackFrames with a single synthetic frame that calls clinits from nested synchronized blocks. This is required to model hotspot, which does cause deadlocks with concurrent init of classes that cause subclass init during their clinit executions.
Tue, 14 Apr 2015 15:01:25 -0700 Peter Mehlitz fixed JPF_.._Verify.registerChoiceGenerator() to not break and ignore the
Fri, 10 Apr 2015 20:53:11 -0700 Peter Mehlitz reshuffled Event hierarchy, introducing SystemEvent, with CheckEvent and
Mon, 06 Apr 2015 12:08:03 -0700 Peter Mehlitz changed EventForest to derive from EventTree, which kills three birds with one