Commit Graph

120 Commits

Author SHA1 Message Date
John Rose 8d462795cb 8027232: Update j.l.invoke code generating class files to use ASM enhancements for invocation of non-abstract methods on ifaces
Co-authored-by: Paul Sandoz <paul.sandoz@oracle.com>
Reviewed-by: ksrini, rfield
2013-11-06 11:31:49 -08:00
Robert Field ee1006e3bd 7194897: JSR 292: Cannot create more than 16 instances of an anonymous class
8027681: Lambda serialization fails once reflection proxy generation kicks in

Co-authored-by: Joel Borggren-Franck <joel.franck@oracle.com>
Co-authored-by: Brian Goetz <brian.goetz@oracle.com>
Reviewed-by: ksrini, briangoetz, jfranck
2013-11-04 10:12:18 -08:00
Robert Field 80ce6f3ec5 8025868: Several lang/LMBD JCK tests fail with java.lang.BootstrapMethodError
Wildcard marker interfaces can cause duplicate implemented interfaces in generated lambda class

Reviewed-by: briangoetz
2013-10-23 15:16:35 -07:00
David Chase c668ed8f33 8022718: Runtime accessibility checking: protected class, if extended, should be accessible from another package
Modify accessibility check; it was muddled about Java vs JVM protection terminology.

Reviewed-by: jrose
2013-10-16 17:55:49 -04:00
Chris Hegarty 3486abb2c7 Merge 2013-10-15 13:54:01 +01:00
Chris Hegarty 766e77499d Merge 2013-10-15 09:27:32 +01:00
Henry Jen ca8301dc7d 8026362: java/lang/invoke/lambda/LogGeneratedClassesTest.java failed on windows, jtreg report Fail to org.testng.SkipException
Reviewed-by: chegar
2013-10-14 17:27:20 -07:00
Henry Jen 1f02e9968e 8023524: Mechanism to dump generated lambda classes / log lambda code generation
Co-authored-by: Brian Goetz <brian.goetz@oracle.com>
Reviewed-by: plevart, mchung, forax, jjb
2013-10-09 09:41:40 -07:00
Chris Hegarty 6088b141e2 Merge 2013-10-03 19:06:43 +01:00
John R Rose be5df968ee 8024438: JSR 292 API specification maintenance for JDK 8
Add wildcard to unreflectConstructor, various clarifications and minor edits

Reviewed-by: mchung, darcy, twisti
2013-10-05 05:30:40 -07:00
John R Rose c5b5f0d6c7 8025112: JSR 292 spec updates for security manager and caller sensitivity
Align CONSTANT_MethodHandle and Lookup.find* API calls, clarify security manager & @CallerSensitive interactions

Reviewed-by: mchung, twisti
2013-10-05 05:30:39 -07:00
John R Rose 32e77eaae1 8001110: method handles should have a collectArguments transform, generalizing asCollector
Promote an existing private method; make unit tests on all argument positions to arity 10 with mixed types

Reviewed-by: twisti, vlivanov
2013-10-05 05:30:39 -07:00
John R Rose 4ea5f818b5 8024599: JSR 292 direct method handles need to respect initialization rules for static members
Align MH semantic with bytecode behavior of constructor and static member accesses, regarding <clinit> invocation.

Reviewed-by: twisti, darcy, abuckley, vlivanov
2013-10-05 05:30:39 -07:00
John R Rose 154969a2bc 8001108: an attempt to use "<init>" as a method name should elicit NoSuchMethodException
Add an explicit check for leading "<", upgrade the unit tests

Reviewed-by: twisti, darcy
2013-10-05 05:30:39 -07:00
John R Rose e4df9dc1ee 8001109: arity mismatch on a call to spreader method handle should elicit IllegalArgumentException
Document error conditions that may occur when calling a "spreader" method handle.  Use IAE in all cases.

Reviewed-by: twisti, vlivanov
2013-10-05 05:30:39 -07:00
John R Rose 77dc59f6ca 8019417: JSR 292 javadoc should clarify method handle arity limits
Clarification of erroneous reading of spec. that led to 7194534

