History log of /art/test/626-const-class-linking/src-multidex/Helper3.java
Revision Date Author Comments
c5798bf82fc0ccd0bb90e0813d8e63df4d0576cc 09-Dec-2016 Vladimir Marko <vmarko@google.com> Revert^8 "Make sure that const-class linkage is preserved."

Replaced two ReaderMutexLocks with WriterMutexLocks.
Removed some unnecessary debugging output.

Test: m test-art-host
Bug: 30627598
Original-Change-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8

This reverts commit 2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8.

Change-Id: I3a1aeecf64e4b202cef61cceb248d48106a2f4a6
2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8 01-Dec-2016 Vladimir Marko <vmarko@google.com> Revert "Make sure that const-class linkage is preserved, try again."

Reverting due to test failures as expected.

Bug: 30627598
Bug: 33231647

This reverts commit cb5ab35980a86b05586c402924d2e7ca9df25758.
Squashed revert "Additional debug logging for bug 33231647."
This reverts commit 00a441033db28d243fc33692d30eb2755fa81728.

Change-Id: I0c0ee1f70d47540fec99f8a797ce13571c16147c
cb5ab35980a86b05586c402924d2e7ca9df25758 30-Nov-2016 Vladimir Marko <vmarko@google.com> Make sure that const-class linkage is preserved, try again.

This CL causes occasional test failures on the build servers
which we were not able to reproduce locally. So we add some
some additional debug output to help pinpoint the cause.

Bug: 30627598
Bug: 33231647
Test: m test-art-host

This reverts commit 171cf811a1cdf8b1cbc5151505d8630741ce4cf3.

Change-Id: Id56a3f0e86e8212fd547e09c61794401bff47fb0
171cf811a1cdf8b1cbc5151505d8630741ce4cf3 29-Nov-2016 Vladimir Marko <vmarko@google.com> Revert "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved."""""

Bug: 30627598

This reverts commit e47172b75b8b04a450d235cf72bdc4e223a29cb5.

Change-Id: I038029c71195a80f041982e82ae556d3157db7b8
e47172b75b8b04a450d235cf72bdc4e223a29cb5 25-Nov-2016 Vladimir Marko <vmarko@google.com> Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved.""""

Avoid class loading triggered by verification in the
626-const-class-linking test. Expect spurious wakeups.

Add extra debugging output for a very strange failure
image_writer.cc:1144] Check failed:
!IsBootClassLoaderClass(as_klass)
java.lang.Class<java.lang.NoSuchMethodError>
That class is supposed to be in the boot image (core.art for
tests), so the failing check should not be reached at all.

Test: m test-art-host
Test: m ART_TEST_OPTIMIZING=true \
ART_TEST_JIT=true \
ART_TEST_INTERPRETER=true \
ART_TEST_INTERPRETER_ACCESS_CHECKS=true \
test-art-host-run-test-626-const-class-linking
Bug: 30627598

This reverts commit 09ded9201fbeec605b12741ae255663c14bda225.

Change-Id: I65a68cb53f0707b8abb3555ac3dc44c82907aef5
09ded9201fbeec605b12741ae255663c14bda225 24-Nov-2016 Vladimir Marko <vmarko@google.com> Revert "Revert "Revert "Make sure that const-class linkage is preserved."""

626-const-class-linking is failing (spurious wakeups?)
970-iface-super-resolution-gen is failing:
dex2oatd F 11-24 10:57:16 6410 6410 image_writer.cc:1144]
Check failed: !IsBootClassLoaderClass(as_klass)
java.lang.Class<java.lang.NoSuchMethodError>

Bug: 30627598

This reverts commit 25dcbad4462ea7279ee2bbe0884abc25bdfac77a.

Change-Id: Ie010169bdde45e6ccf2e04a521da4682bd817114
25dcbad4462ea7279ee2bbe0884abc25bdfac77a 23-Nov-2016 Vladimir Marko <vmarko@google.com> Revert "Revert "Make sure that const-class linkage is preserved.""

Fix jdwp getting multiple instances of the same class.
Fix counting "zygote"/"non-zygote" classes in class table.
Fix FindClass() to EnsureResolved() classes added by
a racing thread to the class table.

Test: m test-art-host
Test: art/tools/run-jdwp-tests.sh --mode=host --variant=X64 --debug
Bug: 30627598

This reverts commit ecffc67068a28d55d131553bf915fdb9fafbbc03.

Change-Id: I15807949da4f163c2693fac2fbfc274f17685f8a
ecffc67068a28d55d131553bf915fdb9fafbbc03 22-Nov-2016 Vladimir Marko <vmarko@google.com> Revert "Make sure that const-class linkage is preserved."

Bug: 30627598

This reverts commit 19886dbeced9430579a27979beb92b09c95197b4.
Squashed reverts of subsequent partial fixes.
This reverts commit bad475a63b7c938b7ff7903ea1dae27369c3f629.
This reverts commit 0ba0c7d9b0328af39a385014652eb9af4e42d8b5.
This reverts commit ddb8afec79492750f16f98e5bd07d44f3dc485d4.

Change-Id: Id94af5ae56a0335f9641a79c885cc75bba971713
19886dbeced9430579a27979beb92b09c95197b4 11-Nov-2016 Vladimir Marko <vmarko@google.com> Make sure that const-class linkage is preserved.

After calling loadClass() on the initiating loader, insert
the Class to the ClassTable. Check that the returned class
has the correct name and that the ClassTable does not yet
contain a different Class for the same name. If either check
fails, follow the RI behavior for parallel capable class
loaders, i.e. throw NoClassDefFoundError for name mismatch
(with more descriptive message than RI) or return the Class
already present in the ClassTable. This ensures that the
const-class instruction for a given name always gives the
same result as the first time it succeeded for the same
initiating loader, even for non-well-behaved loader.

Inserting the Class to the ClassTable is also a necessary
step for changing to hash-based dex cache type array when
the DexCache will not necessarily keep the Class and
therefore the defining loader alive while the initiating
loader stays alive, so the ClassTable entry is necessary
to keep the dependecy.

Add tests that a const-class instruction always returns the
same Class<?> as it returned the first time, i.e. when it
was "linked", even for class loaders that are not
well-behaved, even if the dex cache type array is cleared.
Also test the edge cases, i.e. NoClassDefFoundError and
returning old entry from ClassTable when already inserted
by another thread.

Bug: 30627598
Test: 626-const-class-linking
Test: m test-art-host
Change-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8