Resolve merge conflicts between delivery and master after 15-rc3
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/loaders/DiskCacheProjectLoader.java b/extide/gradle/src/org/netbeans/modules/gradle/loaders/DiskCacheProjectLoader.java
index add7217..95b9494 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/loaders/DiskCacheProjectLoader.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/loaders/DiskCacheProjectLoader.java
@@ -43,9 +43,13 @@
         if (cache.isCompatible()) {
             GradleProject prev = createGradleProject(ctx.project.getGradleFiles(), cache.loadData());
             LOG.log(Level.FINER, "Loaded from cache: {0}, valid: {1}", new Object[] { prev, cache.isValid() });
-            if (cache.isValid() && GradleArtifactStore.getDefault().sanityCheckCachedProject(prev)) {
-                updateSubDirectoryCache(prev);
-                return prev;
+            if (GradleArtifactStore.getDefault().sanityCheckCachedProject(prev)) {
+                if (cache.isValid()) {
+                    updateSubDirectoryCache(prev);
+                    return prev;
+                } else {
+                    return prev.invalidate("Disk cache data is invalid.");
+                }
             }
         }
         return null;
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/loaders/GradleProjectLoaderImpl.java b/extide/gradle/src/org/netbeans/modules/gradle/loaders/GradleProjectLoaderImpl.java
index 833ee1c..dc28b10 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/loaders/GradleProjectLoaderImpl.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/loaders/GradleProjectLoaderImpl.java
@@ -88,7 +88,8 @@
                     ret = loader.load();
                     LOGGER.log(Level.FINER, "Loaded with loader {0} -> {1}", new Object[] { loader, ret });
                 }
-                if (ret != null) {
+                if ((ret != null) && ret.getQuality().atLeast(aim)) {
+                    // We have the quality we are looking for, let's be happy with that
                     break;
                 }
             } else {
diff --git a/groovy/groovy.debug/src/org/netbeans/modules/groovy/debug/GroovyBreakpointAnnotationListener.java b/groovy/groovy.debug/src/org/netbeans/modules/groovy/debug/GroovyBreakpointAnnotationListener.java
deleted file mode 100644
index d6c7060..0000000
--- a/groovy/groovy.debug/src/org/netbeans/modules/groovy/debug/GroovyBreakpointAnnotationListener.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.netbeans.modules.groovy.debug;
-
-import java.beans.PropertyChangeEvent;
-import java.util.HashMap;
-import java.util.Iterator;
-import org.netbeans.api.debugger.Breakpoint;
-import org.netbeans.api.debugger.DebuggerEngine;
-import org.netbeans.api.debugger.DebuggerManager;
-import org.netbeans.api.debugger.DebuggerManagerAdapter;
-import org.netbeans.api.debugger.LazyDebuggerManagerListener;
-import org.netbeans.api.debugger.jpda.JPDADebugger;
-import org.netbeans.api.debugger.jpda.LineBreakpoint;
-import org.netbeans.spi.debugger.DebuggerServiceRegistration;
-
-/**
- * Listens on {@org.netbeans.api.debugger.DebuggerManager} on
- * {@link org.netbeans.api.debugger.DebuggerManager#PROP_BREAKPOINTS}
- * property and annotates
- * Groovy breakpoints in NetBeans editor.
- *
- * @author Martin Grebac
- * @author Martin Adamek
- */
-@DebuggerServiceRegistration(types=LazyDebuggerManagerListener.class)
-public class GroovyBreakpointAnnotationListener extends DebuggerManagerAdapter {
-
-    private HashMap<LineBreakpoint, Object> breakpointToAnnotation = new HashMap<>();
-    private boolean listen = true;
-
-    @Override
-    public String[] getProperties () {
-        return new String[] {DebuggerManager.PROP_BREAKPOINTS};
-    }
-
-    @Override
-    public void propertyChange (PropertyChangeEvent e) {
-        String propertyName = e.getPropertyName ();
-        if (propertyName == null) {
-            return;
-        }
-        if (!listen) return;
-        if ( (!propertyName.equals (LineBreakpoint.PROP_CONDITION)) &&
-             (!propertyName.equals (LineBreakpoint.PROP_URL)) &&
-             (!propertyName.equals (LineBreakpoint.PROP_LINE_NUMBER)) &&
-             (!propertyName.equals (LineBreakpoint.PROP_ENABLED))
-        ) {
-            return;
-        }
-        LineBreakpoint b = (LineBreakpoint) e.getSource ();
-        annotate (b);
-    }
-
-    @Override
-    public void breakpointAdded (Breakpoint b) {
-        if (b instanceof LineBreakpoint) {
-            ((LineBreakpoint) b).addPropertyChangeListener (this);
-            annotate ((LineBreakpoint) b);
-        }
-    }
-
-    @Override
-    public void breakpointRemoved (Breakpoint b) {
-        if (b instanceof LineBreakpoint) {
-            ((LineBreakpoint) b).removePropertyChangeListener (this);
-            removeAnnotation ((LineBreakpoint) b);
-        }
-    }
-
-    private void annotate (LineBreakpoint b) {
-        // remove old annotation
-        Object annotation = breakpointToAnnotation.get (b);
-        if (annotation != null) {
-            Context.removeAnnotation (annotation);
-        }
-        if (b.isHidden ()) {
-            return;
-        }
-
-        // add new one
-        annotation = Context.annotate (b);
-        if (annotation == null) {
-            return;
-        }
-
-        breakpointToAnnotation.put (b, annotation);
-
-        DebuggerEngine de = DebuggerManager.getDebuggerManager().getCurrentEngine ();
-        Object timeStamp = null;
-        if (de != null) {
-            timeStamp = de.lookupFirst (null, JPDADebugger.class);
-        }
-        update (b, timeStamp);
-    }
-
-    public void updateGroovyLineBreakpoints () {
-        Iterator<LineBreakpoint> it = breakpointToAnnotation.keySet ().iterator ();
-        while (it.hasNext ()) {
-            LineBreakpoint lb = it.next();
-            update (lb, null);
-        }
-    }
-
-    private void update (LineBreakpoint b, Object timeStamp) {
-        Object annotation = breakpointToAnnotation.get (b);
-        if (annotation == null) {
-            return;
-        }
-        int ln = Context.getLineNumber (annotation, timeStamp);
-        listen = false;
-        b.setLineNumber (ln);
-        listen = true;
-    }
-
-    private void removeAnnotation(LineBreakpoint b) {
-        Object annotation = breakpointToAnnotation.remove (b);
-        if (annotation != null) {
-            Context.removeAnnotation (annotation);
-        }
-    }
-}
diff --git a/groovy/groovy.debug/src/org/netbeans/modules/groovy/debug/GroovyBreakpointStratifier.java b/groovy/groovy.debug/src/org/netbeans/modules/groovy/debug/GroovyBreakpointStratifier.java
index f73b0a8..232693e 100644
--- a/groovy/groovy.debug/src/org/netbeans/modules/groovy/debug/GroovyBreakpointStratifier.java
+++ b/groovy/groovy.debug/src/org/netbeans/modules/groovy/debug/GroovyBreakpointStratifier.java
@@ -52,6 +52,7 @@
 @ServiceProvider(service = BreakpointStratifier.class)
 public final class GroovyBreakpointStratifier implements BreakpointStratifier {
 
+    public final static String GROOVY_STRATUM = "Groovy"; //NOI18N
     private static final Logger LOGGER = Logger.getLogger(GroovyBreakpointStratifier.class.getName());
 
     public GroovyBreakpointStratifier() {
@@ -78,7 +79,7 @@
                 String printText = pt.replace("{groovyName}", (groovyName != null) ? groovyName : "?"); // NOI18N
                 String groovyPath = getGroovyPath(url, fo);
 
-                lb.setStratum("Groovy"); // NOI18N
+                lb.setStratum(GROOVY_STRATUM);
                 lb.setSourceName(groovyName);
                 lb.setSourcePath(groovyPath);
                 lb.setPreferredClassName(findGroovyClassName(groovyPath, fo, lineNumber));
diff --git a/ide/c.jcraft.jsch/nbproject/project.xml b/ide/c.jcraft.jsch/nbproject/project.xml
index 99298cb..7c428df5 100644
--- a/ide/c.jcraft.jsch/nbproject/project.xml
+++ b/ide/c.jcraft.jsch/nbproject/project.xml
@@ -38,8 +38,8 @@
                     <code-name-base>libs.c.kohlschutter.junixsocket</code-name-base>
                     <compile-dependency/>
                     <run-dependency>
-                        <release-version>1</release-version>
-                        <specification-version>2.32</specification-version>
+                        <release-version>2</release-version>
+                        <specification-version>3.0</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git a/ide/docker.api/nbproject/project.xml b/ide/docker.api/nbproject/project.xml
index cd3bdc7..726131a 100644
--- a/ide/docker.api/nbproject/project.xml
+++ b/ide/docker.api/nbproject/project.xml
@@ -30,8 +30,8 @@
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <release-version>1</release-version>
-                        <specification-version>2.20</specification-version>
+                        <release-version>2</release-version>
+                        <specification-version>3.0</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git a/ide/docker.api/src/org/netbeans/modules/docker/api/DockerAction.java b/ide/docker.api/src/org/netbeans/modules/docker/api/DockerAction.java
index 4259d9f..38f3dac 100644
--- a/ide/docker.api/src/org/netbeans/modules/docker/api/DockerAction.java
+++ b/ide/docker.api/src/org/netbeans/modules/docker/api/DockerAction.java
@@ -1270,7 +1270,7 @@
                 return Endpoint.forSocket(s);
             } else if ("file".equals(realUrl.getProtocol())) {
                 AFUNIXSocket s = AFUNIXSocket.newInstance();
-                AFUNIXSocketAddress sockAdd = new AFUNIXSocketAddress(new File(realUrl.getFile()));
+                AFUNIXSocketAddress sockAdd = AFUNIXSocketAddress.of(new File(realUrl.getFile()));
                 s.connect(sockAdd);
                 return Endpoint.forSocket(s);
             } else {
diff --git a/ide/libs.c.kohlschutter.junixsocket/build.xml b/ide/libs.c.kohlschutter.junixsocket/build.xml
index da329a2..2446925 100644
--- a/ide/libs.c.kohlschutter.junixsocket/build.xml
+++ b/ide/libs.c.kohlschutter.junixsocket/build.xml
@@ -21,4 +21,23 @@
 -->
 <project name="ide/libs.c.kohlschutter.junixsocket" default="build" basedir=".">
     <import file="../../nbbuild/templates/projectized.xml"/>
+
+    <target name="gen-sigtest">
+        <!--
+        Workaround for sigtest generation failures. Problems:
+
+        - RuntimeInvisibleTypeAnnotations are not parsed properly
+          (the org.eclipse.jdt.annotation.NonNull annotation on the return
+          and parameter types causes this code to be executed)
+        - AFUNIXServerSocket::newImpl and
+          AFDatagramSocket::getAncillaryDataSupport return non-public types from
+          protected methods
+        - Protected constructor org.newsclub.net.unix.AFSocketAddress.init
+          (java.lang.Class<org.newsclub.net.unix.SentinelSocketAddress>,int)
+          uses a non-public type as parameter
+        -->
+        <antcall target="projectized.gen-sigtest">
+            <param name="sigtest.gen.fail.on.error" value="false"/>
+        </antcall>
+    </target>
 </project>
diff --git a/ide/libs.c.kohlschutter.junixsocket/external/binaries-list b/ide/libs.c.kohlschutter.junixsocket/external/binaries-list
index 63ddd6e..aa132f0 100644
--- a/ide/libs.c.kohlschutter.junixsocket/external/binaries-list
+++ b/ide/libs.c.kohlschutter.junixsocket/external/binaries-list
@@ -14,5 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-2D8230CF81242FF4103A9D673F36CD71E9F7D7E2 com.kohlschutter.junixsocket:junixsocket-native-common:2.4.0
-F1D5E97DB0AB7AD37E2F3C3DE49BB355D4A2ADD4 com.kohlschutter.junixsocket:junixsocket-common:2.4.0
+4A19CA3071BFAA7CB30AAD62D6F93FAA080EA9E8 com.kohlschutter.junixsocket:junixsocket-native-common:2.5.1
+87515D51236AFD95693FDC6F2233A98F9C1429B1 com.kohlschutter.junixsocket:junixsocket-common:2.5.1
diff --git a/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.4.0-license.txt b/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.5.1-license.txt
similarity index 98%
rename from ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.4.0-license.txt
rename to ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.5.1-license.txt
index 684913b..c2c4ff3 100644
--- a/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.4.0-license.txt
+++ b/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.5.1-license.txt
@@ -2,8 +2,8 @@
 License: Apache-2.0
 Description: junixsocket is a Java/JNI library that allows the use of Unix Domain Sockets (AF_UNIX sockets) from Java.
 Origin: https://github.com/kohlschutter/junixsocket/
-Version: 2.4.0
-Files: junixsocket-common-2.4.0.jar, junixsocket-native-common-2.4.0.jar
+Version: 2.5.1
+Files: junixsocket-common-2.5.1.jar, junixsocket-native-common-2.5.1.jar
 
 
                                  Apache License
diff --git a/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.4.0-notice.txt b/ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.5.1-notice.txt
similarity index 100%
rename from ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.4.0-notice.txt
rename to ide/libs.c.kohlschutter.junixsocket/external/junixsocket-2.5.1-notice.txt
diff --git a/ide/libs.c.kohlschutter.junixsocket/manifest.mf b/ide/libs.c.kohlschutter.junixsocket/manifest.mf
index 2d52482..8187eee 100644
--- a/ide/libs.c.kohlschutter.junixsocket/manifest.mf
+++ b/ide/libs.c.kohlschutter.junixsocket/manifest.mf
@@ -1,5 +1,4 @@
 Manifest-Version: 1.0
-OpenIDE-Module: libs.c.kohlschutter.junixsocket/1
+OpenIDE-Module: libs.c.kohlschutter.junixsocket/2
 OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/c/kohlschutter/junixsocket/Bundle.properties
-OpenIDE-Module-Specification-Version: 2.34
-
+OpenIDE-Module-Specification-Version: 3.0
diff --git a/ide/libs.c.kohlschutter.junixsocket/nbproject/libs-c-kohlschutter-junixsocket.sig b/ide/libs.c.kohlschutter.junixsocket/nbproject/libs-c-kohlschutter-junixsocket.sig
index 714eaab..b65e590 100644
--- a/ide/libs.c.kohlschutter.junixsocket/nbproject/libs-c-kohlschutter-junixsocket.sig
+++ b/ide/libs.c.kohlschutter.junixsocket/nbproject/libs-c-kohlschutter-junixsocket.sig
@@ -1,10 +1,38 @@
 #Signature file v4.1
-#Version 2.32
+#Version 3.0
 
 CLSS public abstract interface java.io.Closeable
 intf java.lang.AutoCloseable
 meth public abstract void close() throws java.io.IOException
 
+CLSS public abstract interface java.io.Flushable
+meth public abstract void flush() throws java.io.IOException
+
+CLSS public abstract java.io.InputStream
+cons public init()
+intf java.io.Closeable
+meth public abstract int read() throws java.io.IOException
+meth public boolean markSupported()
+meth public int available() throws java.io.IOException
+meth public int read(byte[]) throws java.io.IOException
+meth public int read(byte[],int,int) throws java.io.IOException
+meth public long skip(long) throws java.io.IOException
+meth public void close() throws java.io.IOException
+meth public void mark(int)
+meth public void reset() throws java.io.IOException
+supr java.lang.Object
+
+CLSS public abstract java.io.OutputStream
+cons public init()
+intf java.io.Closeable
+intf java.io.Flushable
+meth public abstract void write(int) throws java.io.IOException
+meth public void close() throws java.io.IOException
+meth public void flush() throws java.io.IOException
+meth public void write(byte[]) throws java.io.IOException
+meth public void write(byte[],int,int) throws java.io.IOException
+supr java.lang.Object
+
 CLSS public abstract interface java.io.Serializable
 
 CLSS public abstract interface java.lang.AutoCloseable
@@ -13,6 +41,12 @@
 CLSS public abstract interface java.lang.Comparable<%0 extends java.lang.Object>
 meth public abstract int compareTo({java.lang.Comparable%0})
 
+CLSS public abstract interface !annotation java.lang.Deprecated
+ anno 0 java.lang.annotation.Documented()
+ anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME)
+ anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE])
+intf java.lang.annotation.Annotation
+
 CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>>
 cons protected init(java.lang.String,int)
 intf java.io.Serializable