Reviewed-by: twisti, darcy
2013-10-05 05:30:39 -07:00
John R Rose 622186edcb 8001105: findVirtual of Object[].clone produces internal error
Replicate JVM logic for access control that makes Object.clone appear public when applied to an array type.

Reviewed-by: twisti
2013-10-05 05:30:38 -07:00
Chris Hegarty 369c079b32 Merge 2013-08-30 09:37:29 +01:00
David Chase fdf6a159f5 8022701: Accessibility checking: InvocationTargetException is thrown instead of IllegalAccessError
Inserted code to convert specific exceptions, case-by-case, plus a test.

Reviewed-by: jrose, twisti
2013-09-27 13:32:32 -04:00
Christian Thalinger 53b5f75095 8022066: Evaluation of method reference to signature polymorphic method crashes VM
Reviewed-by: jrose
2013-08-12 13:47:21 -07:00
John Rose 59440ee0be 8008688: Make MethodHandleInfo public
A major overhaul to MethodHandleInfo and method handles in general.

Reviewed-by: vlivanov, twisti
2013-09-03 21:42:56 -07:00
Mani Sarkar 4f76f09719 8022749: Convert junit tests to testng in test/java/lang/invoke
Reviewed-by: mduigou, alanb
2013-08-12 12:11:04 -07:00
Christian Thalinger 22d32e76ce 8019184: MethodHandles.catchException() fails when methods have 8 args + varargs
Reviewed-by: jrose
2013-07-03 11:35:06 -07:00
Mandy Chung 5a360a7579 8007035: deprecate public void SecurityManager.checkMemberAccess(Class<?> clazz, int which)
Reviewed-by: jrose, alanb, dfuchs
2013-07-02 15:58:09 -07:00
Robert Field 9151d67365 8016761: Lambda metafactory - incorrect type conversion of constructor method handle
Reviewed-by: jrose
2013-06-26 07:50:04 -07:00
Chris Hegarty 0431243910 8014737: java/lang/invoke/7196190/MHProxyTest.java fails after 8009424
Reviewed-by: twisti
2013-05-22 13:57:59 +01:00
Robert Field 60fae99960 8012028: Metafactory-generated lambda classes should be final
8008941: isSynthetic() returns false for lambda instances

Reviewed-by: mduigou
2013-04-12 20:23:13 -07:00
Vladimir Ivanov 9aba745d56 8009222: java.lang.IllegalArgumentException: not invocable, no method type when attempting to get getter method handle for a static field
Reviewed-by: jrose, twisti
2013-03-06 16:59:42 +04:00
Alan Bateman 9849742625 8006000: TEST_BUG: java/lang/invoke/lambda/LambdaAccessControlTest.java fails intermittently
Reviewed-by: chegar
2013-03-08 12:03:26 +00:00
Robert Field b0dc9de25e 8008770: SerializedLambda incorrect class loader for lambda deserializing class
Current thread's context ClassLoader was used to load class by name, pass class not name in serialization (Thank you Peter Levart for test and prototype. Thank you Sundar and Peter for unofficial reviews)

Reviewed-by: forax
2013-02-26 10:38:58 -08:00
Krystal Mo f5666f9a69 7087570: java.lang.invoke.MemberName information wrong for method handles created with findConstructor
REF_invokeSpecial DMHs (which are unusual) get marked explicitly; tweak the MHI to use this bit

Reviewed-by: jrose, twisti
2013-02-26 11:05:26 +00:00
Robert Field 56baa11720 8008356: Test LambdaSerialization.java failing
Run in /othervm mode

Reviewed-by: ksrini
2013-02-21 15:46:37 -08:00
Robert Field 381aecb7c2 8004970: Implement serialization in the lambda metafactory
Reviewed-by: forax
2013-02-16 12:36:54 -08:00
David Katleman 306cab1006 8004982: JDK8 source with GPL header errors
Reviewed-by: ohair
2012-12-20 16:24:50 -08:00
Robert Field 846f0f2ded 8003881: Prevent lambda implementing inner classes from allowing the creation of new instances
Lambda implementing inner classes now has private constructor (thanks Kumar)

