79 Commits

Author SHA1 Message Date
Harold Seigel
bbd0191aea 8075118: JVM stuck in infinite loop during verification
Keep a list of handlers to prevent the same handler from being scanned repeatedly.

Reviewed-by: dlong, dholmes
2015-03-19 08:55:50 -04:00
Yumin Qi
3bbda04f98 Merge 2015-01-27 20:02:35 -08:00
Alejandro Murillo
bbd13b5561 Merge 2015-01-22 22:42:31 -08:00
Lois Foltan
5f8b5ceaee 8067480: Crash in klassItable::initialize_itable_for_interface when running vm.runtime.defmeth.StaticMethodsTest
A static method should be skipped in entirety by find_instance_method(), searching should continue to find an overpass method of the same name and signature if present.

Reviewed-by: acorn, hseigel
2015-01-23 09:54:33 -05:00
Harold Seigel
4e980350ca 8055146: Split Verifier incorrectly throws VerifyError for getstatic of an array field
Allow fieldClass for getstatic and putstatic to be an array

Reviewed-by: dholmes, acorn
2015-01-14 08:14:23 -05:00
Harold Seigel
5b8ee4c102 8064335: Null pointer dereference in hotspot/src/share/vm/classfile/verifier.cpp
Use correct CHECK macro in call to load_class()

Reviewed-by: coleenp, lfoltan, gziemski
2014-12-30 12:59:20 -05:00
Stefan Karlsson
95704b233c 8064811: Use THREAD instead of CHECK_NULL in return statements
Reviewed-by: coleenp, simonis, dholmes
2014-11-14 09:47:09 +01:00
Harold Seigel
616b927160 8058982: Better verification of an exceptional invokespecial
Throw VerifyError for illegal accesses

Reviewed-by: acorn, ahgross, coleenp
2014-10-20 14:43:11 -04:00
Alejandro Murillo
c3b487d84f Merge 2014-10-17 07:58:54 -07:00
Aleksey Shipilev
fe03f41db8 8059924: com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java: assert(Universe::verify_in_progress() || !SafepointSynchronize::is_at_safepoint()) failed: invariant
Revive the hashcode installation in Verifier

Reviewed-by: kamg, lfoltan
2014-10-09 16:41:28 +04:00
Aleksey Shipilev
0ba4969549 8059595: Verifier::verify is wasting time before is_eligible_for_verification check
Do the check earlier.

Reviewed-by: hseigel, kamg
2014-10-02 17:13:31 +04:00
Harold Seigel
1bae14de54 8057845: ClassVerifier::verify_exception_handler_targets reconstructs the ExceptionTable in a loop
Construct the ExceptionTable only once, before the loop

Reviewed-by: acorn, jiangli, coleenp, lfoltan
2014-09-19 08:19:04 -04:00
Harold Seigel
1436d4b821 8050485: super() in a try block in a ctor causes VerifyError
Parse catch clause paths to ensure they end in throws

Reviewed-by: dlong, acorn, kamg, ctornqvi, lfoltan
2014-08-12 20:29:25 -04:00
Harold Seigel
f588cd1325 8051012: Regression in verifier for <init> method call from inside of a branch
Fix stackmap matching for branches.

Reviewed-by: coleenp, lfoltan, acorn
2014-08-02 16:28:59 -04:00
Serguei Spitsyn
b0367c3bea Merge 2014-07-18 23:53:59 -07:00
Coleen Phillimore
e051932425 Merge 2014-07-18 11:22:49 -04:00
Coleen Phillimore
3f0a945468 8004128: NPG: remove stackwalking in Threads::gc_prologue and gc_epilogue code
Remove bcx and mdx handling.  We no longer have to convert bytecode pointers to indices for GC since Methods aren't moved.

Reviewed-by: mgerdin, kvn
2014-07-17 15:45:46 -04:00
Harold Seigel
0cc38ff4d5 8043454: Test case for 8037157 should not throw a VerifyError
Don't throw VerifyError if method is NULL.

