Square’s meticulous HTTP client for the JVM, Android, and GraalVM.

Overview

OkHttp

See the project website for documentation and APIs.

HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP efficiently makes your stuff load faster and saves bandwidth.

OkHttp is an HTTP client that’s efficient by default:

  • HTTP/2 support allows all requests to the same host to share a socket.
  • Connection pooling reduces request latency (if HTTP/2 isn’t available).
  • Transparent GZIP shrinks download sizes.
  • Response caching avoids the network completely for repeat requests.

OkHttp perseveres when the network is troublesome: it will silently recover from common connection problems. If your service has multiple IP addresses, OkHttp will attempt alternate addresses if the first connect fails. This is necessary for IPv4+IPv6 and services hosted in redundant data centers. OkHttp supports modern TLS features (TLS 1.3, ALPN, certificate pinning). It can be configured to fall back for broad connectivity.

Using OkHttp is easy. Its request/response API is designed with fluent builders and immutability. It supports both synchronous blocking calls and async calls with callbacks.

Get a URL

This program downloads a URL and prints its contents as a string. Full source.

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

Post to a Server

This program posts data to a service. Full source.

public static final MediaType JSON
    = MediaType.get("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(JSON, json);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

Further examples are on the OkHttp Recipes page.

Requirements

OkHttp works on Android 5.0+ (API level 21+) and Java 8+.

OkHttp depends on Okio for high-performance I/O and the Kotlin standard library. Both are small libraries with strong backward-compatibility.

We highly recommend you keep OkHttp up-to-date. As with auto-updating web browsers, staying current with HTTPS clients is an important defense against potential security problems. We track the dynamic TLS ecosystem and adjust OkHttp to improve connectivity and security.

OkHttp uses your platform's built-in TLS implementation. On Java platforms OkHttp also supports Conscrypt, which integrates BoringSSL with Java. OkHttp will use Conscrypt if it is the first security provider:

Security.insertProviderAt(Conscrypt.newProvider(), 1);

The OkHttp 3.12.x branch supports Android 2.3+ (API level 9+) and Java 7+. These platforms lack support for TLS 1.2 and should not be used. But because upgrading is difficult, we will backport critical fixes to the 3.12.x branch through December 31, 2021.

Releases

Our change log has release history.

The latest release is available on Maven Central.

implementation("com.squareup.okhttp3:okhttp:4.9.0")

Snapshot builds are available. R8 and ProGuard rules are available.

Also, we have a bill of materials (BOM) available to help you keep OkHttp artifacts up to date and be sure about version compatibility.

    dependencies {
       // define a BOM and its version
       implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.0"))
       
       // define any required OkHttp artifacts without version
       implementation("com.squareup.okhttp3:okhttp")
       implementation("com.squareup.okhttp3:logging-interceptor")
    }

MockWebServer

OkHttp includes a library for testing HTTP, HTTPS, and HTTP/2 clients.

The latest release is available on Maven Central.

testImplementation("com.squareup.okhttp3:mockwebserver:4.9.0")

GraalVM Native Image

Building your native images with Graal https://www.graalvm.org/ should work automatically. Please report any bugs or workarounds you find.

See the okcurl module for an example build.

$ ./gradlew okcurl:nativeImage
$ ./okcurl/build/graal/okcurl https://httpbin.org/get

License

Copyright 2019 Square, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Analytics API

    Analytics API

    We should add verbose logging for the response cache. Folks occasionally are puzzled when the cache doesn't work. Let's make it easy for them to figure out why.

    It would also be handy for debug panels and optimizers to monitor bytes in and out, connections created, etc.

    enhancement 
    opened by swankjesse 106
  • EOFException in RealBufferedSource.readUtf8LineStrict

    EOFException in RealBufferedSource.readUtf8LineStrict

    A few people have reported this. Needs investigation & fix.

    java.io.EOFException: null
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:154) ~[na:0.0]
        at com.squareup.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:189) ~[na:0.0]
        at com.squareup.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:101) ~[na:0.0]
        at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:676) ~[na:0.0]
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:426) ~[na:0.0]
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:371) ~[na:0.0]
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:466) ~[na:0.0]
        at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105) ~[na:0.0]
    
    bug 
    opened by swankjesse 100
  • EOFException in RealBufferedSource.readUtf8LineStrict(): 0-bytes in stream

    EOFException in RealBufferedSource.readUtf8LineStrict(): 0-bytes in stream

    We're getting an EOF exception with size=0 in the stream.

    java.io.EOFException: \n not found: size=0 content=...
                at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:200)
                at com.squareup.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:187)
                at com.squareup.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:80)
                at com.squareup.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:791)
                at com.squareup.okhttp.internal.http.HttpEngine.access$200(HttpEngine.java:90)
    

    (Forked from issue 1114.)

    bug 
    opened by swankjesse 78
  • Unable to extract the trust manager

    Unable to extract the trust manager

    Hi, after upgrading from OkHttp 3.0.1 to 3.1.0 I get the following stack trace and crash after calling build() to create a OkHttpClient.

    java.lang.IllegalStateException: Unable to extract the trust manager on [email protected], sslSocketFactory is class com.google.android.gms.org.conscrypt.KitKatPlatformOpenSSLSocketAdapterFactory
                                                                            at okhttp3.OkHttpClient.<init>(OkHttpClient.java:187)
                                                                            at okhttp3.OkHttpClient.<init>(OkHttpClient.java:60)
                                                                            at okhttp3.OkHttpClient$Builder.build(OkHttpClient.java:719)
    

    This issue was not present in 3.0.1.

    Here's where the crash happens:

    OkHttpClient.Builder builder = new OkHttpClient.Builder()
                        .connectTimeout(10, TimeUnit.SECONDS)
                        .writeTimeout(10, TimeUnit.SECONDS)
                        .readTimeout(30, TimeUnit.SECONDS);
    
                OkHttpClient client = builder.build();
    
    bug 
    opened by AlexLardschneider 72
  • NoSuchElementException in RouteSelector

    NoSuchElementException in RouteSelector

    okhttp 3.7.0 retrofit 2.2.0

    All device brands and Android versions are reporting this issue.

    It happened for example after I tapped a notification, the app then makes a GET which ended in this exception. It didn't happen when I recreated the scenario. Device was Pixel, Android 7.1.2, on WLAN.

    java.util.NoSuchElementException
      at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:77)
      at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:171)
      at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121)
      at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100)
      at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
      at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
      at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
      at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:211)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
      at com.readystatesoftware.chuck.ChuckInterceptor.intercept(ChuckInterceptor.java:167)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
      at com.myownpackage.manager.OkHttpManager$AuthenticationInterceptor.intercept(OkHttpManager.java:135)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
      at com.myownpackage.manager.OkHttpManager$NetworkLoggingInterceptor.intercept(OkHttpManager.java:190)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
      at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:185)
      at okhttp3.RealCall.execute(RealCall.java:69)
      at retrofit2.OkHttpCall.execute(OkHttpCall.java:174)
      at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall.execute(ExecutorCallAdapterFactory.java:89)
      at com.myownpackage.ui.ProfileFragment$11.doInBackground(ProfileFragment.java:516)
      at com.myownpackage.ui.ProfileFragment$11.doInBackground(ProfileFragment.java:511)
      at com.nanotasks.AbstractTask.doInBackground(AbstractTask.java:18)
      at com.nanotasks.AbstractTask.doInBackground(AbstractTask.java:7)
      at android.os.AsyncTask$2.call(AsyncTask.java:305)
      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
      at java.lang.Thread.run(Thread.java:761)
    
    opened by Jeff11 65
  • support enabling TLSv1.2 on Android 4.1-4.4.

    support enabling TLSv1.2 on Android 4.1-4.4.

    Our lawyers and security consultants claim that for PCI compliance*, we must disable TLS 1.0 and 1.1 on our servers. For some confusing reason, Android has supported TLS 1.2 since API 16 (android 4.1) but enabled it by default only since API 20 (android "4.4W").

    With okhttp 2.6, we were able to force use of TLS 1.2 with:

    OkHttpClient cli = new OkHttpClient();
    SSLContext sc = SSLContext.getInstance("TLSv1.2");
    sc.init(null, null, null);
    cli.setSslSocketFactory(new Tls12SocketFactory(sc.getSocketFactory()));
    ConnectionSpec cs = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
            .tlsVersions(TlsVersion.TLS_1_2)
            .build();
    cli.setConnectionSpecs(ImmutableList.of(cs));
    

    where Tls12SocketFactory is this.

    However, okhttp 3.1 uses some kind of reflection on internal implementation details of the SSLSocketFactory, so the above implementation no longer works. And, indeed, it's a bit silly to make callers write so much code anyway. Specifying TLS_1_2 in the ConnectionSpec should be enough to get TLSv1.2 whenever it is supported.

    As far as I can tell, the only reason why the custom socket factory is needed in the first place is that ConnectionSpec.supportedSpec() calls SSLSocket.getEnabledProtocols() to learn the list of protocols supported by the system, so on Android 4.x where TLS 1.2 is supported but not enabled by default, OkHttp thinks 1.2 is not supported at all.

    Sorry for this long bug report: I think the fix is as simple as changing getEnabledProtocols() above to getSupportedProtocols() but wanted to submit this bug for discussion before making a PR with such a change, in case there is some affirmative reason why it's the other way now.

    * Originally I understood the PCI compliance deadline to be June 2016; however, it seems like it has since been changed to be June 2018. Regardless, OkHttp should support this change for users that want it.

    android 
    opened by mlc 63
  • WARNING: A connection to https://... was leaked. Did you forget to close a response body?

    WARNING: A connection to https://... was leaked. Did you forget to close a response body?

    Version: com.squareup.okhttp3:okhttp:3.0.1

    Log message:

    <timestamp> okhttp3.ConnectionPool pruneAndGetAllocationCount
    WARNING: A connection to https://... was leaked. Did you forget to close a response body?
    

    Code:

    private String get(final String url) {
        String res = null;
        try {
            final Request req = new Request.Builder().url(url).get().build();
            final Response resp = ok.newCall(req).execute();
            final int code = resp.code();
            if (code == 200) {
                final ResponseBody body = resp.body();
                res = body.string();
                body.close(); // even this doesn't work!
            }
        }
        catch (final Throwable th) {
            System.out.println(th.getMessage());
        }
        return res;
    }
    
    opened by bxqgit 62
  • ETag and If-None-Match

    ETag and If-None-Match

    I have troubles with the ETag-based caching. I am using OkHttp 1.5.4 and Retrofit 1.5.1 with HttpResponseCache set. There are logs below for better explanation.

    The request with the Session header set to a token A. OkHttp hits the network, which is great.

    ---> HTTP GET https://localhost/shares
    Session: TOKEN_A
    Accept: application/json
    User-Agent: Application/1.0.0 (Android 4.4.2; Nexus 4) Size/4.7 Resolution/1280x768
    ---> END HTTP (0-byte body)
    <--- HTTP 200 https://localhost/shares (402ms)
    : HTTP/1.1 200 OK
    Content-Length: 136
    Content-Type: application/json
    Date: Sat, 17 May 2014 11:07:20 GMT
    Etag: "677210f4c22a13203551e2b92a20684528a23c87"
    Last-Modified: Sat, 17 May 2014 04:07:20 GMT
    OkHttp-Received-Millis: 1400324839589
    OkHttp-Response-Source: NETWORK 200
    OkHttp-Sent-Millis: 1400324839194
    <--- END HTTP (136-byte body)
    

    The second request with the Session header set to a token A. OkHttp hits the cache, which is great as well.

    ---> HTTP GET https://localhost/shares
    Session: TOKEN_A
    Accept: application/json
    User-Agent: Application/1.0.0 (Android 4.4.2; Nexus 4) Size/4.7 Resolution/1280x768
    ---> END HTTP (0-byte body)
    GC_FOR_ALLOC freed 415K, 5% free 9588K/10036K, paused 19ms, total 19ms
    <--- HTTP 200 https://localhost/shares (46ms)
    : HTTP/1.1 200 OK
    Content-Length: 136
    Content-Type: application/json
    Date: Sat, 17 May 2014 11:07:20 GMT
    Etag: "677210f4c22a13203551e2b92a20684528a23c87"
    Last-Modified: Sat, 17 May 2014 04:07:20 GMT
    OkHttp-Received-Millis: 1400324839589
    OkHttp-Response-Source: CACHE 200
    OkHttp-Sent-Millis: 1400324839194
    <--- END HTTP (136-byte body)
    

    The third request with the Session header set to token B. OkHttp hits the cache again, which is not so great, because in this case the server returns a different response with a different ETag actually.

    ---> HTTP GET https://localhost/shares
    Session: TOKEN_B
    Accept: application/json
    User-Agent: Application/1.0.0 (Android 4.4.2; Nexus 4) Size/4.7 Resolution/1280x768
    ---> END HTTP (0-byte body)
    <--- HTTP 200 https://localhost/shares (11ms)
    : HTTP/1.1 200 OK
    Content-Length: 136
    Content-Type: application/json
    Date: Sat, 17 May 2014 11:07:20 GMT
    Etag: "677210f4c22a13203551e2b92a20684528a23c87"
    Last-Modified: Sat, 17 May 2014 04:07:20 GMT
    OkHttp-Received-Millis: 1400324839589
    OkHttp-Response-Source: CACHE 200
    OkHttp-Sent-Millis: 1400324839194
    <--- END HTTP (136-byte body)
    

    Personally I expect to see the If-None-Match at the second and the third requests. Is the issue related to the lack of Cache-Control header at servers’s responses? Maybe I just don’t understand the caching strategy properly.

    opened by arturdryomov 50
  • HTTP/2 uses non-daemon threads

    HTTP/2 uses non-daemon threads

    The following one-line program does not close properly on Java 9:

    public static void main(String[] args) throws IOException {
        System.out.println(new OkHttpClient.Builder().build().newCall(new Request.Builder().url("https://google.de").build()).execute());
    }
    

    It hangs for a very significant amount of time after the request is already finished before it allows the program to quit.

    This a little modified version works flawlessly and allows the program to quit immediately after the request is finished.

    public static void main(String[] args) throws IOException {
        System.out.println(new OkHttpClient.Builder().protocols(Collections.singletonList(Protocol.HTTP_1_1)).build().newCall(new Request.Builder().url("https://google.de").build()).execute());
    }
    

    Running on Java 8 also fixes the problem, as there HTTP 1.1 is used, not HTTP 2.0.

    The problem is a hanging non-deamon thread called OkHttp google.de. Here you have the stacktrace of the thread when the program should quit:

    "OkHttp [email protected]" prio=5 tid=0x11 nid=NA runnable
      java.lang.Thread.State: RUNNABLE
    	  at java.net.SocketInputStream.socketRead0(SocketInputStream.java:-1)
    	  at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    	  at java.net.SocketInputStream.read(SocketInputStream.java:171)
    	  at java.net.SocketInputStream.read(SocketInputStream.java:141)
    	  at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:425)
    	  at sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:65)
    	  at sun.security.ssl.SSLSocketImpl.bytesInCompletePacket(SSLSocketImpl.java:918)
    	  - locked <0x792> (a java.lang.Object)
    	  at sun.security.ssl.AppInputStream.read(AppInputStream.java:144)
    	  - locked <0x793> (a sun.security.ssl.AppInputStream)
    	  at okio.Okio$2.read(Okio.java:140)
    	  at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
    	  at okio.RealBufferedSource.request(RealBufferedSource.java:68)
    	  at okio.RealBufferedSource.require(RealBufferedSource.java:61)
    	  at okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.java:95)
    	  at okhttp3.internal.http2.Http2Connection$ReaderRunnable.execute(Http2Connection.java:608)
    	  at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    	  at java.lang.Thread.run(Thread.java:844)
    

    I find it quite strange that this thread is hanging on a socketRead operation, while the request is already finished successfully.

    enhancement 
    opened by Vampire 48
  • IOException in DiskLruCache in 1.5.0.

    IOException in DiskLruCache in 1.5.0.

    Upgraded to v1.5.0 and I'm seeing a lot of these exceptions thrown.

    java.lang.RuntimeException: java.io.IOException: failed to delete /data/data/app.philm.in/cache/picasso-cache/452f1b31c49eebbd77673818036d6560.0
           at com.squareup.okhttp.internal.DiskLruCache$1.run(DiskLruCache.java:175)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
           at java.lang.Thread.run(Thread.java:841)
    Caused by: java.io.IOException: failed to delete /data/data/app.philm.in/cache/picasso-cache/452f1b31c49eebbd77673818036d6560.0
           at com.squareup.okhttp.internal.DiskLruCache.remove(DiskLruCache.java:584)
           at com.squareup.okhttp.internal.DiskLruCache.trimToSize(DiskLruCache.java:639)
           at com.squareup.okhttp.internal.DiskLruCache.access$100(DiskLruCache.java:86)
           at com.squareup.okhttp.internal.DiskLruCache$1.run(DiskLruCache.java:169)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
           at java.lang.Thread.run(Thread.java:841)
    
    opened by chrisbanes 48
  • ProtocolException: unexpected end of stream while downloading a file

    ProtocolException: unexpected end of stream while downloading a file

    Using a library which uses okhttp to download files, I am usually getting an unexpected end of stream error while downloading large files (thrown at the end of the download). I am using the following code and URL to reproduce the error:

    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder().url("http://speedtest-sfo1.digitalocean.com/100mb.test").build();
    client.newCall(request).enqueue(new Callback() {
    	public void onFailure(Call call, IOException e) {
    		e.printStackTrace();
    	}
    
    	public void onResponse(Call call, Response response) throws IOException {
    		if (!response.isSuccessful()) {
    			throw new IOException("Failed to download file: " + response);
    		}
    
    		FileOutputStream fos = new FileOutputStream(downloadDirectory + File.separator + "100mb.test");
    		fos.write(response.body().bytes());
    		fos.close();
    	}
    });
    

    URL: http://speedtest-sfo1.digitalocean.com/100mb.test (This is not the only URL the error is thrown on)

    The code has been tested on API 22, 25, 26, 27. The error is not thrown always, I tested it 10 times and got the error 6 times, 4 times the file got successfully downloaded and saved..

    I have read about the error and I know that it gets thrown when the servers sends incorrect Content-Length, not this time though. The file is exactly 100MB and the server supplies its correct length. I am not sending any extra request headers, the response headers are:

    Server => nginx/1.13.3
    Date => Sat, 09 Dec 2017 17:19:31 GMT
    Content-Type => text/plain
    Content-Length => 104857600
    Last-Modified => Mon, 27 Nov 2017 09:11:00 GMT
    Connection => close
    ETag => "5a1bd6a4-6400000"
    Access-Control-Allow-Origin => *
    Access-Control-Allow-Headers => Origin,X-RequestedWith,Content-Type,Range
    Access-Control-Allow-Methods => GET, OPTIONS
    Accept-Ranges => bytes
    Cache-Control => max-age=0, no-cache, no-store, mustrevalidate, no-transform
    
    

    The complete error:

    Callback failure for call to http://speedtest-sfo1.digitalocean.com/...
    java.net.ProtocolException: unexpected end of stream
        at okhttp3.internal.http1.Http1Codec$FixedLengthSource.read(Http1Codec.java:406)
        at okio.Buffer.writeAll(Buffer.java:1005)
        at okio.RealBufferedSource.readByteArray(RealBufferedSource.java:107)
        at okhttp3.ResponseBody.bytes(ResponseBody.java:136)
        at dm.com.downloadmanager.MainActivity$3.onResponse(MainActivity.java:273)
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)
    
    needs info 
    opened by ali-idrizi 47
  • Update org-jetbrains-kotlin to v1.7.20

    Update org-jetbrains-kotlin to v1.7.20

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains.kotlin:kotlin-test-junit (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-test-js (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-test-common (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-test-annotations-common (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-osgi-bundle (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-stdlib (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-reflect (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-test-junit5 (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.kotlin:kotlin-gradle-plugin (source) | 1.7.10 -> 1.7.20 | age | adoption | passing | confidence |


    Release Notes

    JetBrains/kotlin

    v1.7.20

    1.7.20

    Analysis API
    • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
    • KT-52136 FIR: Implicit type declaration from the other module cannot be used for overloading
    Analysis API. FE1.0
    • KT-51962 Analysis API: Finish Analysis API for FE1.0
    Analysis API. FIR
    • KT-52779 FIR IDE: Import Optimizer cannot handle generic type qualifiers
    • KT-50236 Fix OOB modification trackers for non-Kotlin code
    • KT-51240 Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.
    • KT-50868 Analysis API: decompiled type aliases are not resolved
    Compiler
    • KT-53739 Builder inference, extension hides members
    • KT-53733 Kotlin/Native: update source documentation for the new default memory manager
    • KT-53667 Compiler crashes on attempt to alloc a string on the stack in new MM
    • KT-53480 Internal error in file lowering: java.lang.ClassNotFoundException: com.android.systemui.R$string
    • KT-52843 Compose: NPE at Parameters.getParameterByDeclarationSlot if inline function with default arguments takes a lambda which captures value class represented by Long
    • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
    • KT-53475 Kotlin/Native for iOS: "IllegalArgumentException: Sequence has more than one element"
    New Features
    • KT-52495 Support until operator in back-ends
    • KT-52420 Implement resolve of until operator
    • KT-52419 Implement until operator in the parser
      • KT-33755 Kotlin/Native: Provide a way to customize a bundle Identifier of a generated framework
    • KT-51665 FIR: implement label resolve for "typed this" case
    • KT-52361 Report warning on potentially empty intersection types
    Performance Improvements
    • KT-47816 Disable script discovery for non-script environments
    • KT-48635 JVM IR: Double/Float values are boxed when comparing for equality in equals method of data/value classes
    • KT-23397 Optimize out field for property delegate when it's safe (JVM)
    Fixes
    • KT-53272 Backend Internal error: Exception during IR lowering / No such value argument slot: 2
    • KT-53124 Receiver type mismatch when combining extension properties, type projections, Java sources, and F-bounded type-variables
    • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
    • KT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
    • KT-52974 "IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP project
    • KT-53007 JVM: "Bad invokespecial instruction: current class isn't assignable to reference class" when call superclass of outer class method from inner class
    • KT-53019 K2: cannot cast callable reference to Function1 in runtime
    • KT-53031 K2 compiler crashes with IllegalStateException: No type in ProtoBuf.ValueParameter
    • KT-29168 Prohibit upper bounds violation with generic typealias using not all type parameters as arguments for underlying type in supertypes
    • KT-52432 Using the IDE compiled with K2 (useFir) throws VerifyError exception
    • KT-52327 False negative: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM isn't reported
    • KT-49682 Support JVM IR in KAPT stub generation
    • KT-24643 Prohibit using a type parameter declared for an extension property inside delegate
    • KT-51972 FIR, Gradle: "Symbol is invisible" compilation error with enabled Kotlin Lombok compiler plugin
    • KT-52011 [FIR] All-open compiler plugin isn't supported
    • KT-51950 JVM IR: "IndexOutOfBoundsException: Cannot pop operand off an empty stack" with crossinline lambdas and interface delegation
    • KT-52540 Native: kotlin.NotImplementedError with Arrow library
    • KT-48031 "IllegalStateException: Type variable TypeVariable(T) should not be fixed!"
    • KT-47708 RequiresOptIn check does not flag experimental method usage in SAM lambda expressions
    • KT-52913 JVM / IR: "IllegalArgumentException: Inline class types should have the same representation" when trying to down cast cast a value class
    • KT-50771 IR partial linkage: Removed abstract callable members are not supported
    • KT-52994 Enable generic inline classes as experimental feature
    • KT-52742 CYCLE_IN_ANNOTATION_PARAMETER_ERROR false positive on annotations with default values
    • KT-52743 Non-null generic functions throws NPE when assigned to val
    • KT-52745 Frontend / K2: "IncompatibleClassChangeError: class A$B overrides final method A.length()I" caused by delegation in a sealed class
    • KT-52832 Tree-generator's method FirExpression::isFirType returns true and false for different field names; it should always be true
    • KT-52403 IncompatibleClassChangeError when inlining suspend funs
    • KT-50107 Missed USAGE_IS_NOT_INLINABLE diagnostic: Leaking inline lambda parameter through extension receiver
    • KT-47965 Missed USAGE_IS_NOT_INLINABLE diagnostic on inline lambda parameter usage as receiver of .let call
    • KT-25787 No error on crossinline usage of receiver parameter of functional type in an inline function
    • KT-52762 Frontend / K2: Named arguments for Java classes lead to "Cannot find a parameter with this name"
    • KT-52680 K2: overload resolution ambiguity if this is casted in a different method
    • KT-52676 K2: Unsupported compile-time value IrGetFieldImpl instead of IrConst in AnnotationCodegen for constant from Java
    • KT-50293 False positive: USELESS_CAST on stub types
    • KT-52175 WRONG_ANNOTATION_TARGET for annotation that used inside if
    • KT-52338 "IncompatibleClassChangeError: Expected non-static field" with Kotlin class with same-named companion object property as base Java class field
    • KT-49507 JVM: "IllegalAccessError: class X tried to access private field" with same-named Kotlin property and Java base class field
    • KT-44512 FIR DFA: incorrect smartcast after null assignment inside a lambda
    • KT-49200 FIR/FE 1.0: different behavior with multiple matching star imports
    • KT-52718 declaringClass deprecation message mentions the wrong replacement in 1.7
    • KT-52190 FIR2IR: Unexpected IrErrorTypeImpl type for put method inside buildMap
    • KT-52197 Incorrect inference of var type inside lambda that passed to extension function with type parameters that defined inside this lambda
    • KT-52057 Unsupported compile-time value STRING_CONCATENATION and GET_FIELD in annotation arguments
    • KT-47823 JVM IR: "IllegalArgumentException: Inline class types should have the same representation" with break usage in the loop range
    • KT-51883 Kotlin 1.6.20 generates "-" in type names around lambdas and inline extension function with reified type which breaks Apache Beam
    • KT-52684 Syntax error regression on complicated combination of LT and GTEQ
    • KT-52417 Reflection: Can't reflect on type parameters captured by SAM converted lambda
    • KT-46797 JVM IR: suspendImpl has no generic signature, breaking reified types in anonymous object supertypes when using the type token pattern
    • KT-51464 FIR: Unable to infer type in coroutines flow code
    • KT-52163 JVM IR: Double.compareTo(Int) compiled to integer comparison
    • KT-41980 FIR: erroneous scope during annotation resolve
    • KT-47159 KtPsiUtils.areParenthesesUseless() is returning a false positive on expressions for interface delegation
    • KT-51418 Substitute anonymous type's supertypes
    • KT-35544 kotlin.TypeCastException has no message on Native
    • KT-52386 StackOverflowError during Kotlin/Native gradle build
    • KT-52592 NPE from KProperty.getExtensionDelegate on property delegated to another property
    • KT-52551 Delegating to object property reference does not invoke object's initializer
    • KT-51704 Contracts: "AssertionError: Arguments and parameters size mismatch" with companion object
    • KT-25527 False positive UNUSED_VALUE for delegated property/variable
    • KT-51002 [FIR] Hidden declaration hides visible one
    • KT-51008 [FIR] Star import does not work for nested calssifiers of java class
    • KT-52407 FIR: Star import has lower priority than built-in import
    • KT-52431 Reported error instead of warning due to empty intersection type found
    • KT-49394 Bad message and suggestion: The feature "unit conversion" is disabled
    • KT-51168 FIR: Inference error with Java interop and captured types
    • KT-49961 "AssertionError: Left expression was not processed: BINARY_EXPRESSION" when analyzing dangling [bracketed] expression inside elvis
    • KT-50108 Difference in fun interface conversion behavior for uninitialized not-null function values
    • KT-51889 Calls to super-classes constructors with context receivers fail on runtime
    • KT-51228 [FIR] Unresolved reference on callable reference on implicit this with smartcast
    • KT-52364 False positive for INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION
    • KT-52237 JVM / IR: "IllegalArgumentException: No argument for parameter VALUE_PARAMETER CONTINUATION_CLASS" when implementing Map interface on class with suspending functions
    • KT-50832 Method references to suspend inline functions are processed incorrectly
    • KT-52194 False positive "Class 'my.packge.MyClass' is compiled by a pre-release version of Kotlin and cannot be loaded by this version of the compiler" but builds fine
    • KT-47203 JVM Debugger: Parameter value doesn't change for tailrec function
    • KT-52131 False positive variable unused warning when calling inline function in finally block
    • KT-51738 Debugger: stepping over in inline function with multiple inline lambda invocations is incorrect
    • KT-52198 Losing reference to the value of an outer variable (Ref$ObjectRef) when using suspend inline with suspendCancellableCoroutine
    • KT-50994 FIR: AssertionError during inference of delegated properties with implicit types
    • KT-51757 FIR does not see various JS/Native specific declarations in common modules
    • KT-51201 FIR: ARGUMENT_TYPE_MISMATCH diagnostic contains generic parameter instead of the actual type
    • KT-48444 FIR: type argument rejected for annotation
    • KT-51754 JVM: Local variable table invalid for do-while with continue
    • KT-51936 Breakpoint not hit on last line of suspend function on Android
    • KT-27333 Forbid @Synchronized annotation on suspend functions
    • KT-51530 "StackOverflowError: CoroutineTransformerMethodVisitor.spillVariables" with data class in Flow
    • KT-51460 FIR: Protected property inaccessible from inner class
    • KT-53947 IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER
    • KT-51234 Context receivers can be duplicated in function declaration
    • KT-51576 Context receivers: "AssertionError: Callers must check that current token is IDENTIFIER followed with '@​'" with at character
    • KT-49479 JVM / IR: "IllegalStateException: IrErrorType" during IR lowering with non-trivial recursion calls
    • KT-52270 NullPointerException caused by braces on if-else returning a method reference inside lambda
    • KT-47621 False negative INVISIBLE_MEMBER on call to inaccessible protected synthetic property setter
    • KT-37796 NI: "ISE: Error type encountered" when inferring type of a property that delegates to itself
    • KT-45430 PSI2IR: "org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtCallExpression: toString()" with recursive function call in "also" block in nontrivial context
    • KT-52691 K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl with intertwined functional interfaces
    • KT-52822 Fix contract for KtElement.getReference()
    • KT-50223 IndexOutOfBoundsException from ClassicTypeSystemContext$DefaultImpls.getParameter during call resolution
    • KT-51963 Change Maven version to 1.7.255
    • KT-47664 Incorrect type checking in the case of generic types
    • KT-48765 NI: Inferred type does not respect the bound of type variable
    • KT-51243 False positive error "No required context receiver" inside contextual lambda
    • KT-43541 TYPE_MISMATCH for member function which is not occur for top level function during unsafe cast
    • KT-51016 [FIR] False positive OVERLOAD_RESOLUTION_AMBIGUITY between two extensions on different supertypes
    • KT-50155 FIR: support contextual receivers
    • KT-38637 Catch NoSuchFieldException in optimized when expression over enum
    Docs & Examples
    • KT-49896 Kotlin/JS: improve -Xir-property-lazy-initialization description due to making it true by default
    IDE
    • KTIJ-22286 Kotlin JPS project created via wizard does not contain Kotlin libraries in case of not-released version
    • KTIJ-22065 IDE notification motivating Kotlin users to use EAP
    • KTIJ-22209 Configure Kotlin on 221 idea adds 1.6.10 Kotlin (despite the fact that IDE plugin is 1.7.10)
    • KTIJ-22171 Fix test BuiltInDecompilerConsistencyTest
    • KTIJ-22016 Empty .kt file and build.gradle.kts can trigger an error while searching for a facade light class
      • KT-52571 MPP Tasks on import are not up-to-date after subsequent launches
    • KT-47777 ISE thrown from KtLightClassForFacadeImpl.Companion.createForFacadeNoCache has wrong message.
    IDE. FIR
    • KT-52360 FIR IDE: Make the fix of isInheritor method better
    • KT-51786 FIR IDE: IllegalStateException exception in Inspections' infrastructure
    • KT-52331 Analysis API: ArrayIndexOutOfBoundsException exception in Diagnostics' infrastructure
    IDE. Code Style, Formatting
    • KTIJ-21346 Incorrect formatting for functions with context receivers and visibility modifiers
    IDE. Completion
    • KTIJ-21910 FIR IDE: Fix completion tests started failing after visibility checker refinement
    IDE. Decompiler, Indexing, Stubs
    • KTIJ-21243 ContextReceivers: "UpToDateStubIndexMismatch: PSI and index do not match" plugin exception on library with context receivers usage attempt
    IDE. Gradle Integration
    • KT-47627 IDE import fails with com.intellij.util.lang.PathClassLoader error for runCommonizer Gradle task on 212, 213 IDEAs
    • KTIJ-21638 MPP: IntelliJ can not resolve MPP references in common-code
    • KT-52216 HMPP / KTOR: False positive "TYPE_MISMATCH" with Throwable descendant
    IDE. Inspections and Intentions
    • KTIJ-22540 Invalid "remove unnecessary parentheses" when delegating a functional interface to a SAM in brackets
    IDE. J2K
    • KTIJ-21665 J2K generates non compiling code when lifting return and one branch is broken before binary operator
    IDE. JS
    • KTIJ-22337 Wizard: Kotlin/Js for browser: cssSupport DSL should be updated
    IDE. K2
    • KTIJ-21672 FIR IDE: Method reference on generic class breaks resolve
    • KTIJ-21714 FIR IDE: Inherently imported type from another module is not properly resolved
    IDE. Script
    • KT-52525 Update scripts handling in source roots
    IDE. Misc
    • KTIJ-21699 Refactoring: move out parts of the plugin useful for both FE10 and K2
    JavaScript
    New Features
    • KT-39423 KJS: Optionally generate a method to handle optional parameters for function in typescript
    • KT-42282 KJS IR: add an ability to run separate tests
    Performance Improvements
    • KT-50270 KJS IR: Unnecessary getter and setter calls when accessing class members
    Fixes
    • KT-51133 Kotlin/JS - IR: even simple lambdas generate a lot of useless boilerplate
    • KT-51123 Provide a way to add comments to generated JS
    • KT-48493 KJS / IR: Invalid d.ts for inner classes inside objects
    • KT-52553 KJS / IR: diamond hierarchy with super.toString produces stack overflow in runtime
    • KT-23252 JS: Unit materialization on declaration and assignment
    • KT-51128 Kotlin/JS - IR generate huge count of useless blocks
    • KT-50778 KJS/IR: Inline class has no field when building production distribution
    • KT-50157 KSJ IR: Applying identity equality operator to Chars always returns false
    • KT-38262 Javascript generation (and Typescript) fails on 'then', 'catch' and 'finally' (and others?) claiming they are reserved names
    • KT-51066 KJS / IR: suspend lambda parameter of value class is undefined
    • KT-51102 KJS/IR: Assertion failed at translateCallArguments(jsAstUtils.kt:343)
    • KT-51878 KJS / Legacy: Unit is not materialized in an overridden method, but it should be
    Language Design
    • KT-47986 Implicit inferring a type variable into an upper bound in the builder inference context
    • KT-49264 Deprecate infix function calls of functions named "suspend" with dangling function literal
    • KT-25636 Native: Object is frozen by default problem
    • KT-49303 Implement support for basic compile-time evaluation
    Libraries
    • KT-52932 Open-ended ranges in the standard library
    • KT-52910 Provide visit extension functions for java.nio.file.Path
    • KT-48232 Multiplatform function for computing cubic root
    • KT-52778 The documentation for the Duration does not indicate any differences from the ISO-8601
    • KT-52618 ThreadLocalRandom is not a good source of randomness on Android before SDK 34, so don't use it for Kotlin Random
    Native
    • KT-53346 MPP project with kotlinx-serialization-json:1.4.0-RC is not built
    Native. C Export
    • KT-45468 Kotlin/Native: Bitcode verification error when trying to export a cached klib to a static or dynamic library
    Native. C and ObjC Import
    • KT-53373 Native: @​ExportObjCClass doesn't work with the new memory manager
    • KT-49034 Kotlin/Native: cnames.structs.Foo resolves into wrong declaration
    • KT-26478 Objective-C object's class name is null in ClassCastException's message
    Native. ObjC Export
    • KT-51593 Include more information in Objective-C header documentation
    • KT-33117 Improve customizing Info.plist in produced frameworks
    • KT-52681 Native: @end; for Objective-C is generated with an unnecessary semicolon
    Native. Platforms
    • KT-52226 Kotlin/Native: Add support for cross-compilation of MIPS targets from macOS and Windows hosts
    Native. Runtime
    • KT-52430 KMM 1.6.21 framework built with Xcode13, new MM GC Can't support iOS 9.x
    • KT-53534 Kotlin/Native: -Xruntime-logs=gc=info flag doesn't work with compiler caches in 1.7.20-beta
    Native. Runtime. Memory
    • KT-52692 Kotlin/Native: fix tests with aggressive GC
    • KT-52130 Kotlin/Native: use Xallocator for Kotlin objects only
    • KT-51436 Kotlin/Native: optimize mark queue
    Reflection
    • KT-51804 An error occurs when callBy a KFunction that contains a value class as an argument, has a default argument set, and has more than 32 arguments.
    Tools. CLI
    • KT-52465 CLI: IllegalStateException IrSimpleFunctionPublicSymbolImpl when source root is duplicated
    • KT-52380 Invalid path to compiler plugins should be reported as a compiler error
    • KT-51025 JVM CLI compiler takes class file from classpath instead of input java source file
    • KT-51846 Setting random value to the compiler argument where number is expected should produce an error. "-Xbackend-threads=abcd"
    Tools. Compiler Plugins
    • KT-52486 [K2] Looking for function/constructor whose parameters are annotated or meta annotated
    • KT-52872 Mark supportsK2 in ComponentRegistrar.kt as JvmDefault to avoid compatibility problems
    • KT-52804 A function obtained by Fir IrBuiltins has an incorrect package
    • KT-52468 Rename module and jar for lombok compiler plugin
    Tools. Gradle
    • KT-53670 Gradle: Cyclic dependency between kotlin-gradle-plugin-idea-1.7.20-Beta and kotlin-gradle-plugin-idea-proto-1.7.20-Beta
    • KT-53615 Gradle: Fix deprecation warnings in CleanableStoreImpl
    • KT-53118 Fully up-to-date builds are slower with Kotlin 1.7.0
    • KT-51923 Improve usability of errors and warnings by being able to click on them
    • KT-53244 Report from gradle about compiler plugins
    • KT-52839 Warn in Gradle log why incremental compilation failed
    • KT-46019 Compatibility with Gradle 7.1 release
    • KT-47047 Migrate Kotlin Gradle Plugin from using Gradle conventions
    • KT-52698 Don't add InspectClassesForMultiModuleIC task when new incremental compilation is enabled
    • KT-52867 Provide simplified JVM toolchain configuration method
    • KT-45747 Add basic JUnit 5 Kotlin Gradle Plugin Android tests setup
    • KT-46034 Shadow Kotlin Gradle plugin dependencies
    • KT-28664 Support ExtensionContainer on kotlin targets and source sets.
    • KT-19472 Useful extensions of Gradle Kotlin DSL provided by Gradle Kotlin plugin
    • KT-34393 Kotlin Gradle DSL: Inconsistent srcDir configuration between Java and Kotlin
    • KT-51629 There isn't enough info about incremental compilation state in logs while running build with --info key
    Tools. Gradle. Cocoapods
    • KT-53174 CocoaPods: Synthetic Podfile does not specify platform
    • KT-53127 "MaterialComponents normal armv7" in Cocoapods plugin between Kotlin 1.6.21 and 1.7.0
    • KT-44155 Cocoapods doesn't support pods without module map file inside
    • KT-49032 Cocoapods cinterop: some header files are not found
    • KT-53337 Add warning about future changing default linking type of framework provided via cocoapods plugin
    Tools. Gradle. JS
    • KT-52637 KJS / Gradle: Add SCSS webpack config
    • KT-51527 Kotlin/JS: BrowserXRun causes full-screen Webpack error "Compiled with problems: asset size limit/entrypoint size limit" for fresh Kotlin-React project from wizard
    • KT-51532 Kotlin/JS: passing environment variable via Gradle script causes "Execution optimizations have been disabled" warnings
    • KT-52221 Kotlin/JS: failed Node tests are not reported in a standard way
    Tools. Gradle. Multiplatform
    • KT-52243 CInteropProcess is not cacheable despite the annotation
    • KT-52741 MPP: klib outputs are not reproducible
    • KT-52208 MPP: Gradle plugin 1.7 doesn't support latest api versions (1.8, 1.9)
    • KT-54071 MPP/AGP compatibility: Bump maxSupportedVersion to 7.3.0
    Tools. Gradle. Native
    • KT-52632 Gradle / Native: commonizeNativeDistributionTask can never be up-to-date
    • KT-52328 "ld: framework not found SQLCipher" linkDebugTestIosSimulatorArm64 error
    Tools. Incremental Compile
    • KT-53168 Incremental compilation doesn't perform correctly after a few iterations
    • KT-52925 [IR BE] Non incremental build occurs after build failure for compileKotlinJs task
    • KT-52946 CompileKotlinJs task is executed non-incrementally if there were changes made to the dependant module
    • KT-52329 Reduce memory usage of classpath snapshot cache
    • KT-53266 Increment Compilation: "IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols" when changing companion object constant field
    • KT-53231 New IC reports build failures for missing classpath snapshots
    Tools. JPS
    • KT-47824 'when expression must be exhaustive' isn't thrown during incremental compilation
    • KT-51873 JPS build is incorrect after gdw build
    • KTIJ-17072 JPS does not rebuild Kotlin usages of declared in Java when enum entry is added
    • KT-51537 Rebuild module on plugin classpaths change
    Tools. REPL
    • KT-45065 REPL: Incorrect output for unsigned value
    • KT-53043 Scripting: Changes in REPL protocol: mark end of errors
    Tools. Scripts
    • KT-52598 Scripts and REPL snippets are not checked against using 'kotlin' package
    • KT-47187 Kotlin ScriptEngine Failes to Compile a Trivial Statement After Failing to Compile a Broken One
    • KT-47191 [Kotlin Script Engine] Compiling Without Evaluating Leaves Engine in a Bad State
    Tools. Kapt
    • KT-52761 Kotlin 1.7.0 breaks kapt processing for protobuf generated java sources

    Checksums

    | File | Sha256 | | --- | --- | | kotlin-compiler-1.7.20.zip | 5e3c8d0f965410ff12e90d6f8dc5df2fc09fd595a684d514616851ce7e94ae7d | | kotlin-native-linux-x86_64-1.7.20.tar.gz | 65ac0a71fbff016d4387956768a49b668e6cda316e96adb116de5cf1169f5627 | | kotlin-native-macos-x86_64-1.7.20.tar.gz | 449d68b055ea5b45106d1cbc925bc43d7e1a9ab9d6b1cdd16722fa569b8fd8b1 | | kotlin-native-macos-aarch64-1.7.20.tar.gz | 221aa20718cf81897ba682479da838e44f221424f3a867f7871fff231b50a799 | | kotlin-native-windows-x86_64-1.7.20.zip | b84bea3f8c62ec2f614e7d282335c5df891a654a843d30a9a55ebe29c68ea044 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update org-bouncycastle to v1.72

    Update org-bouncycastle to v1.72

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.bouncycastle:bctls-jdk15to18 (source) | 1.71 -> 1.72 | age | adoption | passing | confidence | | org.bouncycastle:bcprov-jdk15to18 (source) | 1.71 -> 1.72 | age | adoption | passing | confidence | | org.bouncycastle:bcpkix-jdk15to18 (source) | 1.71 -> 1.72 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • oss-fuzz integration

    oss-fuzz integration

    Hi all,

    we have prepared the Initial Integration of okhttp into Google OSS-Fuzz which will provide more security for your project.

    Why do you need Fuzzing? The Code Intelligence JVM fuzzer Jazzer has already found hundreds of bugs in open source projects including for example OpenJDK, Protobuf or jsoup. Fuzzing proved to be very effective having no false positives. It provides a crashing input which helps you to reproduce and debug any finding easily. The integration of your project into the OSS-Fuzz platform will enable continuous fuzzing of your project by Jazzer.

    What do you need to do? The integration requires the maintainer or one established project commiter to deal with the bug reports.

    You need to create or provide one email address that is associated with a google account as per here. When a bug is found, you will receive an email that will provide you with access to ClusterFuzz, crash reports, code coverage reports and fuzzer statistics. More than 1 person can be included.

    How Code Intelligence can support? We will continue to add more fuzz targets to improve code coverage over time. Furthermore, we are permanently enhancing fuzzing technologies by developing new fuzzers and more bug detectors.

    Please let me know if you have any questions regarding fuzzing or the OSS-Fuzz integration.

    opened by aschaich 0
  • ParameterResolutionException when trying to use MockWebServer in JUnit 5 test case with Kotlin 1.6

    ParameterResolutionException when trying to use MockWebServer in JUnit 5 test case with Kotlin 1.6

    I have a simple test for an external API and want to use the MockWebServer to save some mocking I'd have to do with e.g. WireMock. However, regardless of which approach I try, I cannot get it to work.

    My setup is OpenJDK Temurin-17.0.4.1+1 and Kotlin 1.6.10 - on MacOS 12.6 (21G115) with IntelliJ 2022.2.2 Ultimate (fwiw).

    I have this:

    class TokenRefreshServiceTest(private val server: MockWebServer) {
    ...
    @Test
        fun getValidTokenHasAllFieldsInCorrectForm() {
        }
    }
    

    But when running the test, I get this error:

    org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [mockwebserver3.MockWebServer server] in constructor [public com.bla.blup.TokenRefreshServiceTest(mockwebserver3.MockWebServer)].
    

    Should work according to the docs: https://github.com/square/okhttp/tree/parent-5.0.0-alpha.10/mockwebserver-junit5

    I tried different dependencies:

    • 5.0.0.alpha-10 (with and without optional JUnit dependencies, as mentioned in https://square.github.io/okhttp/changelogs/changelog/#version-500-alpha2)
    • latest stable 4.10.0

    Before that, I tried using the traditional method with a setup() method in @BeforeAll, but that requires the use of @JavaStatic in Kotlin and I ran into this funny error here: https://github.com/square/okhttp/issues/5818

    So I suppose it's a bug in okhttp/MockWebServer. And yes, it was a funny afternoon...

    bug 
    opened by gregor-tset 4
  • [RFC] Attempt at a ConnectionListener

    [RFC] Attempt at a ConnectionListener

    Given that we have happy eyeballs, and are considering features like client side load balancing, having visibility into connections seems warranted.

    Also specifically for Android, dealing with different networks makes this important.

    opened by yschimke 0
Standalone Play WS, an async HTTP client with fluent API

Play WS Standalone Play WS is a powerful HTTP Client library, originally developed by the Play team for use with Play Framework. It uses AsyncHttpClie

Play Framework 207 Sep 10, 2022
Realtime Client Server Framework for the JVM, supporting WebSockets with Cross-Browser Fallbacks

Welcome to Atmosphere: The Event Driven Framework supporting WebSocket and HTTP The Atmosphere Framework contains client and server side components fo

Atmosphere Framework 3.6k Oct 5, 2022
A Java event based WebSocket and HTTP server

Webbit - A Java event based WebSocket and HTTP server Getting it Prebuilt JARs are available from the central Maven repository or the Sonatype Maven r

null 808 Sep 12, 2022
This is an open source android based Music Player application developed in Android Studio

Pulse Music An offline music player android app, with modern UI and powerful features If you liked this repo, fork it and leave a STAR. Your support m

Sharath 7 Apr 11, 2022
The Java gRPC implementation. HTTP/2 based RPC

gRPC-Java - An RPC library and framework gRPC-Java works with JDK 7. gRPC-Java clients are supported on Android API levels 16 and up (Jelly Bean and l

grpc 10.1k Sep 30, 2022
Magician is an asynchronous non-blocking network protocol analysis package, supports TCP, UDP protocol, built-in Http, WebSocket decoder

An asynchronous non-blocking network protocol analysis package Project Description Magician is an asynchronous non-blocking network protocol analysis

贝克街的天才 99 Sep 23, 2022
HTTP Server Model made in java

SimplyJServer HTTP Server Model made in java Features Fast : SimplyJServer is 40%-60% faster than Apache, due to it's simplicity. Simple to implement

Praudyogikee for Advanced Technology 2 Sep 25, 2021
Telegram API Client and Telegram BOT API Library and Framework in Pure java.

Javagram Telegram API Client and Telegram Bot API library and framework in pure Java. Hello Telegram You can use Javagram for both Telegram API Client

Java For Everything 3 Oct 17, 2021
Android application allowing to sniff and inject Zigbee, Mosart and Enhanced ShockBurst packets on a Samsung Galaxy S20

RadioSploit 1.0 This Android application allows to sniff and inject Zigbee, Mosart and Enhanced ShockBurst packets from a Samsung Galaxy S20 smartphon

Romain Cayre 52 Jun 17, 2022
Full-featured Socket.IO Client Library for Java, which is compatible with Socket.IO v1.0 and later.

Socket.IO-client Java This is the Socket.IO Client Library for Java, which is simply ported from the JavaScript client. See also: Android chat demo en

Socket.IO 5k Sep 26, 2022
BAIN Social is a Fully Decentralized Server/client system that utilizes Concepts pioneered by I2P, ToR, and PGP to create a system which bypasses singular hosts for data while keeping that data secure.

SYNOPSIS ---------------------------------------------------------------------------------------------------- Welcome to B.A.I.N - Barren's A.I. Natio

Barren A.I. Wolfsbane 14 Jan 11, 2022
IoT Platform, Device management, data collection, processing and visualization, multi protocol, rule engine, netty mqtt client

GIoT GIoT: GIoT是一个开源的IoT平台,支持设备管理、物模型,产品、设备管理、规则引擎、多种存储、多sink、多协议(http、mqtt、tcp,自定义协议)、多租户管理等等,提供插件化开发 Documentation Quick Start Module -> giot-starte

gerry 34 Sep 13, 2022
A barebones WebSocket client and server implementation written in 100% Java.

Java WebSockets This repository contains a barebones WebSocket server and client implementation written in 100% Java. The underlying classes are imple

Nathan Rajlich 9.3k Oct 2, 2022
A small java project consisting of Client and Server, that communicate via TCP/UDP protocols.

Ninja Battle A small java project consisting of Client and Server, that communicate via TCP/UDP protocols. Client The client is equipped with a menu i

Steliyan Dobrev 2 Jan 14, 2022
TCP/UDP client/server library for Java, based on Kryo

KryoNet can be downloaded on the releases page. Please use the KryoNet discussion group for support. Overview KryoNet is a Java library that provides

Esoteric Software 1.7k Sep 22, 2022
Proteus Java Client

Netifi Proteus Java This project has been moved to https://github.com/netifi/netifi-java Build from Source Run the following Gradle command to build t

netifi-proteus 42 Nov 20, 2020
Socket.IO Client Implementation in Java

Socket.IO-Client for Java socket.io-java-client is an easy to use implementation of socket.io for Java. It uses Weberknecht as transport backend, but

Enno Boland 947 Sep 14, 2022
Book Finder application is a client-server application (gRPC) for educational purposes.

Book-Finder Book Finder application is a client-server application (gRPC) for educational purposes. Instalation These projects (Client/Server) are Mav

Mihai-Lucian Rîtan 20 Jan 30, 2022