Reviewed-by: ksrini
2012-12-06 21:55:55 -08:00
Jiangli Zhou f3e4fda6ed 7197210: java/lang/invoke/CallSiteTest.java failing on armsflt
Reduce work load and set longer timeout for java/lang/invoke tests.

Reviewed-by: kvn, twisti
2012-11-05 12:51:14 -05:00
Alan Bateman 430592a30e 7197491: update copyright year to match last edit in jdk8 jdk repository
Reviewed-by: chegar, ksrini
2012-11-02 15:50:11 +00:00
Lana Steuck b8265239b8 Merge 2012-10-25 20:32:10 -07:00
Christian Thalinger 01d0ba69ce 8000989: smaller code changes to make future JSR 292 backports easier
Reviewed-by: jrose
2012-10-19 17:04:35 -07:00
John R Rose 0a735e76f6 7196190: Improve method of handling MethodHandles
Bind callers to caller-sensitive methods.

Reviewed-by: twisti, jjh, vlivanov, ahgross
2012-09-20 14:02:55 -07:00
Christian Thalinger e48b871bdc 7194662: JSR 292: PermuteArgsTest times out in nightly test runs
Reviewed-by: kvn
2012-08-28 14:57:43 -07:00
John R Rose 9d9d7877aa 7191102: nightly failures after JSR 292 lazy method handle update (round 3)
Reviewed-by: twisti, kvn
2012-08-17 13:42:25 -07:00
Christian Thalinger 360d512854 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI

Remove assembly code for JDK 7 chained method handles

Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Michael Haupt <michael.haupt@oracle.com>
Reviewed-by: jrose, twisti, mhaupt, forax
2012-07-24 10:47:44 -07:00
John R Rose b9299f283f 7129034: VM crash with a field setter method with a filterArguments
Add null checks before unsafe calls that take a variable base reference; update unit tests

Reviewed-by: kvn, twisti
2012-07-12 00:11:35 -07:00
Abhijit Saha 5d202b67cc Merge 2012-05-21 15:13:13 -07:00
John R Rose 6b14cf6b82 7165628: Issues with java.lang.invoke.MethodHandles.Lookup
Base SecurityManager checks on either of Lookup.lookupClass or caller class; also clarify Lookup access checks.

Reviewed-by: twisti
2012-05-18 20:31:28 -07:00
James Melvin d090606f36 7130404: [macosx] "os.arch" value should be "x86_64" for compatibility with Apple JDK6
On Mac OS X, align system property "os.arch" with Apple legacy JDKs.  Also, improve os.name string matching by using .contains() method instead of .startsWith(). This fix spans multiple repositories.

Reviewed-by: dcubed, phh, ohair, katleman
2012-04-16 18:09:53 -04:00
John R Rose cec41c4c9d 7030453: JSR 292 ClassValue.get method is too slow
Implement ClassValue cooperatively with Class like ThreadLocal with Thread.

Reviewed-by: twisti, mduigou
2012-01-18 17:34:32 -08:00
John R Rose ef856f2fe0 7117167: Misc warnings in java.lang.invoke and sun.invoke.*
Reviewed-by: smarks
2012-01-18 17:34:29 -08:00
Christian Thalinger 82266506f2 7109063: JSR 292: fix for 7085860 is incomplete
Reviewed-by: iveresov, alanb, jrose
2011-11-09 00:46:13 -08:00
Christian Thalinger b8587b3878 7085860: JSR 292: implement CallSite.setTargetNormal and setTargetVolatile as native methods
Reviewed-by: jrose, never
2011-11-02 02:03:30 -07:00
Alan Bateman b1fadc8f75 7089131: test/java/lang/invoke/InvokeGenericTest.java does not compile
Reviewed-by: darcy, jrose
2011-09-10 14:55:14 +01:00
John R Rose 8b3e857aab 7058651: JSR 292 unit tests need a refresh
Enhancements to unit tests.

