]> WPIA git - gigi.git/blobdiff - lib/jetty/org/eclipse/jetty/util/ConcurrentArrayQueue.java
updating jetty to jetty-9.2.16.v2016040
[gigi.git] / lib / jetty / org / eclipse / jetty / util / ConcurrentArrayQueue.java
index fc1326d63a64cb3b597753b99c79c0c7ec29d0b9..86a0b36459245fafcc8f7d37b4aab92ef8e3a7e2 100644 (file)
@@ -1,6 +1,6 @@
 //
 //  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+//  Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
 //  ------------------------------------------------------------------------
 //  All rights reserved. This program and the accompanying materials
 //  are made available under the terms of the Eclipse Public License v1.0
@@ -25,8 +25,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Objects;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.atomic.AtomicIntegerArray;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.atomic.AtomicReferenceArray;
@@ -168,6 +166,7 @@ public class ConcurrentArrayQueue<T> extends AbstractQueue<T>
         return _blocks.compareAndSet(TAIL_OFFSET,current,update);
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public T poll()
     {
@@ -276,7 +275,7 @@ public class ConcurrentArrayQueue<T> extends AbstractQueue<T>
             }
             else
             {
-                Object element = currentHeadBlock.peek(head);
+                T element = currentHeadBlock.peek(head);
                 if (element == REMOVED_ELEMENT)
                 {
                     // Already removed, try next index
@@ -284,7 +283,7 @@ public class ConcurrentArrayQueue<T> extends AbstractQueue<T>
                 }
                 else
                 {
-                    return (T)element;
+                    return element;
                 }
             }
         }
@@ -421,8 +420,11 @@ public class ConcurrentArrayQueue<T> extends AbstractQueue<T>
 
                     advance();
 
-                    if (element != REMOVED_ELEMENT)
-                        return (T)element;
+                    if (element != REMOVED_ELEMENT) {
+                        @SuppressWarnings("unchecked")
+                        T e = (T)element;
+                        return e;
+                    }
                 }
             }
 
@@ -518,9 +520,10 @@ public class ConcurrentArrayQueue<T> extends AbstractQueue<T>
             elements = new AtomicReferenceArray<>(blockSize);
         }
 
-        public Object peek(int index)
+        @SuppressWarnings("unchecked")
+        public E peek(int index)
         {
-            return elements.get(index);
+            return (E)elements.get(index);
         }
 
         public boolean store(int index, E item)