@@ -29,6 +63,12 @@
 meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String)
 supr java.lang.Object
 
+CLSS public abstract interface !annotation java.lang.FunctionalInterface
+ anno 0 java.lang.annotation.Documented()
+ anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME)
+ anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE])
+intf java.lang.annotation.Annotation
+
 CLSS public java.lang.Object
 cons public init()
 meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException
@@ -43,6 +83,32 @@
 meth public int hashCode()
 meth public java.lang.String toString()
 
+CLSS public abstract interface java.lang.annotation.Annotation
+meth public abstract boolean equals(java.lang.Object)
+meth public abstract int hashCode()
+meth public abstract java.lang.Class<? extends java.lang.annotation.Annotation> annotationType()
+meth public abstract java.lang.String toString()
+
+CLSS public abstract interface !annotation java.lang.annotation.Documented
+ anno 0 java.lang.annotation.Documented()
+ anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME)
+ anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE])
+intf java.lang.annotation.Annotation
+
+CLSS public abstract interface !annotation java.lang.annotation.Retention
+ anno 0 java.lang.annotation.Documented()
+ anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME)
+ anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE])
+intf java.lang.annotation.Annotation
+meth public abstract java.lang.annotation.RetentionPolicy value()
+
+CLSS public abstract interface !annotation java.lang.annotation.Target
+ anno 0 java.lang.annotation.Documented()
+ anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME)
+ anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE])
+intf java.lang.annotation.Annotation
+meth public abstract java.lang.annotation.ElementType[] value()
+
 CLSS public java.net.DatagramSocket
 cons protected init(java.net.DatagramSocketImpl)
 cons public init() throws java.net.SocketException
@@ -82,6 +148,34 @@
 meth public void setTrafficClass(int) throws java.net.SocketException
 supr java.lang.Object
 
+CLSS public abstract java.net.DatagramSocketImpl
+cons public init()
+fld protected int localPort
+fld protected java.io.FileDescriptor fd
+intf java.net.SocketOptions
+meth protected abstract byte getTTL() throws java.io.IOException
+ anno 0 java.lang.Deprecated()
+meth protected abstract int getTimeToLive() throws java.io.IOException
+meth protected abstract int peek(java.net.InetAddress) throws java.io.IOException
+meth protected abstract int peekData(java.net.DatagramPacket) throws java.io.IOException
+meth protected abstract void bind(int,java.net.InetAddress) throws java.net.SocketException
+meth protected abstract void close()
+meth protected abstract void create() throws java.net.SocketException
+meth protected abstract void join(java.net.InetAddress) throws java.io.IOException
+meth protected abstract void joinGroup(java.net.SocketAddress,java.net.NetworkInterface) throws java.io.IOException
+meth protected abstract void leave(java.net.InetAddress) throws java.io.IOException
+meth protected abstract void leaveGroup(java.net.SocketAddress,java.net.NetworkInterface) throws java.io.IOException
+meth protected abstract void receive(java.net.DatagramPacket) throws java.io.IOException
+meth protected abstract void send(java.net.DatagramPacket) throws java.io.IOException
+meth protected abstract void setTTL(byte) throws java.io.IOException
+ anno 0 java.lang.Deprecated()
+meth protected abstract void setTimeToLive(int) throws java.io.IOException
+meth protected int getLocalPort()
+meth protected java.io.FileDescriptor getFileDescriptor()
+meth protected void connect(java.net.InetAddress,int) throws java.net.SocketException
+meth protected void disconnect()
+supr java.lang.Object
+
 CLSS public java.net.InetSocketAddress
 cons public init(int)
 cons public init(java.lang.String,int)
@@ -190,6 +284,58 @@
 intf java.io.Serializable
 supr java.lang.Object
 