Reviewed-by: acorn, lfoltan, mschoene
2014-07-14 13:31:03 +04:00
Goetz Lindenmaier
25f33c005d 8049325: Introduce and clean up umbrella headers for the files in the cpu subdirectories
Introduce and clean up umbrella headers for the files in the cpu subdirectories.

Reviewed-by: lfoltan, coleenp, dholmes
2014-07-04 11:46:01 +02:00
Harold Seigel
f203dcbfbf 8036533: Method for correct defaults
8036156: Limit default method hierarchy

Fix protected access checks

Reviewed-by: coleenp, lfoltan, acorn, ahgross
2014-07-22 16:16:51 +04:00
Yuri Gaevsky
4f2c88d8cd 8043925: Fix typo in verifier.cpp
Fix lookupswitch

Reviewed-by: sla, coleenp
2014-05-23 16:54:01 -04:00
Yuri Gaevsky
cc3c656cf1 8025580: Temporary flags: UseNewReflection and ReflectionWrapResolutionErrors
The fix removes all UseNewReflection/ReflectionWrapResolutionErrors occurrences/logic and adds them into the list of obsolete_jvm_flags in arguments.cpp.

Reviewed-by: coleenp, hseigel
2014-05-15 17:38:50 -04:00
David Chase
305ec3bd3f 8037816: Fix for 8036122 breaks build with Xcode5/clang
Repaired or selectively disabled offending formats; future-proofed with additional checking

Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Harold Seigel
2216f41ed6 8037157: Verify <init> call
Check for null method

Reviewed-by: coleenp, acorn, mschoene
2014-05-07 19:34:48 +04:00
Harold Seigel
13d9244b49 8035119: Fix exceptions to bytecode verification
Prevent ctor calls to super() and this() from avoidable code (try blocks, if stmts, etc.)

Reviewed-by: coleenp, acorn, mschoene
2014-07-14 12:45:14 +04:00
Goetz Lindenmaier
6e6f0720a9 8042195: Introduce umbrella header orderAccess.inline.hpp
Reviewed-by: dholmes, kvn, stefank, twisti
2014-04-29 15:17:27 +02:00
Tobias Hartmann
06c26b6f97 8036956: remove EnableInvokeDynamic flag
The EnableInvokeDynamic flag and all support code is removed because it is not longer used in JDK 9.

Reviewed-by: kvn, twisti
2014-04-29 08:08:44 +02:00
Lois Foltan
8c36d0cd2b 8033150: invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults
A static method should be preferred during method resolution over an overpass, search the current class as well as its superclasses.

Reviewed-by: acorn, coleenp, kamg
2014-04-14 14:27:45 -04:00
Lois Foltan
28557bc30e 8026065: InterfaceMethodref for invokespecial must name a direct superinterface
Add verification to check that invokespecial of an InterfaceMethodref names a method in a direct superinterface of the current class or interface in accordance with JSR 335, JVMS 4.9.2 Structural Constraints.

Reviewed-by: acorn, hseigel, coleenp
2013-11-26 09:52:22 -05:00
Yumin Qi
7496b461e3 8025632: Remove all references to MagicLambdaImpl from Hotspot
MagicLambdaImpl was removed from jdk side, this should be done in vm side too

Reviewed-by: coleenp, hseigel, rdurbin
2013-11-13 16:24:33 -08:00
Karen Kinnear
4f064cafe6 8026365: NoClassDefinitionFound for anonymous class invokespecial
Reviewed-by: dcubed, kamg
2013-10-17 23:30:17 -04:00
Karen Kinnear
920880a243 8026022: Verifier: allow anon classes to invokespecial host class/intf methods
Reviewed-by: coleenp, bharadwaj
2013-10-08 16:58:23 -04:00
Karen Kinnear
fdf2c975ed 8023872: Verification error in generated lambda classes
Skip verification for generated lambda classes

Reviewed-by: kamg, dholmes
2013-08-30 15:15:56 -04:00
Harold Seigel
1ff22f2ed9 8016764: JVM does not prohibit invokespecial in c.f.v 51.0 that invokes default interface method in c.f.v 52.0
Check cfv before allowing invokespecial call to default method.

Reviewed-by: kamg, acorn, dholmes
2013-08-29 10:33:13 -04:00
Yumin Qi
c6aa9c656f 8003557: NPG: Klass* const k should be const Klass* k
With NPG, const KlassOop klass which is in fact a definition converted to Klass* const, which is not the original intention. The right usage is converting them to const Klass*.

Reviewed-by: coleenp, kvn
2013-05-10 08:27:30 -07:00
Bharadwaj Yadavalli
be10521e31 8011671: JCK tests on static interface methods fail under b84: Illegal type at constant pool entry 5
Restore incorrect removal of support for static interface method verification in Java 8

Reviewed-by: kvn, coleenp
2013-04-09 08:52:32 -07:00
Harold Seigel
feec2af7b4 8009595: The UseSplitVerifier option needs to be deprecated
Put UseSplitVerifier option on the deprecated list.

Reviewed-by: dcubed, kmo, acorn
2013-03-26 09:06:16 -04:00
Bharadwaj Yadavalli
0e9d409036 8009552: test/vm/verifier/TestStaticIF.java failing with hs25.0-b
Remove support for verification of class files with version 52 and above from type inference verifier.

Reviewed-by: acorn, hseigel
2013-03-25 09:36:15 -07:00
Harold Seigel
41f0004e4f 8010667: Non-zero padding is not allowed in splitverifier for tableswitch/lookupswitch instructions
Don't check the padding bits if class file version is >= 51.

Reviewed-by: kvn, dholmes, coleenp
2013-03-25 08:37:28 -04:00
Bharadwaj Yadavalli
ff4bbcd501 8007736: VerifyError for static method in interface
Reviewed-by: dholmes, acorn
2013-02-14 14:33:35 -05:00
Harold Seigel
7fee66f152 8000725: NPG: method_holder() and pool_holder() and pool_holder field should be InstanceKlass
Change types of above methods and field to InstanceKlass and remove unneeded casts from the source files.

Reviewed-by: dholmes, coleenp, zgu
2012-11-06 15:09:37 -05:00
Keith McGuigan
6563cda42b 7200776: Implement default methods in interfaces
Add generic type analysis and default method selection algorithms

Reviewed-by: coleenp, acorn
2012-10-11 12:25:42 -04:00
Jon Masamitsu
5c58d27aac 6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Daniel D. Daugherty
9d85b8e187 Merge 2012-08-17 11:57:46 -07:00
Christian Thalinger
e622fcdc27 7188911: nightly failures after JSR 292 lazy method handle update (round 2)
Reviewed-by: kvn, jrose
2012-08-07 14:32:08 -07:00
Keith McGuigan
dbe25e46f3 7116786: RFE: Detailed information on VerifyErrors
Provide additional detail in VerifyError messages

Reviewed-by: sspitsyn, acorn
2012-08-06 15:54:45 -04:00
Bertrand Delsart
37d969c6ab Merge 2012-07-02 04:19:22 -04:00
Jiangli Zhou
56df3bd48d 7178145: Change constMethodOop::_exception_table to optionally inlined u2 table
Change constMethodOop::_exception_table to optionally inlined u2 table.

Reviewed-by: bdelsart, coleenp, kamg
2012-06-26 19:08:44 -04:00
Lana Steuck
b126348850 Merge 2012-06-26 10:27:11 -07:00
Keith McGuigan
1ac7879229 7166498: JVM crash in ClassVerifier
Fixed raw pointer being used after potential safepoint/GC

Reviewed-by: acorn, fparain, dholmes
2012-06-04 10:22:37 -04:00