changeset 3163:a17dc173fdc5

Sync with upstream OpenJDK 6. 2014-10-23 Andrew John Hughes <gnu.andrew@redhat.com> * patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch, * patches/openjdk/7183251-netbeans_renders_text_wrong.patch, * patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch: Removed; upstreamed. * Makefile.am: (ICEDTEA_PATCHES): Drop above patches. * patches/openjdk/6816311-compiler_name.patch: Drop windows.h fragments applied upstream as OPENJDK6-41. * patches/openjdk/7122142-annotation_race_condition.patch, * patches/openjdk/p11cipher-6812738-native_cleanup.patch: Regenerated following upstream security patches.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Thu, 23 Oct 2014 22:35:31 +0100
parents c380668f35d0
children 3ffc944aeaac
files ChangeLog Makefile.am patches/openjdk/6816311-compiler_name.patch patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch patches/openjdk/7122142-annotation_race_condition.patch patches/openjdk/7183251-netbeans_renders_text_wrong.patch patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch patches/openjdk/p11cipher-6812738-native_cleanup.patch
diffstat 8 files changed, 271 insertions(+), 694 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Oct 08 17:18:58 2014 +0100
+++ b/ChangeLog	Thu Oct 23 22:35:31 2014 +0100
@@ -1,3 +1,17 @@
+2014-10-23  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch,
+	* patches/openjdk/7183251-netbeans_renders_text_wrong.patch,
+	* patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch:
+	Removed; upstreamed.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Drop above patches.
+	* patches/openjdk/6816311-compiler_name.patch:
+	Drop windows.h fragments applied upstream as OPENJDK6-41.
+	* patches/openjdk/7122142-annotation_race_condition.patch,
+	* patches/openjdk/p11cipher-6812738-native_cleanup.patch:
+	Regenerated following upstream security patches.
+
 2014-10-02  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* Makefile.am:
--- a/Makefile.am	Wed Oct 08 17:18:58 2014 +0100
+++ b/Makefile.am	Thu Oct 23 22:35:31 2014 +0100
@@ -610,13 +610,10 @@
 	patches/openjdk/7151089-numa_should_not_free_shm_large_pages.patch \
 	patches/openjdk/8013057-detect_mmap_commit_failures.patch \
 	patches/openjdk/8026887-make_large_page_allocations_easier_to_debug.patch \
-	patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch \
-	patches/openjdk/7183251-netbeans_renders_text_wrong.patch \
 	patches/openjdk/6904962-getvisualbounds_affected_by_white_space.patch \
 	patches/openjdk/6611637-npe_in_glyphlayout.patch \
 	patches/openjdk/6727719-performance_of_textlayout_getbounds.patch \
 	patches/openjdk/6745225-memory_leak_in_attributed_string.patch \
-	patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch \
 	patches/openjdk/7122142-annotation_race_condition.patch
 
 if WITH_RHINO
--- a/patches/openjdk/6816311-compiler_name.patch	Wed Oct 08 17:18:58 2014 +0100
+++ b/patches/openjdk/6816311-compiler_name.patch	Thu Oct 23 22:35:31 2014 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/jdk/make/common/Defs-windows.gmk openjdk/jdk/make/common/Defs-windows.gmk
---- openjdk.orig/jdk/make/common/Defs-windows.gmk	2014-07-30 13:50:26.338553416 +0100
-+++ openjdk/jdk/make/common/Defs-windows.gmk	2014-07-30 13:52:49.696606593 +0100
+--- openjdk.orig/jdk/make/common/Defs-windows.gmk	2014-10-20 15:22:47.872123681 +0100
++++ openjdk/jdk/make/common/Defs-windows.gmk	2014-10-20 15:24:10.649264581 +0100
 @@ -75,6 +75,14 @@
  # The following DLL's are considered MS runtime libraries and should
  #     not to be REBASEd, see deploy/make/common/Release.gmk.
@@ -26,8 +26,8 @@
    CFLAGS_COMMON += -WX
  endif
 diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk openjdk/jdk/make/common/shared/Compiler-gcc.gmk
---- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk	2014-07-30 13:50:26.350553589 +0100
-+++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk	2014-07-30 13:50:56.354983342 +0100
+--- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk	2014-10-20 15:22:47.900124067 +0100
++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk	2014-10-20 15:24:10.649264581 +0100
 @@ -27,8 +27,6 @@
  # GCC Compiler settings
  #
@@ -46,8 +46,8 @@
 +COMPILER_VERSION = $(COMPILER_NAME)
 +
 diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-msvc.gmk openjdk/jdk/make/common/shared/Compiler-msvc.gmk
---- openjdk.orig/jdk/make/common/shared/Compiler-msvc.gmk	2014-07-30 13:50:26.354553646 +0100
-+++ openjdk/jdk/make/common/shared/Compiler-msvc.gmk	2014-07-30 13:57:20.412482841 +0100
+--- openjdk.orig/jdk/make/common/shared/Compiler-msvc.gmk	2014-10-20 15:22:47.900124067 +0100
++++ openjdk/jdk/make/common/shared/Compiler-msvc.gmk	2014-10-20 15:24:10.649264581 +0100
 @@ -78,6 +78,12 @@
      MT     = $(_OTHER_TOOLS_BIN)/mt.exe
      MTL    = $(_OTHER_TOOLS_BIN)/midl.exe
@@ -62,8 +62,8 @@
    # These variables can never be empty
    ifndef COMPILER_PATH
 diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk openjdk/jdk/make/common/shared/Compiler-sun.gmk
---- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk	2014-07-30 13:50:26.354553646 +0100
-+++ openjdk/jdk/make/common/shared/Compiler-sun.gmk	2014-07-30 13:50:56.354983342 +0100
+--- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk	2014-10-20 15:22:47.900124067 +0100
++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk	2014-10-20 15:24:10.649264581 +0100
 @@ -27,13 +27,8 @@
  # Sun Studio Compiler settings
  #
@@ -106,8 +106,8 @@
  #  Starting in SS12 (5.9), the arch options changed.
  #  The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options.
 diff -Nru openjdk.orig/jdk/make/common/shared/Defs-versions.gmk openjdk/jdk/make/common/shared/Defs-versions.gmk
---- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk	2014-07-30 13:50:26.386554104 +0100
-+++ openjdk/jdk/make/common/shared/Defs-versions.gmk	2014-07-30 13:50:56.354983342 +0100
+--- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk	2014-10-20 15:22:47.916124287 +0100
++++ openjdk/jdk/make/common/shared/Defs-versions.gmk	2014-10-20 15:24:10.649264581 +0100
 @@ -45,6 +45,12 @@
  # REQUIRED_CC_VER
  #   The primary C compiler version expected.
@@ -163,8 +163,8 @@
          REQUIRED_LINK_VER     = 8.00.40310.39
        endif
 diff -Nru openjdk.orig/jdk/make/common/shared/Sanity.gmk openjdk/jdk/make/common/shared/Sanity.gmk
---- openjdk.orig/jdk/make/common/shared/Sanity.gmk	2014-07-30 13:50:26.354553646 +0100
-+++ openjdk/jdk/make/common/shared/Sanity.gmk	2014-07-30 13:50:56.354983342 +0100
+--- openjdk.orig/jdk/make/common/shared/Sanity.gmk	2014-10-20 15:22:47.904124123 +0100
++++ openjdk/jdk/make/common/shared/Sanity.gmk	2014-10-20 15:24:10.653264635 +0100
 @@ -129,7 +129,7 @@
    ifeq ($(_OS_VERSION),)
      OS_VERSION = 5.0
@@ -210,27 +210,3 @@
  endif
  
  ######################################################
-diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc openjdk/jdk/src/windows/native/sun/windows/awt.rc
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc	2014-07-14 04:24:44.000000000 +0100
-+++ openjdk/jdk/src/windows/native/sun/windows/awt.rc	2014-07-30 13:50:56.358983399 +0100
-@@ -23,7 +23,7 @@
- // questions.
- //
- 
--#include "afxres.h"
-+#include "windows.h"
- 
- // Need 2 defines so macro argument to XSTR will get expanded before quoting.
- #define XSTR(x) STR(x)
-diff -Nru openjdk.orig/jdk/src/windows/resource/version.rc openjdk/jdk/src/windows/resource/version.rc
---- openjdk.orig/jdk/src/windows/resource/version.rc	2014-07-14 04:24:44.000000000 +0100
-+++ openjdk/jdk/src/windows/resource/version.rc	2014-07-30 13:50:56.358983399 +0100
-@@ -23,7 +23,7 @@
- // questions.
- //
- 
--#include "afxres.h"
-+#include "windows.h"
- 
- // Need 2 defines so macro argument to XSTR will get expanded before quoting.
- #define XSTR(x) STR(x)
--- a/patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch	Wed Oct 08 17:18:58 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-# HG changeset patch
-# User vkarnauk
-# Date 1340286118 -14400
-#      Thu Jun 21 17:41:58 2012 +0400
-# Node ID f71b6117fd7bbb13ed4c1f68ace873695edd49cb
-# Parent  762ae4a20c8b115e5cb486c5204d8bdee747ee59
-7027300: Unsynchronized HashMap access causes endless loop
-Reviewed-by: bae, prr
-
-diff -r 762ae4a20c8b -r f71b6117fd7b src/share/classes/sun/font/SunLayoutEngine.java
---- openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Thu Jun 21 14:19:12 2012 +0400
-+++ openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Thu Jun 21 17:41:58 2012 +0400
-@@ -33,7 +33,7 @@
- import sun.font.GlyphLayout.*;
- import java.awt.geom.Point2D;
- import java.lang.ref.SoftReference;
--import java.util.HashMap;
-+import java.util.concurrent.ConcurrentHashMap;
- import java.util.Locale;
- 
- /*
-@@ -129,9 +129,9 @@
- 
-   // !!! don't need this unless we have more than one sun layout engine...
-     public LayoutEngine getEngine(LayoutEngineKey key) {
--        HashMap cache = (HashMap)cacheref.get();
-+        ConcurrentHashMap cache = (ConcurrentHashMap)cacheref.get();
-         if (cache == null) {
--            cache = new HashMap();
-+            cache = new ConcurrentHashMap();
-             cacheref = new SoftReference(cache);
-         }
- 
--- a/patches/openjdk/7122142-annotation_race_condition.patch	Wed Oct 08 17:18:58 2014 +0100
+++ b/patches/openjdk/7122142-annotation_race_condition.patch	Thu Oct 23 22:35:31 2014 +0100
@@ -1,6 +1,6 @@
-diff -r d1f592073a0e src/share/classes/java/lang/Class.java
---- openjdk/jdk/src/share/classes/java/lang/Class.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/java/lang/Class.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/java/lang/Class.java openjdk/jdk/src/share/classes/java/lang/Class.java
+--- openjdk.orig/jdk/src/share/classes/java/lang/Class.java	2014-10-14 22:40:53.675702174 +0100
++++ openjdk/jdk/src/share/classes/java/lang/Class.java	2014-10-23 21:50:17.185342994 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -8,16 +8,16 @@
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
-@@ -271,7 +271,7 @@
+@@ -275,7 +275,7 @@
      }
  
-     /** Called after security checks have been made. */
+     /** Called after security check for system loader access checks have been made. */
 -    private static native Class forName0(String name, boolean initialize,
 +    private static native Class<?> forName0(String name, boolean initialize,
-                                             ClassLoader loader)
+                                             ClassLoader loader,
+                                             Class<?> caller)
          throws ClassNotFoundException;
- 
-@@ -341,15 +341,15 @@
+@@ -346,15 +346,15 @@
                  );
              }
              try {
@@ -37,7 +37,7 @@
                                  c.setAccessible(true);
                                  return null;
                              }
-@@ -379,7 +379,7 @@
+@@ -384,7 +384,7 @@
          }
      }
      private volatile transient Constructor<T> cachedConstructor;