+CLSS public abstract java.net.SocketImpl
+cons public init()
+fld protected int localport
+fld protected int port
+fld protected java.io.FileDescriptor fd
+fld protected java.net.InetAddress address
+intf java.net.SocketOptions
+meth protected abstract int available() throws java.io.IOException
+meth protected abstract java.io.InputStream getInputStream() throws java.io.IOException
+meth protected abstract java.io.OutputStream getOutputStream() throws java.io.IOException
+meth protected abstract void accept(java.net.SocketImpl) throws java.io.IOException
+meth protected abstract void bind(java.net.InetAddress,int) throws java.io.IOException
+meth protected abstract void close() throws java.io.IOException
+meth protected abstract void connect(java.lang.String,int) throws java.io.IOException
+meth protected abstract void connect(java.net.InetAddress,int) throws java.io.IOException
+meth protected abstract void connect(java.net.SocketAddress,int) throws java.io.IOException
+meth protected abstract void create(boolean) throws java.io.IOException
+meth protected abstract void listen(int) throws java.io.IOException
+meth protected abstract void sendUrgentData(int) throws java.io.IOException
+meth protected boolean supportsUrgentData()
+meth protected int getLocalPort()
+meth protected int getPort()
+meth protected java.io.FileDescriptor getFileDescriptor()
+meth protected java.net.InetAddress getInetAddress()
+meth protected void setPerformancePreferences(int,int,int)
+meth protected void shutdownInput() throws java.io.IOException
+meth protected void shutdownOutput() throws java.io.IOException
+meth public java.lang.String toString()
+supr java.lang.Object
+
+CLSS public abstract interface java.net.SocketOption<%0 extends java.lang.Object>
+meth public abstract java.lang.Class<{java.net.SocketOption%0}> type()
+meth public abstract java.lang.String name()
+
+CLSS public abstract interface java.net.SocketOptions
+fld public final static int IP_MULTICAST_IF = 16
+fld public final static int IP_MULTICAST_IF2 = 31
+fld public final static int IP_MULTICAST_LOOP = 18
+fld public final static int IP_TOS = 3
+fld public final static int SO_BINDADDR = 15
+fld public final static int SO_BROADCAST = 32
+fld public final static int SO_KEEPALIVE = 8
+fld public final static int SO_LINGER = 128
+fld public final static int SO_OOBINLINE = 4099
+fld public final static int SO_RCVBUF = 4098
+fld public final static int SO_REUSEADDR = 4
+fld public final static int SO_SNDBUF = 4097
+fld public final static int SO_TIMEOUT = 4102
+fld public final static int TCP_NODELAY = 1
+meth public abstract java.lang.Object getOption(int) throws java.net.SocketException
+meth public abstract void setOption(int,java.lang.Object) throws java.net.SocketException
+
 CLSS public abstract interface java.nio.channels.ByteChannel
 intf java.nio.channels.ReadableByteChannel
 intf java.nio.channels.WritableByteChannel
@@ -389,89 +535,68 @@
 meth public static javax.net.SocketFactory getDefault()
 supr java.lang.Object
 
-CLSS public final org.newsclub.net.unix.AFUNIXDatagramChannel
-intf org.newsclub.net.unix.AFUNIXSocketExtensions
-intf org.newsclub.net.unix.AFUNIXSomeSocket
-meth protected void implCloseSelectableChannel() throws java.io.IOException
-meth protected void implConfigureBlocking(boolean) throws java.io.IOException
-meth public !varargs void setOutboundFileDescriptors(java.io.FileDescriptor[]) throws java.io.IOException
-meth public <%0 extends java.lang.Object> org.newsclub.net.unix.AFUNIXDatagramChannel setOption(java.net.SocketOption<{%%0}>,{%%0}) throws java.io.IOException
-meth public <%0 extends java.lang.Object> {%%0} getOption(java.net.SocketOption<{%%0}>) throws java.io.IOException
-meth public boolean hasOutboundFileDescriptors()
-meth public boolean isBound()
-meth public boolean isConnected()
-meth public boolean isDeleteOnClose()
-meth public int getAncillaryReceiveBufferSize()
-meth public int read(java.nio.ByteBuffer) throws java.io.IOException
-meth public int send(java.nio.ByteBuffer,java.net.SocketAddress) throws java.io.IOException
-meth public int write(java.nio.ByteBuffer) throws java.io.IOException
-meth public java.io.FileDescriptor getFileDescriptor() throws java.io.IOException
-meth public java.io.FileDescriptor[] getReceivedFileDescriptors() throws java.io.IOException
-meth public java.nio.channels.MembershipKey join(java.net.InetAddress,java.net.NetworkInterface) throws java.io.IOException
-meth public java.nio.channels.MembershipKey join(java.net.InetAddress,java.net.NetworkInterface,java.net.InetAddress) throws java.io.IOException
-meth public java.util.Set<java.net.SocketOption<?>> supportedOptions()
-meth public long read(java.nio.ByteBuffer[],int,int) throws java.io.IOException
-meth public long write(java.nio.ByteBuffer[],int,int) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXDatagramChannel bind(java.net.SocketAddress) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXDatagramChannel connect(java.net.SocketAddress) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXDatagramChannel disconnect() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXDatagramSocket socket()
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getLocalAddress() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getRemoteAddress() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketCredentials getPeerCredentials() throws java.io.IOException
-meth public static org.newsclub.net.unix.AFUNIXDatagramChannel open() throws java.io.IOException
-meth public static org.newsclub.net.unix.AFUNIXDatagramChannel open(java.net.ProtocolFamily) throws java.io.IOException
-meth public void clearReceivedFileDescriptors()
-meth public void ensureAncillaryReceiveBufferSize(int)
-meth public void setAncillaryReceiveBufferSize(int)
-meth public void setDeleteOnClose(boolean)
+CLSS public final org.newsclub.net.unix.AFAddressFamily
+supr java.lang.Object
+
+CLSS public abstract org.newsclub.net.unix.AFAddressFamilyConfig<%0 extends org.newsclub.net.unix.AFSocketAddress>
+cons protected init()
+meth protected abstract java.lang.Class<? extends org.newsclub.net.unix.AFDatagramChannel<{org.newsclub.net.unix.AFAddressFamilyConfig%0}>> datagramChannelClass()
+meth protected abstract java.lang.Class<? extends org.newsclub.net.unix.AFDatagramSocket<{org.newsclub.net.unix.AFAddressFamilyConfig%0}>> datagramSocketClass()
+meth protected abstract java.lang.Class<? extends org.newsclub.net.unix.AFServerSocket<{org.newsclub.net.unix.AFAddressFamilyConfig%0}>> serverSocketClass()
+meth protected abstract java.lang.Class<? extends org.newsclub.net.unix.AFServerSocketChannel<{org.newsclub.net.unix.AFAddressFamilyConfig%0}>> serverSocketChannelClass()
+meth protected abstract java.lang.Class<? extends org.newsclub.net.unix.AFSocket<{org.newsclub.net.unix.AFAddressFamilyConfig%0}>> socketClass()
+meth protected abstract java.lang.Class<? extends org.newsclub.net.unix.AFSocketChannel<{org.newsclub.net.unix.AFAddressFamilyConfig%0}>> socketChannelClass()
+meth protected abstract org.newsclub.net.unix.AFDatagramSocket$Constructor<{org.newsclub.net.unix.AFAddressFamilyConfig%0}> datagramSocketConstructor()
+meth protected abstract org.newsclub.net.unix.AFServerSocket$Constructor<{org.newsclub.net.unix.AFAddressFamilyConfig%0}> serverSocketConstructor()
+meth protected abstract org.newsclub.net.unix.AFSocket$Constructor<{org.newsclub.net.unix.AFAddressFamilyConfig%0}> socketConstructor()
+supr java.lang.Object
+
+CLSS public abstract org.newsclub.net.unix.AFDatagramChannel
+intf org.newsclub.net.unix.AFSocketExtensions
+intf org.newsclub.net.unix.AFSomeSocket
 supr java.nio.channels.DatagramChannel
 hfds afSocket
 
-CLSS public final org.newsclub.net.unix.AFUNIXDatagramSocket
-intf org.newsclub.net.unix.AFUNIXSocketExtensions
-intf org.newsclub.net.unix.AFUNIXSomeSocket
-meth public !varargs void setOutboundFileDescriptors(java.io.FileDescriptor[]) throws java.io.IOException
-meth public boolean hasOutboundFileDescriptors()
-meth public boolean isBound()
-meth public boolean isClosed()
-meth public boolean isConnected()
-meth public boolean isDeleteOnClose()
-meth public int getAncillaryReceiveBufferSize()
-meth public java.io.FileDescriptor getFileDescriptor() throws java.io.IOException
-meth public java.io.FileDescriptor[] getReceivedFileDescriptors() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXDatagramChannel getChannel()
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getLocalSocketAddress()
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getRemoteSocketAddress()
-meth public org.newsclub.net.unix.AFUNIXSocketCredentials getPeerCredentials() throws java.io.IOException
-meth public static org.newsclub.net.unix.AFUNIXDatagramSocket newInstance() throws java.io.IOException
-meth public void bind(java.net.SocketAddress) throws java.net.SocketException
-meth public void clearReceivedFileDescriptors()
-meth public void close()
-meth public void connect(java.net.InetAddress,int)
-meth public void connect(java.net.SocketAddress) throws java.net.SocketException
-meth public void ensureAncillaryReceiveBufferSize(int)
-meth public void peek(java.net.DatagramPacket) throws java.io.IOException
-meth public void send(java.net.DatagramPacket) throws java.io.IOException
-meth public void setAncillaryReceiveBufferSize(int)
-meth public void setDeleteOnClose(boolean)
+CLSS public abstract org.newsclub.net.unix.AFDatagramSocket
+intf org.newsclub.net.unix.AFSocketExtensions
+intf org.newsclub.net.unix.AFSomeSocket
 supr java.net.DatagramSocket
 hfds WILDCARD_ADDRESS,ancillaryDataSupport,channel,created,deleteOnClose,impl
 
-CLSS public final org.newsclub.net.unix.AFUNIXPipe
+CLSS public abstract interface static org.newsclub.net.unix.AFDatagramSocket$Constructor<%0 extends org.newsclub.net.unix.AFSocketAddress>
+ outer org.newsclub.net.unix.AFDatagramSocket
+ anno 0 java.lang.FunctionalInterface()
+meth public abstract org.newsclub.net.unix.AFDatagramSocket<{org.newsclub.net.unix.AFDatagramSocket$Constructor%0}> newSocket(java.io.FileDescriptor) throws java.io.IOException
+
+CLSS public abstract org.newsclub.net.unix.AFDatagramSocketImpl
+meth protected final void finalize()
+supr java.net.DatagramSocketImpl
+
+CLSS public abstract org.newsclub.net.unix.AFInputStream
+intf org.newsclub.net.unix.FileDescriptorAccess
+meth public long transferTo(java.io.OutputStream) throws java.io.IOException
+supr java.io.InputStream
+hfds DEFAULT_BUFFER_SIZE
+
+CLSS public abstract org.newsclub.net.unix.AFOutputStream
+intf org.newsclub.net.unix.FileDescriptorAccess
+meth public long transferFrom(java.io.InputStream) throws java.io.IOException
+supr java.io.OutputStream
+hfds DEFAULT_BUFFER_SIZE
+
+CLSS public final org.newsclub.net.unix.AFPipe
 innr public final SinkChannel
 innr public final SourceChannel
 intf java.io.Closeable
-meth public org.newsclub.net.unix.AFUNIXPipe$SinkChannel sink()
-meth public org.newsclub.net.unix.AFUNIXPipe$SourceChannel source()
-meth public static org.newsclub.net.unix.AFUNIXPipe open() throws java.io.IOException
+meth public org.newsclub.net.unix.AFPipe$SinkChannel sink()
+meth public org.newsclub.net.unix.AFPipe$SourceChannel source()
+meth public static org.newsclub.net.unix.AFPipe open() throws java.io.IOException
 meth public void close() throws java.io.IOException
 supr java.nio.channels.Pipe
 hfds options,sinkChannel,sinkCore,sourceChannel,sourceCore
 
