You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by sk...@apache.org on 2022/05/25 13:45:59 UTC
[netbeans] branch delivery updated: Avoid dependency on ReferenceQueue internals
This is an automated email from the ASF dual-hosted git repository.
skygo pushed a commit to branch delivery
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/delivery by this push:
new eeaa76483c Avoid dependency on ReferenceQueue internals
new f44633889a Merge pull request #4130 from anthonyvdotbe/fix-activequeue
eeaa76483c is described below
commit eeaa76483c7900a921239e52e3574d925936e8b8
Author: Anthony Vanelverdinghe <de...@anthonyv.be>
AuthorDate: Sat May 21 13:30:59 2022 +0200
Avoid dependency on ReferenceQueue internals
Signed-off-by: Anthony Vanelverdinghe <de...@anthonyv.be>
---
.../openide/util/lookup/implspi/ActiveQueue.java | 29 +++++++++++++---------
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/platform/openide.util.lookup/src/org/openide/util/lookup/implspi/ActiveQueue.java b/platform/openide.util.lookup/src/org/openide/util/lookup/implspi/ActiveQueue.java
index dd57b504c8..abf380a998 100644
--- a/platform/openide.util.lookup/src/org/openide/util/lookup/implspi/ActiveQueue.java
+++ b/platform/openide.util.lookup/src/org/openide/util/lookup/implspi/ActiveQueue.java
@@ -57,17 +57,23 @@ public final class ActiveQueue {
}
@Override
- public Reference<Object> remove(long timeout) throws IllegalArgumentException, InterruptedException {
- throw new InterruptedException();
+ public Reference<? extends Object> remove(long timeout) throws IllegalArgumentException, InterruptedException {
+ if (timeout < 0) {
+ throw new IllegalArgumentException("Negative timeout value");
+ } else if (Thread.currentThread() != Daemon.running) {
+ throw new InterruptedException();
+ }
+
+ return super.remove(timeout);
}
@Override
- public Reference<Object> remove() throws InterruptedException {
- throw new InterruptedException();
- }
-
- final Reference<? extends Object> removeSuper() throws InterruptedException {
- return super.remove(0);
+ public Reference<? extends Object> remove() throws InterruptedException {
+ if (Thread.currentThread() != Daemon.running) {
+ throw new InterruptedException();
+ }
+
+ return super.remove();
}
}
@@ -112,7 +118,7 @@ public final class ActiveQueue {
if (impl == null) {
return;
}
- Reference<?> ref = impl.removeSuper();
+ Reference<?> ref = impl.remove();
LOGGER.log(Level.FINE, "Got dequeued reference {0}", new Object[] { ref });
if (!(ref instanceof Runnable)) {
LOGGER.log(Level.WARNING, "A reference not implementing runnable has been added to the Utilities.activeReferenceQueue(): {0}", ref.getClass());
@@ -131,9 +137,8 @@ public final class ActiveQueue {
// to allow GC
ref = null;
}
- } catch (InterruptedException ex) {
- // Can happen during VM shutdown, it seems. Ignore.
- continue;
+ } catch (InterruptedException ignored) {
+ // Can happen during VM shutdown, it seems.
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists