diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-02-03 00:41:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-02-03 00:41:47 +0000 |
commit | 63dcac2b48096ad074f6a0541bb86985431c40a3 (patch) | |
tree | 7e9f5ae3e621bf35333c6a2870f04cc453bf107f | |
parent | 563469eedd77a78235175eaa2604cf38d79e5e14 (diff) | |
parent | 9448490d7fee6c64b9dcc71a87f20ec746730a7f (diff) | |
download | mockito-simpleperf-release.tar.gz |
Merge "Snap for 11400057 from ece464fd0a2f69b4dfe7e57ff9d2e1c04f2172ae to simpleperf-release" into simpleperf-releasesimpleperf-release
-rw-r--r-- | README.version | 1 | ||||
-rw-r--r-- | src/main/java/org/mockito/internal/framework/DefaultMockitoSession.java | 21 |
2 files changed, 20 insertions, 2 deletions
diff --git a/README.version b/README.version index 33436a1..1a82721 100644 --- a/README.version +++ b/README.version @@ -9,4 +9,5 @@ Dexmaker module. The source can be updated using the update_source.sh script. Local Modifications: + Fixed DefaultMockitoSession constructor. (I14ed7c032a974c3a65caaf091d36d9667ea331b6) New API to clean up all inline mocks after test (8bdfbf053ab6e4fc14a3eaecb613f5838fdf0f09) diff --git a/src/main/java/org/mockito/internal/framework/DefaultMockitoSession.java b/src/main/java/org/mockito/internal/framework/DefaultMockitoSession.java index c900bf7..c81baf2 100644 --- a/src/main/java/org/mockito/internal/framework/DefaultMockitoSession.java +++ b/src/main/java/org/mockito/internal/framework/DefaultMockitoSession.java @@ -32,8 +32,25 @@ public class DefaultMockitoSession implements MockitoSession { } catch (RedundantListenerException e) { Reporter.unfinishedMockingSession(); } - for (Object testClassInstance : testClassInstances) { - MockitoAnnotations.initMocks(testClassInstance); + try { + for (Object testClassInstance : testClassInstances) { + MockitoAnnotations.initMocks(testClassInstance); + } + } catch (RuntimeException | Error e) { + try { + // TODO: ideally this scenario should be tested on DefaultMockitoSessionBuilderTest, + // but we don't have any Android.bp project to run it. + // Besides, the latest Mockito code (https://github.com/mockito/mockito/blob/main/src/main/java/org/mockito/internal/framework/DefaultMockitoSession.java + // at the time this patch was merged) has a different workflow, where the listener + // is marked as dirty when an exception is thrown, so we're forking the solution. + Mockito.framework().removeListener(listener); + } catch (RuntimeException | Error e2) { + // Ignore it, as the real failure is e, thrown at the end + System.err.println("DefaultMockitoSession: ignoring exception thrown when removing " + + "listener " + listener); + e2.printStackTrace(System.err); + } + throw e; } } |