-CLSS public final org.newsclub.net.unix.AFUNIXPipe$SinkChannel
- outer org.newsclub.net.unix.AFUNIXPipe
+CLSS public final org.newsclub.net.unix.AFPipe$SinkChannel
+ outer org.newsclub.net.unix.AFPipe
 intf org.newsclub.net.unix.FileDescriptorAccess
 meth protected void implCloseSelectableChannel() throws java.io.IOException
 meth protected void implConfigureBlocking(boolean) throws java.io.IOException
@@ -481,8 +606,8 @@
 meth public long write(java.nio.ByteBuffer[],int,int) throws java.io.IOException
 supr java.nio.channels.Pipe$SinkChannel
 
-CLSS public final org.newsclub.net.unix.AFUNIXPipe$SourceChannel
- outer org.newsclub.net.unix.AFUNIXPipe
+CLSS public final org.newsclub.net.unix.AFPipe$SourceChannel
+ outer org.newsclub.net.unix.AFPipe
 intf org.newsclub.net.unix.FileDescriptorAccess
 meth protected void implCloseSelectableChannel() throws java.io.IOException
 meth protected void implConfigureBlocking(boolean) throws java.io.IOException
@@ -492,6 +617,216 @@
 meth public long read(java.nio.ByteBuffer[],int,int) throws java.io.IOException
 supr java.nio.channels.Pipe$SourceChannel
 
