Skip to content

Commit

Permalink
Improved robustness when critical JRE classes such as java.lang.Syste…
Browse files Browse the repository at this point in the history
…m get fully @mocked; closes #415.
  • Loading branch information
rliesenfeld committed Apr 30, 2017
1 parent 86703df commit f152c0c
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion main/src/mockit/internal/startup/JMockitInitialization.java
Expand Up @@ -5,6 +5,7 @@
package mockit.internal.startup;

import java.lang.instrument.*;
import java.util.*;
import javax.annotation.*;

import mockit.*;
Expand All @@ -30,7 +31,16 @@ void initialize(@Nonnull Instrumentation inst)
applyUserSpecifiedStartupMocksIfAny();
}

private static void preventEventualClassLoadingConflicts() { DefaultValues.computeForReturnType("()J"); }
private static void preventEventualClassLoadingConflicts()
{
// Ensure the proper loading of data files by the JRE, whose names depend on calls to the System class,
// which may get @Mocked.
TimeZone.getDefault();
Currency.getInstance(Locale.getDefault());

DefaultValues.computeForReturnType("()J");
Utilities.calledFromSpecialThread();
}

private void applyInternalStartupMocksAsNeeded()
{
Expand Down

0 comments on commit f152c0c

Please sign in to comment.