Reviewed-by: never, twisti
2011-07-16 15:44:33 -07:00
John R Rose 30257105cb 7058630: JSR 292 method handle proxy violates contract for Object methods
Reviewed-by: never, twisti
2011-07-16 15:40:13 -07:00
John R Rose 8eddf40f8b Merge 2011-07-13 01:40:55 -07:00
John R Rose 1f3aab409b 7054590: (JSR-292) MethodHandleProxies.asInterfaceInstance() accepts private/protected nested interfaces
Fix non-compliant logic in MethodHandleProxies, fix invalid private classes in MethodHandlesTest

Reviewed-by: twisti, never
2011-06-14 22:47:12 -07:00
John R Rose 9acf4f0284 7052202: JSR 292: Crash in sun.invoke.util.ValueConversions.fillArray
Fix corner cases involving MethodHandles.permuteArguments with long or double argument lists.

Reviewed-by: twisti, never
2011-06-14 22:47:09 -07:00
John R Rose ad33af1a1c 7051206: JSR 292 method name SwitchPoint.isValid is misleading to unwary users; should be hasBeenInvalidated
Reviewed-by: kvn, never, ysr
2011-06-03 11:20:20 -07:00
John R Rose c0d9c39aa2 7049122: java/lang/invoke/RicochetTest.java with MAX_ARITY=255 in -Xcomp mode overflows code cache
Reduce the scope of the unit test (mark high water mark of testing with @ignore tags)

Reviewed-by: never
2011-06-01 23:56:51 -07:00
John R Rose f32795386e 7050328: (jsr-292) findConstructor throws ExceptionInInitializerError if run under SecurityManager
Wrap system property and reflection accesses under doPrivileged.  Ensure constant pool linkage bypasses the SM as specified.

Reviewed-by: kvn, never
2011-06-01 23:56:47 -07:00
John Coomes 93196c8b51 Merge 2011-05-27 19:03:03 -07:00
John R Rose 025d0aead8 7032323: code changes for JSR 292 EG adjustments to API, through Public Review
API code changes and javadoc changes following JSR 292 Public Review comments, through PFD

Reviewed-by: never
2011-05-26 17:37:36 -07:00
David Katleman 170844d307 7044486: open jdk repos have files with incorrect copyright headers, which can end up in src bundles
Reviewed-by: ohair, trims
2011-05-25 13:32:36 -07:00
John R Rose 8bb387d77e 7044892: JSR 292: API entry points sometimes throw the wrong exceptions or doesn't throw the expected one
Point-fixes for 7038847, 7038860, 7042656, 7042829, 7041853, and several other reports

Reviewed-by: never, kvn
2011-05-17 19:48:19 -07:00
John R Rose 4b011923e2 7032850: MethodHandle.invokeGeneric throws unspecified RuntimeException if parameterized method is called
Implement invocation corner cases, including correct type conversions and interface type enforcement.

Reviewed-by: never
2011-05-17 19:48:14 -07:00
John R Rose 9a58e303d7 6939861: JVM should handle more conversion operations
Integrate JDK code with JVM-supplied ricochet frames.

Reviewed-by: never, twisti
2011-05-12 19:27:49 -07:00
John R Rose eb9632506b 7034977: JSR 292 MethodHandle.invokeGeneric should be renamed MethodHandle.invoke
Rename invokeGeneric to invoke

Reviewed-by: never, twisti
2011-05-12 19:27:33 -07:00
John R Rose 06a8e9b35e 7019529: JSR292: java/dyn/ClassValueTest.java depends on sub-test execution order
Test should not use static variables, because they may contain stale values.

Reviewed-by: twisti
2011-04-09 21:38:40 -07:00
John R Rose e60c5b1af0 6817525: turn on method handle functionality by default for JSR 292
JVM bug 6817525 requires changes to some JDK unit tests; update test invocation flags and "Indify" snapshot

Reviewed-by: kvn, twisti
2011-04-07 22:07:06 -07:00
John R Rose 3718824e69 7012648: move JSR 292 to package java.lang.invoke and adjust names
Package and class renaming only; delete unused methods and classes; add @since tags; no code changes

Reviewed-by: twisti
2011-03-23 23:02:31 -07:00