@@ -46,7 +46,7 @@
  
  
      /**
-@@ -637,7 +637,7 @@
+@@ -642,7 +642,7 @@
          if (getGenericSignature() != null)
              return (TypeVariable<Class<T>>[])getGenericInfo().getTypeParameters();
          else
@@ -55,7 +55,7 @@
      }
  
  
-@@ -901,7 +901,7 @@
+@@ -906,7 +906,7 @@
  
              MethodRepository typeInfo = MethodRepository.make(enclosingInfo.getDescriptor(),
                                                                getFactory());
@@ -64,7 +64,7 @@
              Type []    parameterTypes   = typeInfo.getParameterTypes();
              Class<?>[] parameterClasses = new Class<?>[parameterTypes.length];
  
-@@ -1005,12 +1005,12 @@
+@@ -1010,12 +1010,12 @@
  
      }
  
@@ -79,7 +79,7 @@
       }
  
      /**
-@@ -1340,13 +1340,13 @@
+@@ -1345,13 +1345,13 @@
          // out anything other than public members and (2) public member access
          // has already been ok'd by the SecurityManager.
  
@@ -99,7 +99,7 @@
                          for (int i = 0; i < members.length; i++) {
                              if (Modifier.isPublic(members[i].getModifiers())) {
                                  list.add(members[i]);
-@@ -1354,12 +1354,9 @@
+@@ -1359,12 +1359,9 @@
                          }
                          currentClass = currentClass.getSuperclass();
                      }
@@ -113,7 +113,7 @@
      }
  
  
-@@ -2283,7 +2280,7 @@
+@@ -2288,7 +2285,7 @@
              return name;
          }
          if (!name.startsWith("/")) {
@@ -122,7 +122,7 @@
              while (c.isArray()) {
                  c = c.getComponentType();
              }
-@@ -2300,44 +2297,111 @@
+@@ -2305,44 +2302,111 @@
      }
  
      /**
@@ -208,6 +208,22 @@
 -    // Value of classRedefinedCount when we last cleared the cached values
 -    // that are sensitive to class redefinition.
 -    private volatile transient int lastRedefinedCount = 0;
+-
+-    // Clears cached values that might possibly have been obsoleted by
+-    // a class redefinition.
+-    private void clearCachesOnClassRedefinition() {
+-        if (lastRedefinedCount != classRedefinedCount) {
+-            declaredFields = publicFields = declaredPublicFields = null;
+-            declaredMethods = publicMethods = declaredPublicMethods = null;
+-            declaredConstructors = publicConstructors = null;
+-            annotations = declaredAnnotations = null;
+-
+-            // Use of "volatile" (and synchronization by caller in the case
+-            // of annotations) ensures that no thread sees the update to
+-            // lastRedefinedCount before seeing the caches cleared.
+-            // We do not guard against brief windows during which multiple
+-            // threads might redundantly work to fill an empty cache.
+-            lastRedefinedCount = classRedefinedCount;
 +    // Lazily create and cache ReflectionData
 +    private ReflectionData<T> reflectionData() {
 +        SoftReference<ReflectionData<T>> reflectionData = this.reflectionData;
@@ -223,25 +239,11 @@
 +        // -> create and replace new instance
 +        return newReflectionData(reflectionData, classRedefinedCount);
 +    }
- 
--    // Clears cached values that might possibly have been obsoleted by
--    // a class redefinition.
--    private void clearCachesOnClassRedefinition() {
--        if (lastRedefinedCount != classRedefinedCount) {
--            declaredFields = publicFields = declaredPublicFields = null;
--            declaredMethods = publicMethods = declaredPublicMethods = null;
--            declaredConstructors = publicConstructors = null;
--            annotations = declaredAnnotations = null;
++
 +    private ReflectionData<T> newReflectionData(SoftReference<ReflectionData<T>> oldReflectionData,
 +                                                int classRedefinedCount) {
 +        if (!useCaches) return null;
- 
--            // Use of "volatile" (and synchronization by caller in the case
--            // of annotations) ensures that no thread sees the update to
--            // lastRedefinedCount before seeing the caches cleared.
--            // We do not guard against brief windows during which multiple
--            // threads might redundantly work to fill an empty cache.
--            lastRedefinedCount = classRedefinedCount;
++
 +        while (true) {
 +            ReflectionData<T> rd = new ReflectionData<T>(classRedefinedCount);
 +            // try to CAS it...
@@ -260,7 +262,7 @@
          }
      }
  
-@@ -2365,7 +2429,7 @@
+@@ -2370,7 +2434,7 @@
      }
  
      // Annotations handling
@@ -269,7 +271,7 @@
  
      native ConstantPool getConstantPool();
  
-@@ -2380,27 +2444,19 @@
+@@ -2385,27 +2449,19 @@
      // via ReflectionFactory.copyField.
      private Field[] privateGetDeclaredFields(boolean publicOnly) {
          checkInitted();
@@ -304,7 +306,7 @@
              }
          }
          return res;
-@@ -2409,22 +2465,20 @@
+@@ -2414,22 +2470,20 @@
      // Returns an array of "root" fields. These Field objects must NOT
      // be propagated to the outside world, but must instead be copied
      // via ReflectionFactory.copyField.
@@ -334,7 +336,7 @@
          }
  
          // Local fields
-@@ -2432,9 +2486,7 @@
+@@ -2437,9 +2491,7 @@
          addAll(fields, tmp);
  
          // Direct superinterfaces, recursively
@@ -345,7 +347,7 @@
              if (!traversedInterfaces.contains(c)) {
                  traversedInterfaces.add(c);
                  addAll(fields, c.privateGetPublicFields(traversedInterfaces));
-@@ -2443,7 +2495,7 @@
+@@ -2448,7 +2500,7 @@
  
          // Direct superclass, recursively
          if (!isInterface()) {
@@ -354,7 +356,7 @@
              if (c != null) {
                  addAll(fields, c.privateGetPublicFields(traversedInterfaces));
              }
-@@ -2451,13 +2503,13 @@
+@@ -2456,13 +2508,13 @@
  
          res = new Field[fields.size()];
          fields.toArray(res);
@@ -371,7 +373,7 @@
          for (int i = 0; i < o.length; i++) {
              c.add(o[i]);
          }
-@@ -2473,20 +2525,12 @@
+@@ -2478,20 +2530,12 @@
      // Returns an array of "root" constructors. These Constructor
      // objects must NOT be propagated to the outside world, but must
      // instead be copied via ReflectionFactory.copyConstructor.
@@ -397,7 +399,7 @@
              if (res != null) return res;
          }
          // No cached value available; request value from VM
-@@ -2495,11 +2539,11 @@
+@@ -2500,11 +2544,11 @@
          } else {
              res = getDeclaredConstructors0(publicOnly);
          }
@@ -412,7 +414,7 @@
              }
          }
          return res;
-@@ -2516,27 +2560,19 @@
+@@ -2521,27 +2565,19 @@
      // via ReflectionFactory.copyMethod.
      private Method[] privateGetDeclaredMethods(boolean publicOnly) {
          checkInitted();
@@ -447,7 +449,7 @@
              }
          }
          return res;
-@@ -2638,12 +2674,10 @@
+@@ -2643,12 +2679,10 @@
      // via ReflectionFactory.copyMethod.
      private Method[] privateGetPublicMethods() {
          checkInitted();
@@ -464,7 +466,7 @@
              if (res != null) return res;
          }
  
-@@ -2659,12 +2693,12 @@
+@@ -2664,12 +2698,12 @@
          // out concrete implementations inherited from superclasses at
          // the end.
          MethodArray inheritedMethods = new MethodArray();
@@ -479,7 +481,7 @@
              if (c != null) {
                  MethodArray supers = new MethodArray();
                  supers.addAll(c.privateGetPublicMethods());
-@@ -2691,8 +2725,8 @@
+@@ -2696,8 +2730,8 @@
          methods.addAllIfNotPresent(inheritedMethods);
          methods.compactAndTrim();
          res = methods.getArray();
@@ -490,7 +492,7 @@
          }
          return res;
      }
-@@ -2702,7 +2736,7 @@
+@@ -2707,7 +2741,7 @@
      // Helpers for fetchers of one field, method, or constructor
      //
  
@@ -499,7 +501,7 @@
          String internedName = name.intern();
          for (int i = 0; i < fields.length; i++) {
              if (fields[i].getName() == internedName) {
-@@ -2720,22 +2754,22 @@
+@@ -2725,22 +2759,22 @@
          // of Field objects which have to be created for the common
          // case where the field being requested is declared in the
          // class which is being queried.
@@ -526,7 +528,7 @@
              if (c != null) {
                  if ((res = c.getField0(name)) != null) {
                      return res;
-@@ -2747,7 +2781,7 @@
+@@ -2752,7 +2786,7 @@
  
      private static Method searchMethods(Method[] methods,
                                          String name,
@@ -535,7 +537,7 @@
      {
          Method res = null;
          String internedName = name.intern();
-@@ -2764,7 +2798,7 @@
+@@ -2769,7 +2803,7 @@
      }
  
  
@@ -544,7 +546,7 @@
          // Note: the intent is that the search algorithm this routine
          // uses be equivalent to the ordering imposed by
          // privateGetPublicMethods(). It fetches only the declared
-@@ -2772,7 +2806,7 @@
+@@ -2777,7 +2811,7 @@
          // number of Method objects which have to be created for the
          // common case where the method being requested is declared in
          // the class which is being queried.
@@ -553,7 +555,7 @@
          // Search declared public methods
          if ((res = searchMethods(privateGetDeclaredMethods(true),
                                   name,
-@@ -2781,7 +2815,7 @@
+@@ -2786,7 +2820,7 @@
          }
          // Search superclass's methods
          if (!isInterface()) {
@@ -562,7 +564,7 @@
              if (c != null) {
                  if ((res = c.getMethod0(name, parameterTypes)) != null) {
                      return res;
-@@ -2789,9 +2823,9 @@
+@@ -2794,9 +2828,9 @@
              }
          }
          // Search superinterfaces' methods
@@ -574,7 +576,7 @@
              if ((res = c.getMethod0(name, parameterTypes)) != null) {
                  return res;
              }
-@@ -2800,14 +2834,14 @@
+@@ -2805,14 +2839,14 @@
          return null;
      }
  
@@ -594,7 +596,7 @@
              }
          }
          throw new NoSuchMethodException(getName() + ".<init>" + argumentTypesToString(parameterTypes));
-@@ -2857,21 +2891,21 @@
+@@ -2862,21 +2896,21 @@
          return out;
      }
  
@@ -623,7 +625,7 @@
          StringBuilder buf = new StringBuilder();
          buf.append("(");
          if (argTypes != null) {
-@@ -2879,7 +2913,7 @@
+@@ -2884,7 +2918,7 @@
                  if (i > 0) {
                      buf.append(", ");
                  }
@@ -632,7 +634,7 @@
                  buf.append((c == null) ? "null" : c.getName());
              }
          }
-@@ -2952,7 +2986,7 @@
+@@ -2957,7 +2991,7 @@
      }
  
      // Retrieves the desired assertion status of this class from the VM
@@ -641,7 +643,7 @@
  
      /**
       * Returns true if and only if this class was declared as an enum in the
-@@ -2973,7 +3007,7 @@
+@@ -2978,7 +3012,7 @@
      // Fetches the factory for reflective objects
      private static ReflectionFactory getReflectionFactory() {
          if (reflectionFactory == null) {
@@ -650,7 +652,7 @@
                  java.security.AccessController.doPrivileged
                      (new sun.reflect.ReflectionFactory.GetReflectionFactoryAction());
          }
-@@ -3039,9 +3073,9 @@
+@@ -3044,9 +3078,9 @@
              if (!isEnum()) return null;
              try {
                  final Method values = getMethod("values");
@@ -663,7 +665,7 @@
                                  values.setAccessible(true);
                                  return null;
                              }
-@@ -3073,7 +3107,7 @@
+@@ -3078,7 +3112,7 @@
                      getName() + " is not an enum type");
              Map<String, T> m = new HashMap<String, T>(2 * universe.length);
              for (T constant : universe)
@@ -672,7 +674,7 @@
              enumConstantDirectory = m;
          }
          return enumConstantDirectory;
-@@ -3173,11 +3207,22 @@
+@@ -3178,11 +3212,22 @@
      }
  
      // Annotations cache
@@ -698,7 +700,7 @@
          if (annotations != null)
              return;
          declaredAnnotations = AnnotationParser.parseAnnotations(
-@@ -3186,10 +3231,10 @@
+@@ -3191,10 +3236,10 @@
          if (superClass == null) {
              annotations = declaredAnnotations;
          } else {
@@ -712,7 +714,7 @@
                  if (AnnotationType.getInstance(annotationClass).isInherited())
                      annotations.put(annotationClass, e.getValue());
              }
-@@ -3199,10 +3244,11 @@
+@@ -3204,10 +3249,11 @@
  
      // Annotation types cache their internal (AnnotationType) form
  
@@ -727,37 +729,9 @@
      }
  
      AnnotationType getAnnotationType() {
-diff -r d1f592073a0e src/share/classes/java/lang/System.java
---- openjdk/jdk/src/share/classes/java/lang/System.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/java/lang/System.java	Thu Oct 02 20:18:56 2014 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1994, 2007, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -1146,12 +1146,15 @@
-             public sun.reflect.ConstantPool getConstantPool(Class klass) {
-                 return klass.getConstantPool();
-             }
--            public void setAnnotationType(Class klass, AnnotationType type) {
--                klass.setAnnotationType(type);
-+            public boolean casAnnotationType(Class<?> klass, AnnotationType oldType, AnnotationType newType) {
-+                return klass.casAnnotationType(oldType, newType);
-             }
-             public AnnotationType getAnnotationType(Class klass) {
-                 return klass.getAnnotationType();
-             }
-+            public byte[] getRawClassAnnotations(Class<?> klass) {
-+                return klass.getRawAnnotations();
-+            }
-             public <E extends Enum<E>>
-                     E[] getEnumConstantsShared(Class<E> klass) {
-                 return klass.getEnumConstantsShared();
-diff -r d1f592073a0e src/share/classes/java/lang/reflect/Constructor.java
---- openjdk/jdk/src/share/classes/java/lang/reflect/Constructor.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/java/lang/reflect/Constructor.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java openjdk/jdk/src/share/classes/java/lang/reflect/Constructor.java
+--- openjdk.orig/jdk/src/share/classes/java/lang/reflect/Constructor.java	2013-11-22 04:25:09.861029306 +0000
++++ openjdk/jdk/src/share/classes/java/lang/reflect/Constructor.java	2014-10-23 21:49:38.072708619 +0100
 @@ -65,8 +65,8 @@
  
      private Class<T>            clazz;
@@ -818,9 +792,9 @@
          if (declaredAnnotations == null) {
              declaredAnnotations = AnnotationParser.parseAnnotations(
                  annotations, sun.misc.SharedSecrets.getJavaLangAccess().
-diff -r d1f592073a0e src/share/classes/java/lang/reflect/Field.java
---- openjdk/jdk/src/share/classes/java/lang/reflect/Field.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/java/lang/reflect/Field.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/java/lang/reflect/Field.java openjdk/jdk/src/share/classes/java/lang/reflect/Field.java
+--- openjdk.orig/jdk/src/share/classes/java/lang/reflect/Field.java	2013-11-22 04:25:09.861029306 +0000
++++ openjdk/jdk/src/share/classes/java/lang/reflect/Field.java	2014-10-23 21:49:38.072708619 +0100
 @@ -59,12 +59,12 @@
  public final
  class Field extends AccessibleObject implements Member {
@@ -873,9 +847,9 @@
          if (declaredAnnotations == null) {
              declaredAnnotations = AnnotationParser.parseAnnotations(
                  annotations, sun.misc.SharedSecrets.getJavaLangAccess().
-diff -r d1f592073a0e src/share/classes/java/lang/reflect/Method.java
---- openjdk/jdk/src/share/classes/java/lang/reflect/Method.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/java/lang/reflect/Method.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/java/lang/reflect/Method.java openjdk/jdk/src/share/classes/java/lang/reflect/Method.java
+--- openjdk.orig/jdk/src/share/classes/java/lang/reflect/Method.java	2013-11-22 04:25:09.861029306 +0000
++++ openjdk/jdk/src/share/classes/java/lang/reflect/Method.java	2014-10-23 21:49:38.072708619 +0100
 @@ -62,14 +62,14 @@
  public final
      class Method extends AccessibleObject implements GenericDeclaration,
@@ -952,9 +926,37 @@
              getReturnType());
          Object result = AnnotationParser.parseMemberValue(
              memberType, ByteBuffer.wrap(annotationDefault),
-diff -r d1f592073a0e src/share/classes/sun/misc/JavaLangAccess.java
---- openjdk/jdk/src/share/classes/sun/misc/JavaLangAccess.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/sun/misc/JavaLangAccess.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/java/lang/System.java openjdk/jdk/src/share/classes/java/lang/System.java
+--- openjdk.orig/jdk/src/share/classes/java/lang/System.java	2014-10-23 21:16:04.814301560 +0100
++++ openjdk/jdk/src/share/classes/java/lang/System.java	2014-10-23 21:49:38.072708619 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1994, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -1126,12 +1126,15 @@
+             public sun.reflect.ConstantPool getConstantPool(Class klass) {
+                 return klass.getConstantPool();
+             }
+-            public void setAnnotationType(Class klass, AnnotationType type) {
+-                klass.setAnnotationType(type);
++            public boolean casAnnotationType(Class<?> klass, AnnotationType oldType, AnnotationType newType) {
++                return klass.casAnnotationType(oldType, newType);
+             }
+             public AnnotationType getAnnotationType(Class klass) {
+                 return klass.getAnnotationType();
+             }
++            public byte[] getRawClassAnnotations(Class<?> klass) {
++                return klass.getRawAnnotations();
++            }
+             public <E extends Enum<E>>
+                     E[] getEnumConstantsShared(Class<E> klass) {
+                 return klass.getEnumConstantsShared();
+diff -Nru openjdk.orig/jdk/src/share/classes/sun/misc/JavaLangAccess.java openjdk/jdk/src/share/classes/sun/misc/JavaLangAccess.java
+--- openjdk.orig/jdk/src/share/classes/sun/misc/JavaLangAccess.java	2013-11-22 04:25:09.917030148 +0000
++++ openjdk/jdk/src/share/classes/sun/misc/JavaLangAccess.java	2014-10-23 21:49:38.072708619 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -988,106 +990,10 @@
       * Returns the elements of an enum class or null if the
       * Class object does not represent an enum type;
       * the result is uncloned, cached, and shared by all callers.
-diff -r d1f592073a0e src/share/classes/sun/reflect/ReflectionFactory.java
---- openjdk/jdk/src/share/classes/sun/reflect/ReflectionFactory.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/sun/reflect/ReflectionFactory.java	Thu Oct 02 20:18:56 2014 +0100
-@@ -84,8 +84,8 @@
-      * <code>AccessController.doPrivileged</code>.
-      */
-     public static final class GetReflectionFactoryAction
--        implements PrivilegedAction {
--        public Object run() {
-+        implements PrivilegedAction<ReflectionFactory> {
-+        public ReflectionFactory run() {
-             return getReflectionFactory();
-         }
-     }
-@@ -164,7 +164,7 @@
-     public ConstructorAccessor newConstructorAccessor(Constructor c) {
-         checkInitted();
- 
--        Class declaringClass = c.getDeclaringClass();
-+        Class<?> declaringClass = c.getDeclaringClass();
-         if (Modifier.isAbstract(declaringClass.getModifiers())) {
-             return new InstantiationExceptionConstructorAccessorImpl(null);
-         }
-@@ -203,10 +203,10 @@
-     //
- 
-     /** Creates a new java.lang.reflect.Field. Access checks as per
--        java.lang.reflect.AccessibleObject are not overridden. */
--    public Field newField(Class declaringClass,
-+        java.lang.reflect.AccessibleObject are not overridden. */ 
-+    public Field newField(Class<?> declaringClass,
-                           String name,
--                          Class type,
-+                          Class<?> type,
-                           int modifiers,
-                           int slot,
-                           String signature,
-@@ -223,11 +223,11 @@
- 
-     /** Creates a new java.lang.reflect.Method. Access checks as per
-         java.lang.reflect.AccessibleObject are not overridden. */
--    public Method newMethod(Class declaringClass,
-+    public Method newMethod(Class<?> declaringClass,
-                             String name,
--                            Class[] parameterTypes,
--                            Class returnType,
--                            Class[] checkedExceptions,
-+                            Class<?>[] parameterTypes,
-+                            Class<?> returnType,
-+                            Class<?>[] checkedExceptions,
-                             int modifiers,
-                             int slot,
-                             String signature,
-@@ -250,9 +250,9 @@
- 
-     /** Creates a new java.lang.reflect.Constructor. Access checks as
-         per java.lang.reflect.AccessibleObject are not overridden. */
--    public Constructor newConstructor(Class declaringClass,
--                                      Class[] parameterTypes,
--                                      Class[] checkedExceptions,
-+    public Constructor newConstructor(Class<?> declaringClass,
-+                                      Class<?>[] parameterTypes,
-+                                      Class<?>[] checkedExceptions,
-                                       int modifiers,
-                                       int slot,
-                                       String signature,
-@@ -310,7 +310,7 @@
-     /** Makes a copy of the passed constructor. The returned
-         constructor is a "child" of the passed one; see the comments
-         in Constructor.java for details. */
--    public Constructor copyConstructor(Constructor arg) {
-+    public <T> Constructor<T> copyConstructor(Constructor<T> arg) {
-         return langReflectAccess().copyConstructor(arg);
-     }
- 
-@@ -321,7 +321,7 @@
-     //
- 
-     public Constructor newConstructorForSerialization
--        (Class classToInstantiate, Constructor constructorToCall)
-+        (Class<?> classToInstantiate, Constructor constructorToCall)
-     {
-         // Fast path
-         if (constructorToCall.getDeclaringClass() == classToInstantiate) {
-@@ -366,8 +366,9 @@
-         run, before the system properties are set up. */
-     private static void checkInitted() {
-         if (initted) return;
--        AccessController.doPrivileged(new PrivilegedAction() {
--                public Object run() {
-+        AccessController.doPrivileged(
-+            new PrivilegedAction<Void>() {
-+                public Void run() {
-                     // Tests to ensure the system properties table is fully
-                     // initialized. This is needed because reflection code is
-                     // called very early in the initialization process (before
-diff -r d1f592073a0e src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java
---- openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	Thu Oct 02 20:18:56 2014 +0100
-@@ -41,17 +41,17 @@
+diff -Nru openjdk.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java
+--- openjdk.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2014-10-14 22:40:53.707702622 +0100
++++ openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2014-10-23 21:51:18.178330529 +0100
+@@ -40,10 +40,10 @@
   */
  class AnnotationInvocationHandler implements InvocationHandler, Serializable {
      private static final long serialVersionUID = 6182022883658399397L;
@@ -1097,9 +1003,10 @@
  
 -    AnnotationInvocationHandler(Class type, Map<String, Object> memberValues) {
 +    AnnotationInvocationHandler(Class<? extends Annotation> type, Map<String, Object> memberValues) {
-         this.type = type;
-         this.memberValues = memberValues;
-     }
+         Class<?>[] superInterfaces = type.getInterfaces();
+         if (!type.isAnnotation() ||
+             superInterfaces.length != 1 ||
+@@ -55,7 +55,7 @@
  
      public Object invoke(Object proxy, Method method, Object[] args) {
          String member = method.getName();
@@ -1108,7 +1015,7 @@
  
          // Handle Object and Annotation methods
          if (member.equals("equals") && paramTypes.length == 1 &&
-@@ -85,7 +85,7 @@
+@@ -92,7 +92,7 @@
       * if Cloneable had a public clone method.
       */
      private Object cloneArray(Object array) {
@@ -1117,7 +1024,7 @@
  
          if (type == byte[].class) {
              byte[] byteArray = (byte[])array;
-@@ -152,7 +152,7 @@
+@@ -159,7 +159,7 @@
       * Translates a member value (in "dynamic proxy return form") into a string
       */
      private static String memberValueToString(Object value) {
@@ -1126,7 +1033,7 @@
          if (!type.isArray())    // primitive, string, class, enum const,
                                  // or annotation
              return value.toString();
-@@ -230,7 +230,7 @@
+@@ -237,7 +237,7 @@
       * two members are identical object references.
       */
      private static boolean memberValueEquals(Object v1, Object v2) {
@@ -1135,7 +1042,7 @@
  
          // Check for primitive, string, class, enum const, annotation,
          // or ExceptionProxy
-@@ -302,7 +302,7 @@
+@@ -397,7 +397,7 @@
       * Computes hashCode of a member value (in "dynamic proxy return form")
       */
      private static int memberValueHashCode(Object value) {
@@ -1144,14 +1051,13 @@
          if (!type.isArray())    // primitive, string, class, enum const,
                                  // or annotation
              return value.hashCode();
-@@ -341,14 +341,14 @@
+@@ -435,13 +435,13 @@
              throw new java.io.InvalidObjectException("Non-annotation type in annotation serial stream");
          }
  
 -        Map<String, Class> memberTypes = annotationType.memberTypes();
 +        Map<String, Class<?>> memberTypes = annotationType.memberTypes();
  
- 
          // If there are annotation members without values, that
          // situation is handled by the invoke method.
          for (Map.Entry<String, Object> memberValue : memberValues.entrySet()) {
@@ -1161,9 +1067,9 @@
              if (memberType != null) {  // i.e. member still exists
                  Object value = memberValue.getValue();
                  if (!(memberType.isInstance(value) ||
-diff -r d1f592073a0e src/share/classes/sun/reflect/annotation/AnnotationParser.java
---- openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java
+--- openjdk.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java	2013-08-21 20:33:02.380301529 +0100
++++ openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java	2014-10-23 21:49:38.076708685 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
@@ -1205,10 +1111,8 @@
 +     * @param selectAnnotationClasses an array of annotation types to select when parsing
 +     */
 +    static Map<Class<? extends Annotation>, Annotation> parseSelectAnnotations(
-                 byte[] rawAnnotations,
-                 ConstantPool constPool,
--                Class container) {
--        Map<Class, Annotation> result = new LinkedHashMap<Class, Annotation>();
++                byte[] rawAnnotations,
++                ConstantPool constPool,
 +                Class<?> container,
 +                Class<? extends Annotation> ... selectAnnotationClasses) {
 +        if (rawAnnotations == null)
@@ -1225,8 +1129,10 @@
 +    }
 +
 +    private static Map<Class<? extends Annotation>, Annotation> parseAnnotations2(
-+                byte[] rawAnnotations,
-+                ConstantPool constPool,
+                 byte[] rawAnnotations,
+                 ConstantPool constPool,
+-                Class container) {
+-        Map<Class, Annotation> result = new LinkedHashMap<Class, Annotation>();
 +                Class<?> container,
 +                Class<? extends Annotation>[] selectAnnotationClasses) {
 +        Map<Class<? extends Annotation>, Annotation> result =
@@ -1478,9 +1384,9 @@
 +    }
 +
  }
-diff -r d1f592073a0e src/share/classes/sun/reflect/annotation/AnnotationType.java
---- openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java	Fri Sep 12 22:39:32 2014 +0100
-+++ openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java
+--- openjdk.orig/jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java	2013-08-21 20:33:02.380301529 +0100
++++ openjdk/jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java	2014-10-23 21:49:38.076708685 +0100
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -1655,9 +1561,105 @@
 +               "   Inherited: " + inherited;
      }
  }
-diff -r d1f592073a0e test/java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/src/share/classes/sun/reflect/ReflectionFactory.java openjdk/jdk/src/share/classes/sun/reflect/ReflectionFactory.java
+--- openjdk.orig/jdk/src/share/classes/sun/reflect/ReflectionFactory.java	2013-08-21 20:33:02.284299976 +0100
++++ openjdk/jdk/src/share/classes/sun/reflect/ReflectionFactory.java	2014-10-23 21:49:38.072708619 +0100
+@@ -84,8 +84,8 @@
+      * <code>AccessController.doPrivileged</code>.
+      */
+     public static final class GetReflectionFactoryAction
+-        implements PrivilegedAction {
+-        public Object run() {
++        implements PrivilegedAction<ReflectionFactory> {
++        public ReflectionFactory run() {
+             return getReflectionFactory();
+         }
+     }
+@@ -164,7 +164,7 @@
+     public ConstructorAccessor newConstructorAccessor(Constructor c) {
+         checkInitted();
+ 
+-        Class declaringClass = c.getDeclaringClass();
++        Class<?> declaringClass = c.getDeclaringClass();
+         if (Modifier.isAbstract(declaringClass.getModifiers())) {
+             return new InstantiationExceptionConstructorAccessorImpl(null);
+         }
+@@ -203,10 +203,10 @@
+     //
+ 
+     /** Creates a new java.lang.reflect.Field. Access checks as per
+-        java.lang.reflect.AccessibleObject are not overridden. */
+-    public Field newField(Class declaringClass,
++        java.lang.reflect.AccessibleObject are not overridden. */ 
++    public Field newField(Class<?> declaringClass,
+                           String name,
+-                          Class type,
++                          Class<?> type,
+                           int modifiers,
+                           int slot,
+                           String signature,
+@@ -223,11 +223,11 @@
+ 
+     /** Creates a new java.lang.reflect.Method. Access checks as per
+         java.lang.reflect.AccessibleObject are not overridden. */
+-    public Method newMethod(Class declaringClass,
++    public Method newMethod(Class<?> declaringClass,
+                             String name,
+-                            Class[] parameterTypes,
+-                            Class returnType,
+-                            Class[] checkedExceptions,
++                            Class<?>[] parameterTypes,
++                            Class<?> returnType,
++                            Class<?>[] checkedExceptions,
+                             int modifiers,
+                             int slot,
+                             String signature,
+@@ -250,9 +250,9 @@
+ 
+     /** Creates a new java.lang.reflect.Constructor. Access checks as
+         per java.lang.reflect.AccessibleObject are not overridden. */
+-    public Constructor newConstructor(Class declaringClass,
+-                                      Class[] parameterTypes,
+-                                      Class[] checkedExceptions,
++    public Constructor newConstructor(Class<?> declaringClass,
++                                      Class<?>[] parameterTypes,
++                                      Class<?>[] checkedExceptions,
+                                       int modifiers,
+                                       int slot,
+                                       String signature,
+@@ -310,7 +310,7 @@
+     /** Makes a copy of the passed constructor. The returned
+         constructor is a "child" of the passed one; see the comments
+         in Constructor.java for details. */
+-    public Constructor copyConstructor(Constructor arg) {
++    public <T> Constructor<T> copyConstructor(Constructor<T> arg) {
+         return langReflectAccess().copyConstructor(arg);
+     }
+ 
+@@ -321,7 +321,7 @@
+     //
+ 
+     public Constructor newConstructorForSerialization
+-        (Class classToInstantiate, Constructor constructorToCall)
++        (Class<?> classToInstantiate, Constructor constructorToCall)
+     {
+         // Fast path
+         if (constructorToCall.getDeclaringClass() == classToInstantiate) {
+@@ -366,8 +366,9 @@
+         run, before the system properties are set up. */
+     private static void checkInitted() {
+         if (initted) return;
+-        AccessController.doPrivileged(new PrivilegedAction() {
+-                public Object run() {
++        AccessController.doPrivileged(
++            new PrivilegedAction<Void>() {
++                public Void run() {
+                     // Tests to ensure the system properties table is fully
+                     // initialized. This is needed because reflection code is
+                     // called very early in the initialization process (before
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java openjdk/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java
+--- openjdk.orig/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java	1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java	2014-10-23 21:49:38.076708685 +0100
 @@ -0,0 +1,101 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -1760,9 +1762,9 @@
 +        }
 +    }
 +}
-diff -r d1f592073a0e test/java/lang/annotation/AnnotationType/AnnotationTypeRuntimeAssumptionTest.java
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeRuntimeAssumptionTest.java	Thu Oct 02 20:18:56 2014 +0100
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeRuntimeAssumptionTest.java openjdk/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeRuntimeAssumptionTest.java
+--- openjdk.orig/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeRuntimeAssumptionTest.java	1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/AnnotationType/AnnotationTypeRuntimeAssumptionTest.java	2014-10-23 21:49:38.076708685 +0100
 @@ -0,0 +1,187 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
--- a/patches/openjdk/7183251-netbeans_renders_text_wrong.patch	Wed Oct 08 17:18:58 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-# HG changeset patch
-# User prr
-# Date 1342804653 25200
-#      Fri Jul 20 10:17:33 2012 -0700
-# Node ID 84d5cdbe7bce2caf907ec842ac7b4fa2097fb295
-# Parent  bf5bf37108c14d1d01b8a1043f9e3ff0e3727869
-7183251: Netbeans editor renders text wrong on JDK 7u6 build
-Reviewed-by: igor, jgodinez
-
-diff -r bf5bf37108c1 -r 84d5cdbe7bce src/share/classes/sun/font/SunLayoutEngine.java
---- openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Fri Jul 20 13:58:52 2012 +0400
-+++ openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Fri Jul 20 10:17:33 2012 -0700
-@@ -137,8 +137,9 @@
- 
-         LayoutEngine e = (LayoutEngine)cache.get(key);
-         if (e == null) {
--            e = new SunLayoutEngine(key.copy());
--            cache.put(key, e);
-+            LayoutEngineKey copy = key.copy();
-+            e = new SunLayoutEngine(copy);
-+            cache.put(copy, e);
-         }
-         return e;
-     }
--- a/patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch	Wed Oct 08 17:18:58 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,347 +0,0 @@
-diff -r 1492971e2155 src/share/native/sun/font/layout/LETypes.h
---- openjdk/jdk/src/share/native/sun/font/layout/LETypes.h	Wed Mar 20 13:39:56 2013 -0700
-+++ openjdk/jdk/src/share/native/sun/font/layout/LETypes.h	Tue Jul 29 00:40:14 2014 +0100
-@@ -25,7 +25,7 @@
- 
- /*
-  *
-- * (C) Copyright IBM Corp. 1998-2010 - All Rights Reserved
-+ * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
-  *
-  */
- 
-@@ -107,7 +107,7 @@
-  */
- typedef int8_t le_int8;
- #endif
-- 
-+
- #ifndef HAVE_LE_UINT8
- /**
-  * A type used for unsigned, 8-bit integers.
-@@ -231,38 +231,6 @@
- #define LE_CLIENT_SHIFT   24
- 
- 
--#ifndef LE_ASSERT_BAD_FONT
--#define LE_ASSERT_BAD_FONT 0
--#endif
--
--#if LE_ASSERT_BAD_FONT
--#include <stdio.h>
--#define LE_DEBUG_BAD_FONT(x) fprintf(stderr,"%s:%d: BAD FONT: %s\n", __FILE__, __LINE__, (x));
--#else
--#define LE_DEBUG_BAD_FONT(x)
--#endif
--
--/**
-- * Max value representable by a uintptr
-- */
--
--#ifndef UINT32_MAX
--#define LE_UINT32_MAX 0xFFFFFFFFU
--#else
--#define LE_UINT32_MAX UINT32_MAX
--#endif
--
--#ifndef UINTPTR_MAX
--#define LE_UINTPTR_MAX LE_UINT32_MAX
--#else
--#define LE_UINTPTR_MAX UINTPTR_MAX
--#endif
--
--/**
-- * Range check for overflow
-- */
--#define LE_RANGE_CHECK(type, count, ptrfn) (( (LE_UINTPTR_MAX / sizeof(type)) < count ) ? NULL : (ptrfn))
--
- /**
-  * A convenience macro to get the Glyph ID part of an LEGlyphID.
-  *
-@@ -312,20 +280,6 @@
-  */
- #define LE_SET_CLIENT(gid, client) ((gid & ~LE_CLIENT_MASK) | ((client << LE_CLIENT_SHIFT) & LE_CLIENT_MASK))
- 
--/**
-- * \def LE_TRACE
-- * @internal
-- */
--#ifndef LE_TRACE
--# define LE_TRACE 0
--#endif
--
--#if LE_TRACE
--# include <stdio.h>
--# define _LETRACE printf("\n%s:%d: LE: ", __FILE__, __LINE__),printf
--#else
--# define _LETRACE 0&&
--#endif
- 
- /**
-  * Used to represent 16-bit Unicode code points.
-@@ -379,7 +333,54 @@
- typedef struct LEPoint LEPoint;
- #endif
- 
-+/**
-+ * \def LE_TRACE
-+ * @internal
-+ */
-+#ifndef LE_TRACE
-+# define LE_TRACE 0
-+#endif
- 
-+#if LE_TRACE
-+# include <stdio.h>
-+# define _LETRACE printf("\n%s:%d: LE: ", __FILE__, __LINE__),printf
-+#else
-+# define _LETRACE 0&&
-+#endif
-+
-+#ifndef U_HIDE_INTERNAL_API
-+
-+#ifndef LE_ASSERT_BAD_FONT
-+#define LE_ASSERT_BAD_FONT 0
-+#endif
-+
-+#if LE_ASSERT_BAD_FONT
-+#include <stdio.h>
-+#define LE_DEBUG_BAD_FONT(x) fprintf(stderr,"%s:%d: BAD FONT: %s\n", __FILE__, __LINE__, (x));
-+#else
-+#define LE_DEBUG_BAD_FONT(x)
-+#endif
-+
-+/**
-+ * Max value representable by a uintptr
-+ */
-+
-+#ifndef UINT32_MAX
-+#define LE_UINT32_MAX 0xFFFFFFFFU
-+#else
-+#define LE_UINT32_MAX UINT32_MAX
-+#endif
-+
-+#ifndef UINTPTR_MAX
-+#define LE_UINTPTR_MAX LE_UINT32_MAX
-+#else
-+#define LE_UINTPTR_MAX UINTPTR_MAX
-+#endif
-+
-+/**
-+ * Range check for overflow
-+ */
-+#define LE_RANGE_CHECK(type, count, ptrfn) (( (LE_UINTPTR_MAX / sizeof(type)) < count ) ? NULL : (ptrfn))
- /**
-  * A convenience macro to get the length of an array.
-  *
-@@ -401,7 +402,7 @@
-  *
-  * @internal
-  */
--#define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type))
-+#define LE_NEW_ARRAY(type, count) (type *)  LE_RANGE_CHECK(type,count,uprv_malloc((count) * sizeof(type)))
- 
- /**
-  * Re-allocate an array of basic types. This is used to isolate the rest of
-@@ -418,7 +419,52 @@
-  * @internal
-  */
- #define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
--#endif
-+#else
-+/* !LE_USE_CMEMORY - Not using ICU memory - use C std lib versions */
-+
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/**
-+ * A convenience macro to get the length of an array.
-+ *
-+ * @internal
-+ */
-+#define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
-+
-+/**
-+ * A convenience macro for copying an array.
-+ *
-+ * @internal
-+ */
-+#define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
-+
-+/**
-+ * Allocate an array of basic types. This is used to isolate the rest of
-+ * the LayoutEngine code from cmemory.h.
-+ *
-+ * @internal
-+ */
-+#define LE_NEW_ARRAY(type, count) LE_RANGE_CHECK(type,count,(type *) malloc((count) * sizeof(type)))
-+
-+/**
-+ * Re-allocate an array of basic types. This is used to isolate the rest of
-+ * the LayoutEngine code from cmemory.h.
-+ *
-+ * @internal
-+ */
-+#define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
-+
-+ /**
-+ * Free an array of basic types. This is used to isolate the rest of
-+ * the LayoutEngine code from cmemory.h.
-+ *
-+ * @internal
-+ */
-+#define LE_DELETE_ARRAY(array) free((void *) (array))
-+
-+#endif  /* LE_USE_CMEMORY */
-+#endif  /* U_HIDE_INTERNAL_API */
- 
- /**
-  * A macro to construct the four-letter tags used to
-@@ -581,7 +627,7 @@
-     LE_RAND_FEATURE_TAG = 0x72616E64UL, /**< 'rand' */
-     LE_RLIG_FEATURE_TAG = 0x726C6967UL, /**< 'rlig' */
-     LE_RPHF_FEATURE_TAG = 0x72706866UL, /**< 'rphf' */
--        LE_RKRF_FEATURE_TAG = 0x726B7266UL, /**< 'rkrf' */
-+    LE_RKRF_FEATURE_TAG = 0x726B7266UL, /**< 'rkrf' */
-     LE_RTBD_FEATURE_TAG = 0x72746264UL, /**< 'rtbd' */
-     LE_RTLA_FEATURE_TAG = 0x72746C61UL, /**< 'rtla' */
-     LE_RUBY_FEATURE_TAG = 0x72756279UL, /**< 'ruby' */
-@@ -633,6 +679,77 @@
- };
- 
- /**
-+ * @internal
-+ */
-+enum LEFeatureENUMs {
-+  LE_Kerning_FEATURE_ENUM = 0,   /**< Requests Kerning. Formerly LayoutEngine::kTypoFlagKern */
-+  LE_Ligatures_FEATURE_ENUM = 1, /**< Requests Ligatures. Formerly LayoutEngine::kTypoFlagLiga */
-+  LE_NoCanon_FEATURE_ENUM = 2, /**< Requests No Canonical Processing */
-+  LE_CLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_DLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_HLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_LIGA_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_RLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SMCP_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_FRAC_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_AFRC_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_ZERO_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SWSH_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_CSWH_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SALT_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_NALT_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_RUBY_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS01_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS02_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS03_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS04_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS05_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS06_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS07_FEATURE_ENUM,   /**< Feature specific enum */
-+
-+  LE_CHAR_FILTER_FEATURE_ENUM = 31, /**< Apply CharSubstitutionFilter */
-+  LE_FEATURE_ENUM_MAX = LE_CHAR_FILTER_FEATURE_ENUM
-+};
-+
-+
-+/**
-+ * Flags for typographic features.
-+ * @internal
-+ * @{
-+ */
-+#define LE_Kerning_FEATURE_FLAG   (1 << LE_Kerning_FEATURE_ENUM)
-+#define LE_Ligatures_FEATURE_FLAG (1 << LE_Ligatures_FEATURE_ENUM)
-+#define LE_NoCanon_FEATURE_FLAG (1 << LE_NoCanon_FEATURE_ENUM)
-+#define LE_CLIG_FEATURE_FLAG (1 << LE_CLIG_FEATURE_ENUM)
-+#define LE_DLIG_FEATURE_FLAG (1 << LE_DLIG_FEATURE_ENUM)
-+#define LE_HLIG_FEATURE_FLAG (1 << LE_HLIG_FEATURE_ENUM)
-+#define LE_LIGA_FEATURE_FLAG (1 << LE_LIGA_FEATURE_ENUM)
-+#define LE_RLIG_FEATURE_FLAG (1 << LE_RLIG_FEATURE_ENUM)
-+#define LE_SMCP_FEATURE_FLAG (1 << LE_SMCP_FEATURE_ENUM)
-+#define LE_FRAC_FEATURE_FLAG (1 << LE_FRAC_FEATURE_ENUM)
-+#define LE_AFRC_FEATURE_FLAG (1 << LE_AFRC_FEATURE_ENUM)
-+#define LE_ZERO_FEATURE_FLAG (1 << LE_ZERO_FEATURE_ENUM)
-+#define LE_SWSH_FEATURE_FLAG (1 << LE_SWSH_FEATURE_ENUM)
-+#define LE_CSWH_FEATURE_FLAG (1 << LE_CSWH_FEATURE_ENUM)
-+#define LE_SALT_FEATURE_FLAG (1 << LE_SALT_FEATURE_ENUM)
-+#define LE_NALT_FEATURE_FLAG (1 << LE_NALT_FEATURE_ENUM)
-+#define LE_RUBY_FEATURE_FLAG (1 << LE_RUBY_FEATURE_ENUM)
-+#define LE_SS01_FEATURE_FLAG (1 << LE_SS01_FEATURE_ENUM)
-+#define LE_SS02_FEATURE_FLAG (1 << LE_SS02_FEATURE_ENUM)
-+#define LE_SS03_FEATURE_FLAG (1 << LE_SS03_FEATURE_ENUM)
-+#define LE_SS04_FEATURE_FLAG (1 << LE_SS04_FEATURE_ENUM)
-+#define LE_SS05_FEATURE_FLAG (1 << LE_SS05_FEATURE_ENUM)
-+#define LE_SS06_FEATURE_FLAG (1 << LE_SS06_FEATURE_ENUM)
-+#define LE_SS07_FEATURE_FLAG (1 << LE_SS07_FEATURE_ENUM)
-+
-+#define LE_CHAR_FILTER_FEATURE_FLAG (1 << LE_CHAR_FILTER_FEATURE_ENUM)
-+/**
-+ * @}
-+ */
-+
-+#define LE_DEFAULT_FEATURE_FLAG (LE_Kerning_FEATURE_FLAG | LE_Ligatures_FEATURE_FLAG) /**< default features */
-+
-+/**
-  * Error codes returned by the LayoutEngine.
-  *
-  * @stable ICU 2.4
-@@ -674,30 +791,6 @@
- #define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code))
- #endif
- 
--enum LEFeatureENUMs {
-- LE_Kerning_FEATURE_ENUM = 0,
-- LE_Ligatures_FEATURE_ENUM = 1,
-- LE_CHAR_FILTER_FEATURE_ENUM = 31,
--};
--
--
--/**
-- * Flags for typographic features.
-- * @internal
-- * @{
-- */
--#define LE_Kerning_FEATURE_FLAG (1 << LE_Kerning_FEATURE_ENUM)
--#define LE_Ligatures_FEATURE_FLAG (1 << LE_Ligatures_FEATURE_ENUM)
--
--#define LE_CHAR_FILTER_FEATURE_ENUM 31
--
--#define LE_CHAR_FILTER_FEATURE_FLAG (1 << LE_CHAR_FILTER_FEATURE_ENUM)
--/**
-- * @}
-- */
--
--#define LE_DEFAULT_FEATURE_FLAG (LE_Kerning_FEATURE_FLAG | LE_Ligatures_FEATURE_FLAG) /**< default features */
--
- /**
-  * A convenience macro to test for the failure of a LayoutEngine call.
-  *
-@@ -709,5 +802,3 @@
- 
- U_NAMESPACE_END
- #endif
--
--
-diff -r 1492971e2155 src/share/native/sun/font/layout/LayoutEngine.cpp
---- openjdk/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp	Wed Mar 20 13:39:56 2013 -0700
-+++ openjdk/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp	Tue Jul 29 00:40:14 2014 +0100
-@@ -32,8 +32,8 @@
- 
- #include "LETypes.h"
- #include "LEScripts.h"
-+#include "LELanguages.h"
- #include "LESwaps.h"
--#include "LELanguages.h"
- 
- #include "LayoutEngine.h"
- #include "ArabicLayoutEngine.h"
-@@ -252,6 +252,10 @@
-         return 0;
-     }
- 
-+    if ((fTypoFlags & LE_NoCanon_FEATURE_FLAG) == 0) { // no canonical processing
-+      return count;
-+    }
-+
-     LEReferenceTo<GlyphSubstitutionTableHeader> canonGSUBTable(LETableReference::kStaticData,
-                                                                (GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable,
-                                                                CanonShaping::glyphSubstitutionTableLen);
--- a/patches/openjdk/p11cipher-6812738-native_cleanup.patch	Wed Oct 08 17:18:58 2014 +0100
+++ b/patches/openjdk/p11cipher-6812738-native_cleanup.patch	Thu Oct 23 22:35:31 2014 +0100
@@ -1,7 +1,7 @@
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java openjdk/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-01-17 20:29:33.778742684 +0000
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-01-17 20:42:39.286333640 +0000
-@@ -190,7 +190,9 @@
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-10-14 22:40:53.711702677 +0100
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-10-20 15:21:02.366669004 +0100
+@@ -202,7 +202,9 @@
                  throw new InvalidKeyException
                                  ("Unwrap has to be used with private keys");
              }
@@ -12,17 +12,9 @@
          } else {
              throw new InvalidKeyException("Unsupported mode: " + opmode);
          }
-@@ -418,6 +420,7 @@
-     protected Key engineUnwrap(byte[] wrappedKey, String algorithm,
-             int type) throws InvalidKeyException, NoSuchAlgorithmException {
-         // XXX implement unwrap using C_Unwrap() for all keys
-+        implInit(Cipher.DECRYPT_MODE, p11Key);
-         if (wrappedKey.length > maxInputSize) {
-             throw new InvalidKeyException("Key is too long for unwrapping");
-         }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c	2014-01-17 20:41:19.141150649 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c	2014-10-20 15:21:02.366669004 +0100
 @@ -89,21 +89,24 @@
  
      /* load CK_DATE class */
@@ -1550,7 +1542,7 @@
  }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	2014-01-17 20:41:19.141150649 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	2014-10-20 15:21:02.366669004 +0100
 @@ -81,6 +81,7 @@
      ckSessionHandle = jLongToCKULong(jSessionHandle);
      ckKeyHandle = jLongToCKULong(jKeyHandle);
@@ -1695,7 +1687,7 @@
        }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c	2014-01-17 20:41:19.141150649 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c	2014-10-20 15:21:02.366669004 +0100
 @@ -75,6 +75,7 @@
  
      ckSessionHandle = jLongToCKULong(jSessionHandle);
@@ -1850,7 +1842,7 @@
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c	2014-10-20 15:21:02.366669004 +0100
 @@ -73,7 +73,7 @@
      CK_SESSION_HANDLE ckSessionHandle;
      CK_BYTE_PTR ckpPart = NULL_PTR, ckpEncryptedPart;
@@ -2042,7 +2034,7 @@
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c	2014-10-20 15:21:02.366669004 +0100
 @@ -102,6 +102,7 @@
  
  jclass fetchClass(JNIEnv *env, const char *name) {
@@ -2399,7 +2391,7 @@
                                     ckpNewPin, ckNewPinLength);
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c	2014-10-20 15:21:02.366669004 +0100
 @@ -74,7 +74,7 @@
      CK_ATTRIBUTE_PTR ckpAttributes = NULL_PTR;
      CK_ULONG ckAttributesLength;
@@ -2952,7 +2944,7 @@
    }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c	2014-10-20 15:21:02.366669004 +0100
 @@ -76,7 +76,7 @@
  CK_C_INITIALIZE_ARGS_PTR makeCKInitArgsAdapter(JNIEnv *env, jobject jInitArgs)
  {
@@ -3203,7 +3195,7 @@
      }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c	2014-10-20 15:21:02.370669058 +0100
 @@ -81,16 +81,14 @@
  
      ckSessionHandle = jLongToCKULong(jSessionHandle);
@@ -3401,7 +3393,7 @@
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c	2014-10-20 15:21:02.370669058 +0100
 @@ -97,6 +97,10 @@
  #ifndef NO_CALLBACKS
      if (jNotify != NULL) {
@@ -3589,7 +3581,7 @@
      }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c	2014-10-20 15:21:02.370669058 +0100
 @@ -77,15 +77,16 @@
  
      ckSessionHandle = jLongToCKULong(jSessionHandle);
@@ -3954,7 +3946,7 @@
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c	2013-08-21 20:32:58.604240411 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c	2014-10-20 15:21:02.370669058 +0100
 @@ -73,11 +73,11 @@
      jmethodID jConstructor;
  
@@ -4795,7 +4787,7 @@
 +
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
 --- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h	2013-08-21 20:32:58.604240411 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h	2014-01-17 20:41:19.145150708 +0000
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h	2014-10-20 15:21:02.370669058 +0100
 @@ -154,6 +154,7 @@
  
  #include "pkcs11.h"