diff -r ee8a922f4268 -r d382dacfd73f rt/emul/compact/src/main/java/java/util/Stack.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rt/emul/compact/src/main/java/java/util/Stack.java Tue Feb 26 16:54:16 2013 +0100
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.util;
+
+/**
+ * The Stack
class represents a last-in-first-out
+ * (LIFO) stack of objects. It extends class Vector with five
+ * operations that allow a vector to be treated as a stack. The usual
+ * push and pop operations are provided, as well as a
+ * method to peek at the top item on the stack, a method to test
+ * for whether the stack is empty, and a method to search
+ * the stack for an item and discover how far it is from the top.
+ *
+ * When a stack is first created, it contains no items. + * + *
A more complete and consistent set of LIFO stack operations is + * provided by the {@link Deque} interface and its implementations, which + * should be used in preference to this class. For example: + *
{@code + * Deque+ * + * @author Jonathan Payne + * @since JDK1.0 + */ +public +class Stackstack = new ArrayDeque ();}
+ * + * @param item the item to be pushed onto this stack. + * @return the+ * addElement(item)
item
argument.
+ * @see java.util.Vector#addElement
+ */
+ public E push(E item) {
+ addElement(item);
+
+ return item;
+ }
+
+ /**
+ * Removes the object at the top of this stack and returns that
+ * object as the value of this function.
+ *
+ * @return The object at the top of this stack (the last item
+ * of the Vector object).
+ * @throws EmptyStackException if this stack is empty.
+ */
+ public synchronized E pop() {
+ E obj;
+ int len = size();
+
+ obj = peek();
+ removeElementAt(len - 1);
+
+ return obj;
+ }
+
+ /**
+ * Looks at the object at the top of this stack without removing it
+ * from the stack.
+ *
+ * @return the object at the top of this stack (the last item
+ * of the Vector object).
+ * @throws EmptyStackException if this stack is empty.
+ */
+ public synchronized E peek() {
+ int len = size();
+
+ if (len == 0)
+ throw new EmptyStackException();
+ return elementAt(len - 1);
+ }
+
+ /**
+ * Tests if this stack is empty.
+ *
+ * @return true
if and only if this stack contains
+ * no items; false
otherwise.
+ */
+ public boolean empty() {
+ return size() == 0;
+ }
+
+ /**
+ * Returns the 1-based position where an object is on this stack.
+ * If the object o occurs as an item in this stack, this
+ * method returns the distance from the top of the stack of the
+ * occurrence nearest the top of the stack; the topmost item on the
+ * stack is considered to be at distance 1. The equals
+ * method is used to compare o to the
+ * items in this stack.
+ *
+ * @param o the desired object.
+ * @return the 1-based position from the top of the stack where
+ * the object is located; the return value -1
+ * indicates that the object is not on the stack.
+ */
+ public synchronized int search(Object o) {
+ int i = lastIndexOf(o);
+
+ if (i >= 0) {
+ return size() - i;
+ }
+ return -1;
+ }
+
+ /** use serialVersionUID from JDK 1.0.2 for interoperability */
+ private static final long serialVersionUID = 1224463164541339165L;
+}