Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 17 java.rmi.jmod - RMI Module
JDK 17 java.rmi.jmod is the JMOD file for JDK 17 RMI (Remote Method Invocation) module.
JDK 17 RMI module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\java.rmi.jmod.
JDK 17 RMI module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 RMI module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\java.rmi.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/rmi/transport/DGCAckHandler.java
/* * Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package sun.rmi.transport; import java.rmi.server.UID; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import sun.rmi.runtime.RuntimeUtil; /** * Holds strong references to a set of remote objects, or live remote * references to remote objects, after they have been marshalled (as * remote references) as parts of the arguments or the result of a * remote invocation. The purpose is to prevent remote objects or * live remote references that might otherwise be determined to be * unreachable in this VM from being locally garbage collected before * the receiver has had an opportunity to register the unmarshalled * remote references for DGC. * * The references are held strongly until an acknowledgment has been * received that the receiver has had an opportunity to process the * remote references or until a timeout has expired. For remote * references sent as parts of the arguments of a remote invocation, * the acknowledgment is the beginning of the response indicating * completion of the remote invocation. For remote references sent as * parts of the result of a remote invocation, a UID is included as * part of the result, and the acknowledgment is a transport-level * "DGCAck" message containing that UID. * * @author Ann Wollrath * @author Peter Jones **/ public class DGCAckHandler { /** timeout for holding references without receiving an acknowledgment */ @SuppressWarnings("removal") private static final long dgcAckTimeout = // default 5 minutes AccessController.doPrivileged((PrivilegedAction<Long>) () -> Long.getLong("sun.rmi.dgc.ackTimeout", 300000)); /** thread pool for scheduling delayed tasks */ @SuppressWarnings("removal") private static final ScheduledExecutorService scheduler = AccessController.doPrivileged( new RuntimeUtil.GetInstanceAction()).getScheduler(); /** table mapping ack ID to handler */ private static final Map<UID,DGCAckHandler> idTable = Collections.synchronizedMap(new HashMap<UID,DGCAckHandler>()); private final UID id; private List<Object> objList = new ArrayList<>(); // null if released private Future<?> task = null; /** * Creates a new DGCAckHandler, associated with the specified UID * if the argument is not null. * * References added to this DGCAckHandler will be held strongly * until its "release" method is invoked or (after the * "startTimer" method has been invoked) the timeout has expired. * If the argument is not null, then invoking the static * "received" method with the specified UID is equivalent to * invoking this instance's "release" method. **/ DGCAckHandler(UID id) { this.id = id; if (id != null) { assert !idTable.containsKey(id); idTable.put(id, this); } } /** * Adds the specified reference to this DGCAckHandler. **/ synchronized void add(Object obj) { if (objList != null) { objList.add(obj); } } /** * Starts the timer for this DGCAckHandler. After the timeout has * expired, the references are released even if the acknowledgment * has not been received. **/ synchronized void startTimer() { if (objList != null && task == null) { task = scheduler.schedule(new Runnable() { public void run() { if (id != null) { idTable.remove(id); } release(); } }, dgcAckTimeout, TimeUnit.MILLISECONDS); } } /** * Releases the references held by this DGCAckHandler. **/ synchronized void release() { if (task != null) { task.cancel(false); task = null; } objList = null; } /** * Causes the DGCAckHandler associated with the specified UID to * release its references. **/ public static void received(UID id) { DGCAckHandler h = idTable.remove(id); if (h != null) { h.release(); } } }
⏎ sun/rmi/transport/DGCAckHandler.java
Or download all of them as a single archive file:
File name: java.rmi-17.0.5-src.zip File size: 220001 bytes Release date: 2022-09-13 Download
⇒ JDK 17 java.scripting.jmod - Scripting Module
2023-11-06, 9976👍, 0💬
Popular Posts:
iText is an ideal library for developers looking to enhance web- and other applications with dynamic...
commons-io-2.6-sources.j aris the source JAR file for Apache Commons IO 2.6, which is a library of u...
The JMX technology provides the tools for building distributed, Web-based, modular and dynamic solut...
What Is mail.jar of JavaMail 1.4.2? I got the JAR file from javamail-1.4.2.zip. mail.jar in javamail...
JDK 1.1 source code directory contains Java source code for JDK 1.1 core classes: "C:\fyicenter\jdk-...