File tree Expand file tree Collapse file tree 4 files changed +356
-5
lines changed
src/org/openqa/selenium/grid
test/org/openqa/selenium/grid/distributor/local Expand file tree Collapse file tree 4 files changed +356
-5
lines changed Original file line number Diff line number Diff line change @@ -539,7 +539,7 @@ public void run() {
539539 // up starving a session request.
540540 Map <Capabilities , Long > stereotypes =
541541 getAvailableNodes ().stream ()
542- .filter (node -> node . hasCapacity () )
542+ .filter (NodeStatus :: hasCapacity )
543543 .flatMap (node -> node .getSlots ().stream ().map (Slot ::getStereotype ))
544544 .collect (
545545 Collectors .groupingBy (ImmutableCapabilities ::copyOf , Collectors .counting ()));
Original file line number Diff line number Diff line change @@ -361,9 +361,8 @@ public Set<NodeStatus> getAvailableNodes() {
361361 readLock .lock ();
362362 try {
363363 return model .getSnapshot ().stream ()
364- .filter (
365- node ->
366- !DOWN .equals (node .getAvailability ()) && !DRAINING .equals (node .getAvailability ()))
364+ // Filter nodes are UP and have capacity (available slots)
365+ .filter (node -> UP .equals (node .getAvailability ()) && node .hasCapacity ())
367366 .collect (ImmutableSet .toImmutableSet ());
368367 } finally {
369368 readLock .unlock ();
Original file line number Diff line number Diff line change 5555import org .openqa .selenium .grid .data .TraceSessionRequest ;
5656import org .openqa .selenium .grid .distributor .config .DistributorOptions ;
5757import org .openqa .selenium .grid .jmx .JMXHelper ;
58+ import org .openqa .selenium .grid .jmx .MBean ;
5859import org .openqa .selenium .grid .jmx .ManagedAttribute ;
5960import org .openqa .selenium .grid .jmx .ManagedService ;
6061import org .openqa .selenium .grid .log .LoggingOptions ;
@@ -110,6 +111,7 @@ public class LocalNewSessionQueue extends NewSessionQueue implements Closeable {
110111 thread .setName (NAME );
111112 return thread ;
112113 });
114+ private final MBean jmxBean ;
113115
114116 public LocalNewSessionQueue (
115117 Tracer tracer ,
@@ -139,7 +141,8 @@ public LocalNewSessionQueue(
139141 requestTimeoutCheck .toMillis (),
140142 MILLISECONDS );
141143
142- new JMXHelper ().register (this );
144+ // Manage JMX and unregister on close()
145+ this .jmxBean = new JMXHelper ().register (this );
143146 }
144147
145148 public static NewSessionQueue create (Config config ) {
@@ -502,6 +505,10 @@ public boolean isReady() {
502505 @ Override
503506 public void close () {
504507 shutdownGracefully (NAME , service );
508+
509+ if (jmxBean != null ) {
510+ new JMXHelper ().unregister (jmxBean .getObjectName ());
511+ }
505512 }
506513
507514 private void failDueToTimeout (RequestId reqId ) {
You can’t perform that action at this time.
0 commit comments