+CLSS public abstract org.newsclub.net.unix.AFSelectorProvider
+supr java.nio.channels.spi.SelectorProvider
+
+CLSS public abstract org.newsclub.net.unix.AFServerSocket
+intf org.newsclub.net.unix.FileDescriptorAccess
+supr java.net.ServerSocket
+
+CLSS public abstract interface org.newsclub.net.unix.AFServerSocket$Constructor
+
+CLSS public abstract org.newsclub.net.unix.AFServerSocketChannel
+intf org.newsclub.net.unix.FileDescriptorAccess
+supr java.nio.channels.ServerSocketChannel
+
+CLSS public abstract org.newsclub.net.unix.AFSocket
+intf org.newsclub.net.unix.AFSocketExtensions
+intf org.newsclub.net.unix.AFSomeSocket
+supr java.net.Socket
+
+CLSS public abstract interface org.newsclub.net.unix.AFSocket$Constructor
+
+CLSS public abstract org.newsclub.net.unix.AFSocketAddress
+supr java.net.InetSocketAddress
+hfds ADDRESS_CACHE,INTERNAL_DUMMY_BIND,INTERNAL_DUMMY_CONNECT,INTERNAL_DUMMY_DONT_CONNECT,SOCKADDR_MAX_LEN,SOCKADDR_NATIVE_DATA_OFFSET,SOCKADDR_NATIVE_FAMILY_OFFSET,SOCKETADDRESS_BUFFER_TL,addressFamily,bytes,inetAddress,nativeAddress,serialVersionUID
+
+CLSS public abstract interface org.newsclub.net.unix.AFSocketAddress$AFSocketAddressConstructor
+
+CLSS public abstract org.newsclub.net.unix.AFSocketAddressConfig<%0 extends org.newsclub.net.unix.AFSocketAddress>
+cons protected init()
+meth protected abstract java.lang.String selectorProviderClassname()
+meth protected abstract java.util.Set<java.lang.String> uriSchemes()
+meth protected abstract org.newsclub.net.unix.AFSocketAddress$AFSocketAddressConstructor<{org.newsclub.net.unix.AFSocketAddressConfig%0}> addressConstructor()
+meth protected abstract {org.newsclub.net.unix.AFSocketAddressConfig%0} parseURI(java.net.URI,int) throws java.net.SocketException
+supr java.lang.Object
+
+CLSS public abstract interface org.newsclub.net.unix.AFSocketAddressFromHostname<%0 extends org.newsclub.net.unix.AFSocketAddress>
+meth public abstract java.net.SocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
+meth public boolean isHostnameSupported(java.lang.String)
+
+CLSS public final !enum org.newsclub.net.unix.AFSocketCapability
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_ABSTRACT_NAMESPACE
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_ANCILLARY_MESSAGES
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_FD_AS_REDIRECT
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_FILE_DESCRIPTORS
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_NATIVE_SOCKETPAIR
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_PEER_CREDENTIALS
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_TIPC
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_UNIX_DATAGRAMS
+fld public final static org.newsclub.net.unix.AFSocketCapability CAPABILITY_UNIX_DOMAIN
+meth public static org.newsclub.net.unix.AFSocketCapability valueOf(java.lang.String)
+meth public static org.newsclub.net.unix.AFSocketCapability[] values()
+supr java.lang.Enum<org.newsclub.net.unix.AFSocketCapability>
+hfds bitmask
+
+CLSS public abstract org.newsclub.net.unix.AFSocketChannel
+intf org.newsclub.net.unix.AFSocketExtensions
+intf org.newsclub.net.unix.AFSomeSocket
+supr java.nio.channels.SocketChannel
+
+CLSS protected abstract interface static org.newsclub.net.unix.AFSocketChannel$AFSocketSupplier<%0 extends org.newsclub.net.unix.AFSocketAddress>
+ outer org.newsclub.net.unix.AFSocketChannel
+ anno 0 java.lang.FunctionalInterface()
+meth public abstract org.newsclub.net.unix.AFSocket<{org.newsclub.net.unix.AFSocketChannel$AFSocketSupplier%0}> newInstance() throws java.io.IOException
+
+CLSS public abstract interface org.newsclub.net.unix.AFSocketExtensions
+meth public abstract int getAncillaryReceiveBufferSize()
+meth public abstract void ensureAncillaryReceiveBufferSize(int)
+meth public abstract void setAncillaryReceiveBufferSize(int)
+
+CLSS public abstract org.newsclub.net.unix.AFSocketFactory<%0 extends org.newsclub.net.unix.AFSocketAddress>
+cons protected init()
+innr public final static FixedAddressSocketFactory
+intf org.newsclub.net.unix.AFSocketAddressFromHostname<{org.newsclub.net.unix.AFSocketFactory%0}>
+meth protected abstract java.net.Socket connectTo({org.newsclub.net.unix.AFSocketFactory%0}) throws java.io.IOException
+meth protected final boolean isInetAddressSupported(java.net.InetAddress)
+meth public abstract java.net.Socket createSocket() throws java.net.SocketException
+meth public final java.net.Socket createSocket(java.lang.String,int) throws java.io.IOException
+meth public final java.net.Socket createSocket(java.lang.String,int,java.net.InetAddress,int) throws java.io.IOException
+meth public final java.net.Socket createSocket(java.net.InetAddress,int) throws java.io.IOException
+meth public final java.net.Socket createSocket(java.net.InetAddress,int,java.net.InetAddress,int) throws java.io.IOException
+supr javax.net.SocketFactory
+
+CLSS public final static org.newsclub.net.unix.AFSocketFactory$FixedAddressSocketFactory
+ outer org.newsclub.net.unix.AFSocketFactory
+cons public init(java.net.SocketAddress)
+meth protected java.net.Socket connectTo(org.newsclub.net.unix.AFSocketAddress) throws java.io.IOException
+meth public boolean isHostnameSupported(java.lang.String)
+meth public java.net.Socket createSocket() throws java.net.SocketException
+meth public java.net.SocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
+supr org.newsclub.net.unix.AFSocketFactory<org.newsclub.net.unix.AFSocketAddress>
+hfds forceAddr
+
+CLSS public abstract org.newsclub.net.unix.AFSocketImpl
+meth protected <%0 extends java.lang.Object> void setOption(java.net.SocketOption<{%%0}>,{%%0}) throws java.io.IOException
+meth protected <%0 extends java.lang.Object> {%%0} getOption(java.net.SocketOption<{%%0}>) throws java.io.IOException
+meth protected final void finalize()
+meth protected java.util.Set<java.net.SocketOption<?>> supportedOptions()
+supr java.net.SocketImpl
+hfds SHUTDOWN_RD_WR,SHUT_RD,SHUT_RD_WR,SHUT_WR,addressFamily,ancillaryDataSupport,bound,closedInputStream,closedOutputStream,connected,core,createType,implExtensions,in,out,reuseAddr,shutdownState,socketTimeout
+
+CLSS public abstract interface org.newsclub.net.unix.AFSocketImplExtensions<%0 extends org.newsclub.net.unix.AFSocketAddress>
+
+CLSS public final org.newsclub.net.unix.AFSocketOption<%0 extends java.lang.Object>
+cons public init(java.lang.String,java.lang.Class<{org.newsclub.net.unix.AFSocketOption%0}>,int,int)
+intf java.net.SocketOption<{org.newsclub.net.unix.AFSocketOption%0}>
+meth public java.lang.Class<{org.newsclub.net.unix.AFSocketOption%0}> type()
+meth public java.lang.String name()
+meth public java.lang.String toString()
+supr java.lang.Object
+hfds level,name,optionName,type
+
+CLSS public abstract org.newsclub.net.unix.AFSocketPair
+supr org.newsclub.net.unix.CloseablePair
+
+CLSS public final !enum org.newsclub.net.unix.AFSocketProtocol
+fld public final static org.newsclub.net.unix.AFSocketProtocol DEFAULT
+meth public static org.newsclub.net.unix.AFSocketProtocol valueOf(java.lang.String)
+meth public static org.newsclub.net.unix.AFSocketProtocol[] values()
+supr java.lang.Enum<org.newsclub.net.unix.AFSocketProtocol>
+hfds id
+
+CLSS public final !enum org.newsclub.net.unix.AFSocketType
+fld public final static org.newsclub.net.unix.AFSocketType SOCK_DGRAM
+fld public final static org.newsclub.net.unix.AFSocketType SOCK_RDM
+fld public final static org.newsclub.net.unix.AFSocketType SOCK_SEQPACKET
+fld public final static org.newsclub.net.unix.AFSocketType SOCK_STREAM
+meth public static org.newsclub.net.unix.AFSocketType valueOf(java.lang.String)
+meth public static org.newsclub.net.unix.AFSocketType[] values()
+supr java.lang.Enum<org.newsclub.net.unix.AFSocketType>
+hfds id
+
+CLSS public abstract interface org.newsclub.net.unix.AFSomeSocket
+intf java.io.Closeable
+intf org.newsclub.net.unix.FileDescriptorAccess
+
+CLSS public final org.newsclub.net.unix.AFTIPCSocketAddress
+fld public final static int TIPC_RESERVED_TYPES = 64
+fld public final static int TIPC_TOP_SRV = 1
+innr public final static AddressType
+innr public final static Scope
+meth public boolean hasFilename()
+meth public int getTIPCDomain()
+meth public int getTIPCInstance()
+meth public int getTIPCLower()
+meth public int getTIPCNodeHash()
+meth public int getTIPCRef()
+meth public int getTIPCType()
+meth public int getTIPCUpper()
+meth public java.io.File getFile() throws java.io.FileNotFoundException
+meth public java.lang.String toString()
+meth public java.net.URI toURI(java.lang.String,java.net.URI) throws java.io.IOException
+meth public org.newsclub.net.unix.AFTIPCSocketAddress$Scope getScope()
+meth public static boolean isSupportedAddress(java.net.InetAddress)
+meth public static boolean isSupportedAddress(java.net.SocketAddress)
+meth public static org.newsclub.net.unix.AFAddressFamily<org.newsclub.net.unix.AFTIPCSocketAddress> addressFamily()
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress of(java.net.URI) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress of(java.net.URI,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofService(int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofService(int,org.newsclub.net.unix.AFTIPCSocketAddress$Scope,int,int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofService(org.newsclub.net.unix.AFTIPCSocketAddress$Scope,int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofService(org.newsclub.net.unix.AFTIPCSocketAddress$Scope,int,int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofServiceRange(int,int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofServiceRange(int,org.newsclub.net.unix.AFTIPCSocketAddress$Scope,int,int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofServiceRange(org.newsclub.net.unix.AFTIPCSocketAddress$Scope,int,int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofSocket(int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofSocket(int,int,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress ofTopologyService() throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress unwrap(java.lang.String,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress unwrap(java.net.InetAddress,int) throws java.net.SocketException
+meth public static org.newsclub.net.unix.AFTIPCSocketAddress unwrap(java.net.SocketAddress) throws java.net.SocketException
+supr org.newsclub.net.unix.AFSocketAddress
+hfds PAT_TIPC_URI_HOST_AND_PORT,afTipc,serialVersionUID
+
+CLSS public final org.newsclub.net.unix.AFTIPCSocketAddress$AddressType
+supr org.newsclub.net.unix.NamedInteger
+
+CLSS public final org.newsclub.net.unix.AFTIPCSocketAddress$Scope
+supr org.newsclub.net.unix.NamedInteger
+
+CLSS public final org.newsclub.net.unix.AFTIPCSocketImplExtensions
+intf org.newsclub.net.unix.AFSocketImplExtensions<org.newsclub.net.unix.AFTIPCSocketAddress>
+meth public byte[] getTIPCNodeId(int) throws java.io.IOException
+meth public int[] getTIPCDestName()
+meth public int[] getTIPCErrInfo()
+meth public java.lang.String getTIPCLinkName(int,int) throws java.io.IOException
+supr java.lang.Object
+hfds ancillaryDataSupport
+
+CLSS public final org.newsclub.net.unix.AFUNIXDatagramChannel
+intf org.newsclub.net.unix.AFUNIXSocketExtensions
+meth public !varargs void setOutboundFileDescriptors(java.io.FileDescriptor[]) throws java.io.IOException
+meth public boolean hasOutboundFileDescriptors()
+meth public java.io.FileDescriptor[] getReceivedFileDescriptors() throws java.io.IOException
+meth public org.newsclub.net.unix.AFUNIXSocketCredentials getPeerCredentials() throws java.io.IOException
+meth public static org.newsclub.net.unix.AFUNIXDatagramChannel open() throws java.io.IOException
+meth public static org.newsclub.net.unix.AFUNIXDatagramChannel open(java.net.ProtocolFamily) throws java.io.IOException
+meth public void clearReceivedFileDescriptors()
+supr org.newsclub.net.unix.AFDatagramChannel<org.newsclub.net.unix.AFUNIXSocketAddress>
+
+CLSS public final org.newsclub.net.unix.AFUNIXDatagramSocket
+intf org.newsclub.net.unix.AFUNIXSocketExtensions
+meth protected org.newsclub.net.unix.AFUNIXDatagramChannel newChannel()
+meth public !varargs void setOutboundFileDescriptors(java.io.FileDescriptor[]) throws java.io.IOException
+meth public boolean hasOutboundFileDescriptors()
+meth public java.io.FileDescriptor[] getReceivedFileDescriptors() throws java.io.IOException
+meth public org.newsclub.net.unix.AFUNIXDatagramChannel getChannel()
+meth public org.newsclub.net.unix.AFUNIXSocketCredentials getPeerCredentials() throws java.io.IOException
+meth public static org.newsclub.net.unix.AFUNIXDatagramSocket newInstance() throws java.io.IOException
+meth public void clearReceivedFileDescriptors()
+supr org.newsclub.net.unix.AFDatagramSocket<org.newsclub.net.unix.AFUNIXSocketAddress>
+
 CLSS public final !enum org.newsclub.net.unix.AFUNIXProtocolFamily
 fld public final static org.newsclub.net.unix.AFUNIXProtocolFamily UNIX
 intf java.net.ProtocolFamily
@@ -500,134 +835,50 @@
 supr java.lang.Enum<org.newsclub.net.unix.AFUNIXProtocolFamily>
 
 CLSS public final org.newsclub.net.unix.AFUNIXSelectorProvider
-meth public java.nio.channels.spi.AbstractSelector openSelector() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXDatagramChannel openDatagramChannel() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXDatagramChannel openDatagramChannel(java.net.ProtocolFamily) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXPipe openPipe() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXPipe openSelectablePipe() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXServerSocketChannel openServerSocketChannel() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXServerSocketChannel openServerSocketChannel(java.net.SocketAddress) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketChannel openSocketChannel() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketChannel openSocketChannel(java.net.SocketAddress) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketPair<org.newsclub.net.unix.AFUNIXDatagramChannel> openDatagramChannelPair() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketPair<org.newsclub.net.unix.AFUNIXSocketChannel> openSocketChannelPair() throws java.io.IOException
-meth public static org.newsclub.net.unix.AFUNIXSelectorProvider getInstance()
-meth public static org.newsclub.net.unix.AFUNIXSelectorProvider provider()
-supr java.nio.channels.spi.SelectorProvider
-hfds INSTANCE
+supr org.newsclub.net.unix.AFSelectorProvider
 
 CLSS public org.newsclub.net.unix.AFUNIXServerSocket
 cons protected init() throws java.io.IOException
-intf org.newsclub.net.unix.FileDescriptorAccess
+meth protected org.newsclub.net.unix.AFSocketImpl newImpl(java.io.FileDescriptor) throws java.net.SocketException
+meth protected org.newsclub.net.unix.AFUNIXServerSocketChannel newChannel()
 meth protected org.newsclub.net.unix.AFUNIXSocket newSocketInstance() throws java.io.IOException
-meth public boolean isBound()
-meth public boolean isClosed()
-meth public boolean isDeleteOnClose()
-meth public int getLocalPort()
-meth public java.io.FileDescriptor getFileDescriptor() throws java.io.IOException
-meth public java.lang.String toString()
 meth public org.newsclub.net.unix.AFUNIXServerSocketChannel getChannel()
 meth public org.newsclub.net.unix.AFUNIXSocket accept() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getLocalSocketAddress()
-meth public static boolean isSupported()
 meth public static org.newsclub.net.unix.AFUNIXServerSocket bindOn(java.io.File,boolean) throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXServerSocket bindOn(java.nio.file.Path,boolean) throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXServerSocket bindOn(org.newsclub.net.unix.AFUNIXSocketAddress) throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXServerSocket bindOn(org.newsclub.net.unix.AFUNIXSocketAddress,boolean) throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXServerSocket forceBindOn(org.newsclub.net.unix.AFUNIXSocketAddress) throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXServerSocket newInstance() throws java.io.IOException
-meth public static org.newsclub.net.unix.AFUNIXServerSocket newInstance(java.io.FileDescriptor,int,int) throws java.io.IOException
-meth public void addCloseable(java.io.Closeable)
-meth public void bind(java.net.SocketAddress,int) throws java.io.IOException
-meth public void close() throws java.io.IOException
-meth public void removeCloseable(java.io.Closeable)
-meth public void setDeleteOnClose(boolean)
-supr java.net.ServerSocket
-hfds boundEndpoint,channel,closeables,created,deleteOnClose,implementation
+supr org.newsclub.net.unix.AFServerSocket<org.newsclub.net.unix.AFUNIXSocketAddress>
 
 CLSS public final org.newsclub.net.unix.AFUNIXServerSocketChannel
-intf org.newsclub.net.unix.FileDescriptorAccess
-meth protected void implCloseSelectableChannel() throws java.io.IOException
-meth protected void implConfigureBlocking(boolean) throws java.io.IOException
-meth public <%0 extends java.lang.Object> org.newsclub.net.unix.AFUNIXServerSocketChannel setOption(java.net.SocketOption<{%%0}>,{%%0}) throws java.io.IOException
-meth public <%0 extends java.lang.Object> {%%0} getOption(java.net.SocketOption<{%%0}>) throws java.io.IOException
-meth public java.io.FileDescriptor getFileDescriptor() throws java.io.IOException
-meth public java.util.Set<java.net.SocketOption<?>> supportedOptions()
-meth public org.newsclub.net.unix.AFUNIXServerSocket socket()
-meth public org.newsclub.net.unix.AFUNIXServerSocketChannel bind(java.net.SocketAddress,int) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getLocalAddress() throws java.io.IOException
 meth public org.newsclub.net.unix.AFUNIXSocketChannel accept() throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXServerSocketChannel open() throws java.io.IOException
-supr java.nio.channels.ServerSocketChannel
-hfds afSocket
+supr org.newsclub.net.unix.AFServerSocketChannel<org.newsclub.net.unix.AFUNIXSocketAddress>
 
 CLSS public final org.newsclub.net.unix.AFUNIXSocket
 intf org.newsclub.net.unix.AFUNIXSocketExtensions
-intf org.newsclub.net.unix.AFUNIXSomeSocket
+meth protected org.newsclub.net.unix.AFUNIXSocketChannel newChannel()
 meth public !varargs void setOutboundFileDescriptors(java.io.FileDescriptor[]) throws java.io.IOException
 meth public boolean hasOutboundFileDescriptors()
-meth public boolean isBound()
-meth public boolean isClosed()
-meth public boolean isConnected()
-meth public int getAncillaryReceiveBufferSize()
-meth public java.io.FileDescriptor getFileDescriptor() throws java.io.IOException
 meth public java.io.FileDescriptor[] getReceivedFileDescriptors() throws java.io.IOException
-meth public java.lang.String toString()
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getLocalSocketAddress()
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getRemoteSocketAddress()
 meth public org.newsclub.net.unix.AFUNIXSocketChannel getChannel()
 meth public org.newsclub.net.unix.AFUNIXSocketCredentials getPeerCredentials() throws java.io.IOException
 meth public static boolean isSupported()
-meth public static boolean supports(org.newsclub.net.unix.AFUNIXSocketCapability)
-meth public static java.lang.String getLoadedLibrary()
-meth public static java.lang.String getVersion()
 meth public static org.newsclub.net.unix.AFUNIXSocket connectTo(org.newsclub.net.unix.AFUNIXSocketAddress) throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXSocket newInstance() throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXSocket newStrictInstance() throws java.io.IOException
 meth public static void main(java.lang.String[])
-meth public void addCloseable(java.io.Closeable)
-meth public void bind(java.net.SocketAddress) throws java.io.IOException
 meth public void clearReceivedFileDescriptors()
-meth public void close() throws java.io.IOException
-meth public void connect(java.net.SocketAddress) throws java.io.IOException
-meth public void connect(java.net.SocketAddress,int) throws java.io.IOException
-meth public void ensureAncillaryReceiveBufferSize(int)
-meth public void removeCloseable(java.io.Closeable)
-meth public void setAncillaryReceiveBufferSize(int)
-supr java.net.Socket
-hfds capabilities,channel,closeables,created,impl,loadedLibrary,socketFactory
+supr org.newsclub.net.unix.AFSocket<org.newsclub.net.unix.AFUNIXSocketAddress>
+hfds CONSTRUCTOR_STRICT
 
 CLSS public final org.newsclub.net.unix.AFUNIXSocketAddress
-cons public init(byte[]) throws java.net.SocketException
-cons public init(byte[],int) throws java.net.SocketException
-cons public init(java.io.File) throws java.net.SocketException
-cons public init(java.io.File,int) throws java.net.SocketException
-meth public boolean hasFilename()
-meth public boolean isInAbstractNamespace()
-meth public byte[] getPathAsBytes()
-meth public java.io.File getFile() throws java.io.FileNotFoundException
-meth public java.lang.String getPath()
-meth public java.lang.String toString()
-meth public java.net.InetAddress wrapAddress()
-meth public static boolean isSupportedAddress(java.net.InetAddress)
-meth public static boolean isSupportedAddress(java.net.SocketAddress)
-meth public static java.nio.charset.Charset addressCharset()
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress inAbstractNamespace(java.lang.String) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress inAbstractNamespace(java.lang.String,int) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress of(byte[]) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress of(byte[],int) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress of(java.io.File) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress of(java.io.File,int) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress of(java.nio.file.Path) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress of(java.nio.file.Path,int) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress ofNewTempFile() throws java.io.IOException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress ofNewTempPath(int) throws java.io.IOException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress unwrap(java.net.InetAddress,int) throws java.net.SocketException
-meth public static org.newsclub.net.unix.AFUNIXSocketAddress unwrap(java.net.SocketAddress) throws java.net.SocketException
-supr java.net.InetSocketAddress
-hfds ADDRESS_CACHE,ADDRESS_CHARSET,INTERNAL_DUMMY_BIND,INTERNAL_DUMMY_CONNECT,INTERNAL_DUMMY_DONT_CONNECT,SOCKADDR_UN_LENGTH,SOCKETADDRESS_BUFFER_TL,bytes,inetAddress,serialVersionUID
+supr org.newsclub.net.unix.AFSocketAddress
 
 CLSS public final !enum org.newsclub.net.unix.AFUNIXSocketCapability
+ anno 0 java.lang.Deprecated()
 fld public final static org.newsclub.net.unix.AFUNIXSocketCapability CAPABILITY_ABSTRACT_NAMESPACE
 fld public final static org.newsclub.net.unix.AFUNIXSocketCapability CAPABILITY_ANCILLARY_MESSAGES
 fld public final static org.newsclub.net.unix.AFUNIXSocketCapability CAPABILITY_DATAGRAMS
@@ -641,40 +892,14 @@
 
 CLSS public final org.newsclub.net.unix.AFUNIXSocketChannel
 intf org.newsclub.net.unix.AFUNIXSocketExtensions
-intf org.newsclub.net.unix.AFUNIXSomeSocket
-meth protected void implCloseSelectableChannel() throws java.io.IOException
-meth protected void implConfigureBlocking(boolean) throws java.io.IOException
 meth public !varargs void setOutboundFileDescriptors(java.io.FileDescriptor[]) throws java.io.IOException
-meth public <%0 extends java.lang.Object> org.newsclub.net.unix.AFUNIXSocketChannel setOption(java.net.SocketOption<{%%0}>,{%%0}) throws java.io.IOException
-meth public <%0 extends java.lang.Object> {%%0} getOption(java.net.SocketOption<{%%0}>) throws java.io.IOException
-meth public boolean connect(java.net.SocketAddress) throws java.io.IOException
-meth public boolean finishConnect() throws java.io.IOException
 meth public boolean hasOutboundFileDescriptors()
-meth public boolean isConnected()
-meth public boolean isConnectionPending()
-meth public int getAncillaryReceiveBufferSize()
-meth public int read(java.nio.ByteBuffer) throws java.io.IOException
-meth public int write(java.nio.ByteBuffer) throws java.io.IOException
-meth public java.io.FileDescriptor getFileDescriptor() throws java.io.IOException
 meth public java.io.FileDescriptor[] getReceivedFileDescriptors() throws java.io.IOException
-meth public java.lang.String toString()
-meth public java.util.Set<java.net.SocketOption<?>> supportedOptions()
-meth public long read(java.nio.ByteBuffer[],int,int) throws java.io.IOException
-meth public long write(java.nio.ByteBuffer[],int,int) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocket socket()
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getLocalAddress() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketAddress getRemoteAddress() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketChannel bind(java.net.SocketAddress) throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketChannel shutdownInput() throws java.io.IOException
-meth public org.newsclub.net.unix.AFUNIXSocketChannel shutdownOutput() throws java.io.IOException
 meth public org.newsclub.net.unix.AFUNIXSocketCredentials getPeerCredentials() throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXSocketChannel open() throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXSocketChannel open(java.net.SocketAddress) throws java.io.IOException
 meth public void clearReceivedFileDescriptors()
-meth public void ensureAncillaryReceiveBufferSize(int)
-meth public void setAncillaryReceiveBufferSize(int)
-supr java.nio.channels.SocketChannel
-hfds afSocket,connectPending
+supr org.newsclub.net.unix.AFSocketChannel<org.newsclub.net.unix.AFUNIXSocketAddress>
 
 CLSS public final org.newsclub.net.unix.AFUNIXSocketCredentials
 fld public final static org.newsclub.net.unix.AFUNIXSocketCredentials SAME_PROCESS
@@ -693,67 +918,56 @@
 hfds gids,pid,serialVersionUID,uid,uuid
 
 CLSS public abstract interface org.newsclub.net.unix.AFUNIXSocketExtensions
+intf org.newsclub.net.unix.AFSocketExtensions
 meth public abstract !varargs void setOutboundFileDescriptors(java.io.FileDescriptor[]) throws java.io.IOException
 meth public abstract boolean hasOutboundFileDescriptors()
-meth public abstract int getAncillaryReceiveBufferSize()
 meth public abstract java.io.FileDescriptor[] getReceivedFileDescriptors() throws java.io.IOException
 meth public abstract org.newsclub.net.unix.AFUNIXSocketCredentials getPeerCredentials() throws java.io.IOException
 meth public abstract void clearReceivedFileDescriptors()
-meth public abstract void ensureAncillaryReceiveBufferSize(int)
-meth public abstract void setAncillaryReceiveBufferSize(int)
 
 CLSS public abstract org.newsclub.net.unix.AFUNIXSocketFactory
-cons public init()
+cons protected init()
 innr public final static FactoryArg
 innr public final static SystemProperty
 innr public final static URIScheme
-meth protected abstract org.newsclub.net.unix.AFUNIXSocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
-meth protected boolean isHostnameSupported(java.lang.String)
-meth protected boolean isInetAddressSupported(java.net.InetAddress)
+meth protected org.newsclub.net.unix.AFUNIXSocket connectTo(org.newsclub.net.unix.AFUNIXSocketAddress) throws java.io.IOException
 meth public java.net.Socket createSocket() throws java.net.SocketException
-meth public java.net.Socket createSocket(java.lang.String,int) throws java.io.IOException
-meth public java.net.Socket createSocket(java.lang.String,int,java.net.InetAddress,int) throws java.io.IOException
-meth public java.net.Socket createSocket(java.net.InetAddress,int) throws java.io.IOException
-meth public java.net.Socket createSocket(java.net.InetAddress,int,java.net.InetAddress,int) throws java.io.IOException
-supr javax.net.SocketFactory
+supr org.newsclub.net.unix.AFSocketFactory<org.newsclub.net.unix.AFUNIXSocketAddress>
 hcls DefaultSocketHostnameSocketFactory
 
 CLSS public final static org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg
  outer org.newsclub.net.unix.AFUNIXSocketFactory
 cons public init(java.io.File)
 cons public init(java.lang.String)
-meth protected final boolean isHostnameSupported(java.lang.String)
-meth protected org.newsclub.net.unix.AFUNIXSocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
+meth public final boolean isHostnameSupported(java.lang.String)
+meth public org.newsclub.net.unix.AFUNIXSocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
 supr org.newsclub.net.unix.AFUNIXSocketFactory
 hfds socketFile
 
 CLSS public final static org.newsclub.net.unix.AFUNIXSocketFactory$SystemProperty
  outer org.newsclub.net.unix.AFUNIXSocketFactory
 cons public init()
-meth protected final boolean isHostnameSupported(java.lang.String)
-meth protected org.newsclub.net.unix.AFUNIXSocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
+meth public final boolean isHostnameSupported(java.lang.String)
+meth public org.newsclub.net.unix.AFUNIXSocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
 supr org.newsclub.net.unix.AFUNIXSocketFactory
 hfds PROP_SOCKET_DEFAULT
 
 CLSS public final static org.newsclub.net.unix.AFUNIXSocketFactory$URIScheme
  outer org.newsclub.net.unix.AFUNIXSocketFactory
 cons public init()
-meth protected boolean isHostnameSupported(java.lang.String)
-meth protected org.newsclub.net.unix.AFUNIXSocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
+meth public boolean isHostnameSupported(java.lang.String)
+meth public org.newsclub.net.unix.AFUNIXSocketAddress addressFromHost(java.lang.String,int) throws java.net.SocketException
 supr org.newsclub.net.unix.AFUNIXSocketFactory
 hfds FILE_SCHEME_LOCALHOST,FILE_SCHEME_PREFIX,FILE_SCHEME_PREFIX_ENCODED
 
-CLSS public final org.newsclub.net.unix.AFUNIXSocketPair<%0 extends org.newsclub.net.unix.AFUNIXSomeSocket>
+CLSS public final org.newsclub.net.unix.AFUNIXSocketPair<%0 extends org.newsclub.net.unix.AFSomeSocket>
 meth public static org.newsclub.net.unix.AFUNIXSocketPair<org.newsclub.net.unix.AFUNIXDatagramChannel> openDatagram() throws java.io.IOException
 meth public static org.newsclub.net.unix.AFUNIXSocketPair<org.newsclub.net.unix.AFUNIXSocketChannel> open() throws java.io.IOException
-meth public {org.newsclub.net.unix.AFUNIXSocketPair%0} getSocket1()
-meth public {org.newsclub.net.unix.AFUNIXSocketPair%0} getSocket2()
-supr java.lang.Object
-hfds socket1,socket2
+supr org.newsclub.net.unix.AFSocketPair<{org.newsclub.net.unix.AFUNIXSocketPair%0}>
 
-CLSS public abstract interface org.newsclub.net.unix.AFUNIXSomeSocket
+CLSS public org.newsclub.net.unix.CloseablePair
 intf java.io.Closeable
-intf org.newsclub.net.unix.FileDescriptorAccess
+supr java.lang.Object
 
 CLSS public final org.newsclub.net.unix.Closeables
 cons public !varargs init(java.io.Closeable[])
@@ -772,14 +986,45 @@
 meth public abstract java.io.FileDescriptor getFileDescriptor() throws java.io.IOException
 
 CLSS public final org.newsclub.net.unix.FileDescriptorCast
-meth public <%0 extends java.lang.Object> {%%0} as(java.lang.Class<{%%0}>) throws java.io.IOException
-meth public boolean isAvailable(java.lang.Class<?>) throws java.io.IOException
-meth public java.io.FileDescriptor getFileDescriptor()
-meth public java.util.Set<java.lang.Class<?>> availableTypes()
-meth public org.newsclub.net.unix.FileDescriptorCast withLocalPort(int)
-meth public org.newsclub.net.unix.FileDescriptorCast withRemotePort(int)
-meth public static org.newsclub.net.unix.FileDescriptorCast using(java.io.FileDescriptor) throws java.io.IOException
+intf org.newsclub.net.unix.FileDescriptorAccess
 supr java.lang.Object
-hfds GLOBAL_PROVIDERS,GLOBAL_PROVIDERS_FINAL,PRIMARY_TYPE_PROVIDERS_MAP,cpm,fdObj,localPort,remotePort
-hcls CastingProvider,CastingProviderMap
+hfds FD_IS_PROVIDER,GLOBAL_PROVIDERS,GLOBAL_PROVIDERS_FINAL,PRIMARY_TYPE_PROVIDERS_MAP,cpm,fdObj,localPort,remotePort
+
+CLSS public final org.newsclub.net.unix.HostAndPort
+cons public init(java.lang.String,int)
+meth public boolean equals(java.lang.Object)
+meth public int getPort()
+meth public int hashCode()
+meth public java.lang.String getHostname()
+meth public java.lang.String toString()
+meth public java.net.URI toURI(java.lang.String)
+meth public java.net.URI toURI(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)
+meth public java.net.URI toURI(java.lang.String,java.net.URI)
+meth public static org.newsclub.net.unix.HostAndPort parseFrom(java.net.URI) throws java.net.SocketException
+supr java.lang.Object
+hfds PAT_HOST_AND_PORT,hostname,port
+
+CLSS public org.newsclub.net.unix.NamedInteger
+intf java.io.Serializable
+supr java.lang.Object
+hfds id,name,serialVersionUID
+
+CLSS public abstract interface static org.newsclub.net.unix.NamedInteger$HasOfValue
+ outer org.newsclub.net.unix.NamedInteger
+
+CLSS protected abstract interface static org.newsclub.net.unix.NamedInteger$UndefinedValueConstructor<%0 extends org.newsclub.net.unix.NamedInteger>
+ outer org.newsclub.net.unix.NamedInteger
+ anno 0 java.lang.FunctionalInterface()
+meth public abstract {org.newsclub.net.unix.NamedInteger$UndefinedValueConstructor%0} newInstance(int)
+
+CLSS public abstract org.newsclub.net.unix.NamedIntegerBitmask
+intf java.io.Serializable
+supr java.lang.Object
+hfds flags,name,serialVersionUID
+
+CLSS public abstract interface org.newsclub.net.unix.NamedIntegerBitmask$Constructor
+
+CLSS public abstract interface org.newsclub.net.unix.SocketAddressFilter
+ anno 0 java.lang.FunctionalInterface()
+meth public abstract java.net.SocketAddress apply(java.net.SocketAddress) throws java.io.IOException
 
diff --git a/ide/libs.c.kohlschutter.junixsocket/nbproject/project.properties b/ide/libs.c.kohlschutter.junixsocket/nbproject/project.properties
index 3d7b2da..f61dba9 100644
--- a/ide/libs.c.kohlschutter.junixsocket/nbproject/project.properties
+++ b/ide/libs.c.kohlschutter.junixsocket/nbproject/project.properties
@@ -15,19 +15,21 @@
 # specific language governing permissions and limitations
 # under the License.
 
-release.external/junixsocket-common-2.4.0.jar=modules/ext/junixsocket-common-2.4.0.jar
-release.external/junixsocket-native-common-2.4.0.jar=modules/ext/junixsocket-native-common-2.4.0.jar
-release.external/junixsocket-native-common-2.4.0.jar!/lib/x86_64-MacOSX-clang/jni/libjunixsocket-native-2.4.0.dylib=modules/lib/x86_64/libjunixsocket-native-2.4.0.dylib
-release.external/junixsocket-native-common-2.4.0.jar!/lib/aarch64-MacOSX-clang/jni/libjunixsocket-native-2.4.0.dylib=modules/lib/aarch64/libjunixsocket-native-2.4.0.dylib
-release.external/junixsocket-native-common-2.4.0.jar!/lib/amd64-Linux-clang/jni/libjunixsocket-native-2.4.0.so=modules/lib/amd64/linux/libjunixsocket-native-2.4.0.so
-release.external/junixsocket-native-common-2.4.0.jar!/lib/aarch64-Linux-clang/jni/libjunixsocket-native-2.4.0.so=modules/lib/aarch64/linux/libjunixsocket-native-2.4.0.so
-release.external/junixsocket-native-common-2.4.0.jar!/lib/riscv64-Linux-clang/jni/libjunixsocket-native-2.4.0.so=modules/lib/riscv64/linux/libjunixsocket-native-2.4.0.so
-release.external/junixsocket-native-common-2.4.0.jar!/lib/amd64-Windows10-clang/jni/junixsocket-native-2.4.0.dll=modules/lib/amd64/junixsocket-native-2.4.0.dll
+release.external/junixsocket-common-2.5.1.jar=modules/ext/junixsocket-common-2.5.1.jar
+release.external/junixsocket-native-common-2.5.1.jar=modules/ext/junixsocket-native-common-2.5.1.jar
+release.external/junixsocket-native-common-2.5.1.jar!/lib/x86_64-MacOSX-clang/jni/libjunixsocket-native-2.5.1.dylib=modules/lib/x86_64/libjunixsocket-native-2.5.1.dylib
+release.external/junixsocket-native-common-2.5.1.jar!/lib/aarch64-MacOSX-clang/jni/libjunixsocket-native-2.5.1.dylib=modules/lib/aarch64/libjunixsocket-native-2.5.1.dylib
+release.external/junixsocket-native-common-2.5.1.jar!/lib/amd64-Linux-clang/jni/libjunixsocket-native-2.5.1.so=modules/lib/amd64/linux/libjunixsocket-native-2.5.1.so
+release.external/junixsocket-native-common-2.5.1.jar!/lib/aarch64-Linux-clang/jni/libjunixsocket-native-2.5.1.so=modules/lib/aarch64/linux/libjunixsocket-native-2.5.1.so
+release.external/junixsocket-native-common-2.5.1.jar!/lib/riscv64-Linux-clang/jni/libjunixsocket-native-2.5.1.so=modules/lib/riscv64/linux/libjunixsocket-native-2.5.1.so
+release.external/junixsocket-native-common-2.5.1.jar!/lib/amd64-Windows10-clang/jni/junixsocket-native-2.5.1.dll=modules/lib/amd64/junixsocket-native-2.5.1.dll
+release.external/junixsocket-native-common-2.5.1.jar!/lib/aarch64-Windows10-clang/jni/junixsocket-native-2.5.1.dll=modules/lib/aarch64/junixsocket-native-2.5.1.dll
 jnlp.verify.excludes=\
-    modules/lib/x86_64/libjunixsocket-native-2.4.0.dylib,\
-    modules/lib/aarch64/libjunixsocket-native-2.4.0.dylib,\
-    modules/lib/amd64/linux/libjunixsocket-native-2.4.0.so,\
-    modules/lib/aarch64/linux/libjunixsocket-native-2.4.0.so,\
-    modules/lib/riscv64/linux/libjunixsocket-native-2.4.0.so,\
-    modules/lib/amd64/junixsocket-native-2.4.0.dll
+    modules/lib/x86_64/libjunixsocket-native-2.5.1.dylib,\
+    modules/lib/aarch64/libjunixsocket-native-2.5.1.dylib,\
+    modules/lib/amd64/linux/libjunixsocket-native-2.5.1.so,\
+    modules/lib/aarch64/linux/libjunixsocket-native-2.5.1.so,\
+    modules/lib/riscv64/linux/libjunixsocket-native-2.5.1.so,\
+    modules/lib/amd64/junixsocket-native-2.5.1.dll,\
+    modules/lib/aarch64/junixsocket-native-2.5.1.dll
 is.autoload=true
diff --git a/ide/libs.c.kohlschutter.junixsocket/nbproject/project.xml b/ide/libs.c.kohlschutter.junixsocket/nbproject/project.xml
index 15f1fcd..1fc741e 100644
--- a/ide/libs.c.kohlschutter.junixsocket/nbproject/project.xml
+++ b/ide/libs.c.kohlschutter.junixsocket/nbproject/project.xml
@@ -29,12 +29,12 @@
                 <package>org.newsclub.net.unix</package>
             </public-packages>
             <class-path-extension>
-                <runtime-relative-path>ext/junixsocket-native-common-2.4.0.jar</runtime-relative-path>
-                <binary-origin>external/junixsocket-native-common-2.4.0.jar</binary-origin>
+                <runtime-relative-path>ext/junixsocket-native-common-2.5.1.jar</runtime-relative-path>
+                <binary-origin>external/junixsocket-native-common-2.5.1.jar</binary-origin>
             </class-path-extension>
             <class-path-extension>
-                <runtime-relative-path>ext/junixsocket-common-2.4.0.jar</runtime-relative-path>
-                <binary-origin>external/junixsocket-common-2.4.0.jar</binary-origin>
+                <runtime-relative-path>ext/junixsocket-common-2.5.1.jar</runtime-relative-path>
+                <binary-origin>external/junixsocket-common-2.5.1.jar</binary-origin>
             </class-path-extension>
         </data>
     </configuration>
diff --git a/java/debugger.jpda.truffle/src/org/netbeans/modules/debugger/jpda/truffle/actions/ToggleBreakpointsInLanguagesActionProvider.java b/java/debugger.jpda.truffle/src/org/netbeans/modules/debugger/jpda/truffle/actions/ToggleBreakpointsInLanguagesActionProvider.java
index f01c728..6994cd5 100644
--- a/java/debugger.jpda.truffle/src/org/netbeans/modules/debugger/jpda/truffle/actions/ToggleBreakpointsInLanguagesActionProvider.java
+++ b/java/debugger.jpda.truffle/src/org/netbeans/modules/debugger/jpda/truffle/actions/ToggleBreakpointsInLanguagesActionProvider.java
@@ -47,7 +47,7 @@
     
     private static final Set<String> IGNORED_MIME_TYPES = new HashSet<>(
             // We have JSLineBreakpoint in JavaScript
-            Arrays.asList("text/javascript", "text/x-java"));                     // NOI18N
+            Arrays.asList("text/javascript", "text/x-java", "text/x-groovy"));  // NOI18N
     
     private volatile Line postedLine;
     
diff --git a/platform/libs.jna.platform/external/binaries-list b/platform/libs.jna.platform/external/binaries-list
index 9acffb0..c40aa99 100644
--- a/platform/libs.jna.platform/external/binaries-list
+++ b/platform/libs.jna.platform/external/binaries-list
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License.
 
-C535A5BDA553D7D7690356C825010DA74B2671B5 net.java.dev.jna:jna-platform:5.9.0
+097406A297C852F4A41E688A176EC675F72E8329 net.java.dev.jna:jna-platform:5.12.1
diff --git a/platform/libs.jna.platform/external/jna-platform-5.9.0-license.txt b/platform/libs.jna.platform/external/jna-platform-5.12.1-license.txt
similarity index 99%
rename from platform/libs.jna.platform/external/jna-platform-5.9.0-license.txt
rename to platform/libs.jna.platform/external/jna-platform-5.12.1-license.txt
index 7ab5d58..087700f 100644
--- a/platform/libs.jna.platform/external/jna-platform-5.9.0-license.txt
+++ b/platform/libs.jna.platform/external/jna-platform-5.12.1-license.txt
@@ -1,5 +1,5 @@
 Name: Java Native Access
-Version: 5.9.0
+Version: 5.12.1
 License: Apache-2.0
 Description: Dynamically access native libraries from Java without JNI.
 Origin: Java Native Access
diff --git a/platform/libs.jna.platform/nbproject/project.properties b/platform/libs.jna.platform/nbproject/project.properties
index b863350..98355e2 100644
--- a/platform/libs.jna.platform/nbproject/project.properties
+++ b/platform/libs.jna.platform/nbproject/project.properties
@@ -17,5 +17,5 @@
 
 is.autoload=true
 javac.source=1.6
-release.external/jna-platform-5.9.0.jar=modules/ext/jna-platform-5.9.0.jar
+release.external/jna-platform-5.12.1.jar=modules/ext/jna-platform-5.12.1.jar
 sigtest.gen.fail.on.error=false
diff --git a/platform/libs.jna.platform/nbproject/project.xml b/platform/libs.jna.platform/nbproject/project.xml
index c7fc274..260c6dc 100644
--- a/platform/libs.jna.platform/nbproject/project.xml
+++ b/platform/libs.jna.platform/nbproject/project.xml
@@ -29,7 +29,7 @@
                     <code-name-base>org.netbeans.libs.jna</code-name-base>
                     <run-dependency>
                         <release-version>2</release-version>
-                        <specification-version>2.9</specification-version>
+                        <specification-version>2.13</specification-version>
                     </run-dependency>
                 </dependency>
             </module-dependencies>
@@ -47,8 +47,8 @@
                 <package>com.sun.jna.platform.wince</package>
             </public-packages>
             <class-path-extension>
-                <runtime-relative-path>ext/jna-platform-5.9.0.jar</runtime-relative-path>
-                <binary-origin>external/jna-platform-5.9.0.jar</binary-origin>
+                <runtime-relative-path>ext/jna-platform-5.12.1.jar</runtime-relative-path>
+                <binary-origin>external/jna-platform-5.12.1.jar</binary-origin>
             </class-path-extension>
         </data>
     </configuration>
diff --git a/platform/libs.jna/external/binaries-list b/platform/libs.jna/external/binaries-list
index ab565af..1a354b2 100644
--- a/platform/libs.jna/external/binaries-list
+++ b/platform/libs.jna/external/binaries-list
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License.
 
-8F503E6D9B500CEFF299052D6BE75B38C7257758 net.java.dev.jna:jna:5.9.0
+B1E93A735CAEA94F503E95E6FE79BF9CDC1E985D net.java.dev.jna:jna:5.12.1
diff --git a/platform/libs.jna.platform/external/jna-platform-5.9.0-license.txt b/platform/libs.jna/external/jna-5.12.1-license.txt
similarity index 99%
copy from platform/libs.jna.platform/external/jna-platform-5.9.0-license.txt
copy to platform/libs.jna/external/jna-5.12.1-license.txt
index 7ab5d58..087700f 100644
--- a/platform/libs.jna.platform/external/jna-platform-5.9.0-license.txt
+++ b/platform/libs.jna/external/jna-5.12.1-license.txt
@@ -1,5 +1,5 @@
 Name: Java Native Access
-Version: 5.9.0
+Version: 5.12.1
 License: Apache-2.0
 Description: Dynamically access native libraries from Java without JNI.
 Origin: Java Native Access
diff --git a/platform/libs.jna/external/jna-5.9.0-license.txt b/platform/libs.jna/external/jna-5.9.0-license.txt
deleted file mode 100644
index 7ab5d58..0000000
--- a/platform/libs.jna/external/jna-5.9.0-license.txt
+++ /dev/null
@@ -1,209 +0,0 @@
-Name: Java Native Access
-Version: 5.9.0
-License: Apache-2.0
-Description: Dynamically access native libraries from Java without JNI.
-Origin: Java Native Access
-URL: https://github.com/java-native-access/jna
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
-
diff --git a/platform/libs.jna/nbproject/project.properties b/platform/libs.jna/nbproject/project.properties
index a7efb24..84644e4 100644
--- a/platform/libs.jna/nbproject/project.properties
+++ b/platform/libs.jna/nbproject/project.properties
@@ -16,22 +16,24 @@
 # under the License.
 
 javac.source=1.6
-release.external/jna-5.9.0.jar=modules/ext/jna-5.9.0.jar
+release.external/jna-5.12.1.jar=modules/ext/jna-5.12.1.jar
 # Do not forget to rename native libs being extracted from the JAR when upgrading the JNA library, and patch org.netbeans.libs.jna.Installer as well.
-release.external/jna-5.9.0.jar!/com/sun/jna/darwin-x86-64/libjnidispatch.jnilib=modules/lib/x86_64/libjnidispatch-nb.jnilib
-release.external/jna-5.9.0.jar!/com/sun/jna/darwin-aarch64/libjnidispatch.jnilib=modules/lib/aarch64/libjnidispatch-nb.jnilib
-release.external/jna-5.9.0.jar!/com/sun/jna/linux-x86-64/libjnidispatch.so=modules/lib/amd64/linux/libjnidispatch-nb.so
-release.external/jna-5.9.0.jar!/com/sun/jna/linux-x86/libjnidispatch.so=modules/lib/i386/linux/libjnidispatch-nb.so
-release.external/jna-5.9.0.jar!/com/sun/jna/linux-aarch64/libjnidispatch.so=modules/lib/aarch64/linux/libjnidispatch-nb.so
-release.external/jna-5.9.0.jar!/com/sun/jna/win32-x86-64/jnidispatch.dll=modules/lib/amd64/jnidispatch-nb.dll
-release.external/jna-5.9.0.jar!/com/sun/jna/win32-x86/jnidispatch.dll=modules/lib/x86/jnidispatch-nb.dll
-release.external/jna-5.9.0.jar!/com/sun/jna/win32-aarch64/jnidispatch.dll=modules/lib/aarch64/jnidispatch-nb.dll
+release.external/jna-5.12.1.jar!/com/sun/jna/darwin-x86-64/libjnidispatch.jnilib=modules/lib/x86_64/libjnidispatch-nb.jnilib
+release.external/jna-5.12.1.jar!/com/sun/jna/darwin-aarch64/libjnidispatch.jnilib=modules/lib/aarch64/libjnidispatch-nb.jnilib
+release.external/jna-5.12.1.jar!/com/sun/jna/linux-x86-64/libjnidispatch.so=modules/lib/amd64/linux/libjnidispatch-nb.so
+release.external/jna-5.12.1.jar!/com/sun/jna/linux-x86/libjnidispatch.so=modules/lib/i386/linux/libjnidispatch-nb.so
+release.external/jna-5.12.1.jar!/com/sun/jna/linux-aarch64/libjnidispatch.so=modules/lib/aarch64/linux/libjnidispatch-nb.so
+release.external/jna-5.12.1.jar!/com/sun/jna/linux-riscv64/libjnidispatch.so=modules/lib/riscv64/linux/libjnidispatch-nb.so
+release.external/jna-5.12.1.jar!/com/sun/jna/win32-x86-64/jnidispatch.dll=modules/lib/amd64/jnidispatch-nb.dll
+release.external/jna-5.12.1.jar!/com/sun/jna/win32-x86/jnidispatch.dll=modules/lib/x86/jnidispatch-nb.dll
+release.external/jna-5.12.1.jar!/com/sun/jna/win32-aarch64/jnidispatch.dll=modules/lib/aarch64/jnidispatch-nb.dll
 jnlp.verify.excludes=\
     modules/lib/amd64/jnidispatch-nb.dll,\
     modules/lib/x86/jnidispatch-nb.dll,\
     modules/lib/aarch64/jnidispatch-nb.dll,\
     modules/lib/amd64/linux/libjnidispatch-nb.so,\
     modules/lib/i386/linux/libjnidispatch-nb.so,\
+    modules/lib/riscv64/linux/libjnidispatch-nb.so,\
     modules/lib/aarch64/linux/libjnidispatch-nb.so,\
     modules/lib/x86_64/libjnidispatch-nb.jnilib,\
     modules/lib/aarch64/libjnidispatch-nb.jnilib
diff --git a/platform/libs.jna/nbproject/project.xml b/platform/libs.jna/nbproject/project.xml
index b72dff6..8de9c2a 100644
--- a/platform/libs.jna/nbproject/project.xml
+++ b/platform/libs.jna/nbproject/project.xml
@@ -48,8 +48,8 @@
                 <package>com.sun.jna.win32</package>
             </public-packages>
             <class-path-extension>
-                <runtime-relative-path>ext/jna-5.9.0.jar</runtime-relative-path>
-                <binary-origin>external/jna-5.9.0.jar</binary-origin>
+                <runtime-relative-path>ext/jna-5.12.1.jar</runtime-relative-path>
+                <binary-origin>external/jna-5.12.1.jar</binary-origin>
             </class-path-extension>
         </data>
     </configuration>