Skip to content

Android strict mode violation reported in NioUdpClient.sendrecv() #267

@jt416

Description

@jt416

It appears there is a case where an open DatagramChannel is not closed.

This is from 3.4.2 but the source looks the same in master.

D/StrictMode: StrictMode policy violation: android.os.strictmode.LeakedClosableViolation: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
        at android.os.StrictMode$AndroidCloseGuardReporter.report(StrictMode.java:1877)
        at dalvik.system.CloseGuard.warnIfOpen(CloseGuard.java:286)
        at sun.nio.ch.DatagramChannelImpl.finalize(DatagramChannelImpl.java:1083)
        at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:289)
        at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:276)
        at java.lang.Daemons$Daemon.run(Daemons.java:137)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: java.lang.Throwable: Explicit termination method 'close' not called
        at dalvik.system.CloseGuard.open(CloseGuard.java:237)
        at sun.nio.ch.DatagramChannelImpl.<init>(DatagramChannelImpl.java:132)
        at sun.nio.ch.SelectorProviderImpl.openDatagramChannel(SelectorProviderImpl.java:42)
        at java.nio.channels.DatagramChannel.open(DatagramChannel.java:149)
        at org.xbill.DNS.NioUdpClient.sendrecv(NioUdpClient.java:158)
        at org.xbill.DNS.SimpleResolver.sendAsync(SimpleResolver.java:371)
        at org.xbill.DNS.SimpleResolver.sendAsync(SimpleResolver.java:338)
        at org.xbill.DNS.ExtendedResolver$Resolution.send(ExtendedResolver.java:81)
        at org.xbill.DNS.ExtendedResolver$Resolution.handle(ExtendedResolver.java:123)
        at org.xbill.DNS.ExtendedResolver$Resolution.lambda$handle$3$org-xbill-DNS-ExtendedResolver$Resolution(ExtendedResolver.java:124)
        at org.xbill.DNS.ExtendedResolver$Resolution$$ExternalSyntheticLambda0.apply(Unknown Source:8)
        at java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:834)
        at java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:846)
        at java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2183)
        at java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:117)
        at org.xbill.DNS.ExtendedResolver$Resolution.handle(ExtendedResolver.java:124)
        at org.xbill.DNS.ExtendedResolver$Resolution.lambda$startAsync$2$org-xbill-DNS-ExtendedResolver$Resolution(ExtendedResolver.java:87)
        at org.xbill.DNS.ExtendedResolver$Resolution$$ExternalSyntheticLambda1.apply(Unknown Source:8)
        at java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:834)
        at java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:846)
        at java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2183)
        at java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:117)
        at org.xbill.DNS.ExtendedResolver$Resolution.startAsync(ExtendedResolver.java:87)
        at org.xbill.DNS.ExtendedResolver$Resolution.access$800(ExtendedResolver.java:34)
        at org.xbill.DNS.ExtendedResolver.sendAsync(ExtendedResolver.java:310)
        at org.xbill.DNS.ExtendedResolver.sendAsync(ExtendedResolver.java:296)
        at org.xbill.DNS.Resolver.send(Resolver.java:152)
        at org.xbill.DNS.Lookup.lookup(Lookup.java:573)
        at org.xbill.DNS.Lookup.resolve(Lookup.java:653)
        at org.xbill.DNS.Lookup.run(Lookup.java:686)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions