/patches/openjdk/8012243-serial_regression.patch

https://bitbucket.org/Ringdingcoder/icedtea6 · Patch · 42 lines · 41 code · 1 blank · 0 comment · 0 complexity · 87495be6d04d835ee4867b8f3b0ff836 MD5 · raw file

  1. # HG changeset patch
  2. # User dfuchs
  3. # Date 1367362161 -7200
  4. # Node ID 7c75580b144fc3e7841e1b7fa7e4ae7efb67476e
  5. # Parent 22decf80e0e833a8667f3e413da735b269d97fe6
  6. 8012243: about 30% regression on specjvm2008.serial on 7u25 comparing 7u21
  7. Reviewed-by: alanb, skoivu, smarks, mchung
  8. --- openjdk/jdk/src/share/classes/java/io/ObjectStreamClass.java
  9. +++ openjdk/jdk/src/share/classes/java/io/ObjectStreamClass.java
  10. @@ -266,9 +266,11 @@
  11. if (cl == null) {
  12. return null;
  13. }
  14. - Class<?> caller = Reflection.getCallerClass();
  15. - if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), cl.getClassLoader())) {
  16. - ReflectUtil.checkPackageAccess(cl);
  17. + if (System.getSecurityManager() != null) {
  18. + Class<?> caller = Reflection.getCallerClass();
  19. + if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), cl.getClassLoader())) {
  20. + ReflectUtil.checkPackageAccess(cl);
  21. + }
  22. }
  23. return cl;
  24. }
  25. --- openjdk/jdk/src/share/classes/java/io/ObjectStreamField.java
  26. +++ openjdk/jdk/src/share/classes/java/io/ObjectStreamField.java
  27. @@ -162,9 +162,11 @@
  28. */
  29. @CallerSensitive
  30. public Class<?> getType() {
  31. - Class<?> caller = Reflection.getCallerClass();
  32. - if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), type.getClassLoader())) {
  33. - ReflectUtil.checkPackageAccess(type);
  34. + if (System.getSecurityManager() != null) {
  35. + Class<?> caller = Reflection.getCallerClass();
  36. + if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), type.getClassLoader())) {
  37. + ReflectUtil.checkPackageAccess(type);
  38. + }
  39. }
  40. return type;
  41. }