Commit Graph

183 Commits

Author SHA1 Message Date
Igor Ignatyev
4fdcaf04d8 8038186: [TESTBUG] improvements of test j.l.i.MethodHandles
Reviewed-by: iveresov, twisti, vlivanov
2014-03-29 12:29:21 +04:00
Vladimir Ivanov
9d59eb2da1 8036117: MethodHandles.catchException doesn't handle VarargsCollector right (8034120 failed)
Reviewed-by: jrose, twisti
2014-03-11 19:54:33 +04:00
Robert Field
2e148fb065 8035776: Consistent Lambda construction
Reviewed-by: ahgross, briangoetz, dlsmith
2014-03-04 15:33:30 -08:00
Vladimir Ivanov
856f5c5823 8027827: Improve performance of catchException combinator
8034120: MethodHandles.catchException doesn't handle VarargsCollector right

Reviewed-by: lagergren, psandoz, jrose
2014-03-01 02:05:53 +04:00
Vladimir Ivanov
56bce7519d 8032585: JSR292: IllegalAccessError when attempting to invoke protected method from different package
8033278: Missed access checks for Lookup.unreflect* after 8032585

Reviewed-by: jrose, twisti
2014-02-21 17:12:23 +04:00
Lana Steuck
657b9db1ba 8029235: Update copyright year to match last edit in jdk8 jdk repository for 2013
Updated files with 2011, 2012 and 2013 years according to the file's last updated date

Reviewed-by: tbell, lancea, chegar
2013-12-26 12:04:16 -08:00
Daniel Smith
aa81fd4ead 8032697: Issues with Lambda
Reviewed-by: ahgross, briangoetz, dlsmith, rfield
2014-01-28 17:22:07 -08:00
Robert Field
1b02cd3f12 8032711: Issue with Lambda in handling
8032704: Issues with lib perm in Lambda

Reviewed-by: jrose, ahgross, briangoetz
2014-01-28 12:53:56 -08:00
Vladimir Ivanov
3621fb4643 8031502: JSR292: IncompatibleClassChangeError in LambdaForm for CharSequence.toString() method handle type converter
Reviewed-by: sundar, lagergren, drchase
2014-01-15 20:48:44 +04:00
Lana Steuck
1a633e63a9 Merge 2013-11-15 07:14:23 -08:00
Joel Borggrén-Franck
4163fbdc49 8028055: (reflect) invoking Method/Constructor in anonymous classes breaks with -Dsun.reflect.noInflation=true
Reviewed-by: briangoetz
2013-11-14 12:17:37 +01:00
Sergey Bylokhov
9ab430a0d2 8027696: Incorrect copyright header in the tests
Reviewed-by: alanb, malenkov, mullan
2013-11-12 20:24:25 +04:00
Vladimir Ivanov
ee23c1f412 8027823: catchException combinator fails with 9 argument target
Reviewed-by: jrose
2013-11-09 04:21:28 +04:00
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