@@ -37,6 +37,7 @@ void main() {
3737 minCompileSdkVersionHandler,
3838 jvm11RequiredHandler,
3939 outdatedGradleHandler,
40+ sslExceptionHandler,
4041 ])
4142 );
4243 });
@@ -1054,6 +1055,73 @@ A problem occurred evaluating project ':flutter'.
10541055 });
10551056 });
10561057
1058+ group ('SSLException' , () {
1059+ testWithoutContext ('pattern' , () {
1060+ expect (
1061+ sslExceptionHandler.test (r'''
1062+ Exception in thread "main" javax.net.ssl.SSLException: Tag mismatch!
1063+ at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129)
1064+ at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
1065+ at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264)
1066+ at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259)
1067+ at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:129)
1068+ at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1155)
1069+ at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1125)
1070+ at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:823)
1071+ at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:290)
1072+ at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
1073+ at java.base/sun.net.www.MeteredStream.read(MeteredStream.java:134)
1074+ at java.base/java.io.FilterInputStream.read(FilterInputStream.java:133)
1075+ at java.base/sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3444)
1076+ at java.base/sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3437)
1077+ at org.gradle.wrapper.Download.downloadInternal(Download.java:62)
1078+ at org.gradle.wrapper.Download.download(Download.java:44)
1079+ at org.gradle.wrapper.Install$1.call(Install.java:61)
1080+ at org.gradle.wrapper.Install$1.call(Install.java:48)
1081+ at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
1082+ at org.gradle.wrapper.Install.createDist(Install.java:48)
1083+ at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
1084+ at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)'''
1085+ ),
1086+ isTrue,
1087+ );
1088+
1089+ expect (
1090+ sslExceptionHandler.test (r'''
1091+ Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
1092+ at java.base/com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:580)
1093+ at java.base/com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1049)
1094+ at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:985)
1095+ at java.base/com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:491)
1096+ at java.base/javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:779)
1097+ at java.base/javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
1098+ at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2497)
1099+ at java.base/sun.security.ssl.SSLCipher$T12GcmReadCipherGenerator$GcmReadCipher.decrypt(SSLCipher.java:1613)
1100+ at java.base/sun.security.ssl.SSLSocketInputRecord.decodeInputRecord(SSLSocketInputRecord.java:262)
1101+ at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:190)
1102+ at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)'''
1103+ ),
1104+ isTrue,
1105+ );
1106+ });
1107+
1108+ testUsingContext ('suggestion' , () async {
1109+ final GradleBuildStatus status = await sslExceptionHandler.handler ();
1110+
1111+ expect (status, GradleBuildStatus .retry);
1112+ expect (testLogger.errorText,
1113+ contains (
1114+ 'Gradle threw an error while downloading artifacts from the network.'
1115+ )
1116+ );
1117+ }, overrides: < Type , Generator > {
1118+ GradleUtils : () => FakeGradleUtils (),
1119+ Platform : () => fakePlatform ('android' ),
1120+ FileSystem : () => MemoryFileSystem .test (),
1121+ ProcessManager : () => FakeProcessManager .empty (),
1122+ });
1123+ });
1124+
10571125}
10581126
10591127bool formatTestErrorMessage (String errorMessage, GradleHandledError error) {
0 commit comments