RFR (S): 8000999: backport of JSR 292 to 7u
Christian Thalinger
christian.thalinger at oracle.com
Wed Oct 17 15:45:00 UTC 2012
On Oct 16, 2012, at 8:59 PM, David Holmes <david.holmes at oracle.com> wrote:
> Hi Christian,
>
> Is this just a preliminary review request, as actual backport requests have to go to the jdk7u-dev mailing list for approval.
Kind of. I will pass on the reviewed changes to John Coomes to be integrated in a 7u repository to do PIT. But I guess I have to send a backport request to jdk7u-dev as well.
>
> And are these all just bug fixes, or are there any API/spec changes involved?
No API changes. Just bug fixes (which replaced the whole implementation behind the API). The HotSpot changes are already in HS24.
-- Chris
>
> David
>
> On 17/10/2012 5:54 AM, Christian Thalinger wrote:
>> http://cr.openjdk.java.net/~twisti/8000999
>>
>> 8000999: backport of JSR 292 to 7u
>> Reviewed-by:
>>
>> This is an umbrella bug for these changes (which are backported in one
>> changeset):
>>
>> 6983728: JSR 292 remove argument count limitations
>> 7128512: Javadoc typo in java.lang.invoke.MethodHandle
>> 7117167: Misc warnings in java.lang.invoke and sun.invoke.*
>> 7129034: VM crash with a field setter method with a filterArguments
>> 7087658: MethodHandles.Lookup.findVirtual is confused by interface methods that are multiply inherited
>> 7127687: MethodType leaks memory due to interning
>> 7023639: JSR 292 method handle invocation needs a fast path for compiled code
>> 7188911: nightly failures after JSR 292 lazy method handle update (round 2)
>> 7190416: JSR 292: typo in InvokerBytecodeGenerator.getConstantPoolSize
>> 7191102: nightly failures after JSR 292 lazy method handle update (round 3)
>> 7194612: api/java_lang/invoke/MethodHandles/Lookup/index.html#ExceptionsTests[findVirtualNSME] fails w/ -esa
>> 7194662: JSR 292: PermuteArgsTest times out in nightly test runs
>>
>> The backport is just copying over the files from JDK 8. That's why the webrev is so big and pretty useless. The real changes between 8 and 7 are these:
>>
>> diff -Nur jdk8/src/share/classes/java/lang/invoke/MethodHandleStatics.java jdk7u/src/share/classes/java/lang/invoke/MethodHandleStatics.java
>> --- jdk8/src/share/classes/java/lang/invoke/MethodHandleStatics.java 2012-10-15 12:21:52.806052959 -0700
>> +++ jdk7u/src/share/classes/java/lang/invoke/MethodHandleStatics.java 2012-10-16 10:48:29.728257304 -0700
>> @@ -94,10 +94,14 @@
>>
>> // handy shared exception makers (they simplify the common case code)
>> /*non-public*/ static InternalError newInternalError(String message, Throwable cause) {
>> - return new InternalError(message, cause);
>> + InternalError e = new InternalError(message);
>> + e.initCause(cause);
>> + return e;
>> }
>> /*non-public*/ static InternalError newInternalError(Throwable cause) {
>> - return new InternalError(cause);
>> + InternalError e = new InternalError();
>> + e.initCause(cause);
>> + return e;
>> }
>> /*non-public*/ static RuntimeException newIllegalStateException(String message) {
>> return new IllegalStateException(message);
>> diff -Nur jdk8/src/share/classes/sun/invoke/util/ValueConversions.java jdk7u/src/share/classes/sun/invoke/util/ValueConversions.java
>> --- jdk8/src/share/classes/sun/invoke/util/ValueConversions.java 2012-10-16 10:49:36.081911283 -0700
>> +++ jdk7u/src/share/classes/sun/invoke/util/ValueConversions.java 2012-10-16 10:48:19.626424849 -0700
>> @@ -1211,9 +1211,13 @@
>>
>> // handy shared exception makers (they simplify the common case code)
>> private static InternalError newInternalError(String message, Throwable cause) {
>> - return new InternalError(message, cause);
>> + InternalError e = new InternalError(message);
>> + e.initCause(cause);
>> + return e;
>> }
>> private static InternalError newInternalError(Throwable cause) {
>> - return new InternalError(cause);
>> + InternalError e = new InternalError();
>> + e.initCause(cause);
>> + return e;
>> }
>> }
>> diff --git a/src/share/classes/sun/misc/Unsafe.java b/src/share/classes/sun/misc/Unsafe.java
>> --- a/src/share/classes/sun/misc/Unsafe.java
>> +++ b/src/share/classes/sun/misc/Unsafe.java
>> @@ -678,6 +678,14 @@
>> public native Object staticFieldBase(Field f);
>>
>> /**
>> + * Detect if the given class may need to be initialized. This is often
>> + * needed in conjunction with obtaining the static field base of a
>> + * class.
>> + * @return false only if a call to {@code ensureClassInitialized} would have no effect
>> + */
>> + public native boolean shouldBeInitialized(Class c);
>> +
>> + /**
>> * Ensure the given class has been initialized. This is often
>> * needed in conjunction with obtaining the static field base of a
>> * class.
>>
More information about the core-libs-dev
mailing list