8006557: JDK8/Lambda build clashes on Map.replace()

Sat, 19 Jan 2013 22:35:43 +0530

author
sundar
date
Sat, 19 Jan 2013 22:35:43 +0530
changeset 39
a8966074d4e9
parent 38
c887baec012a
child 40
0cee498b330d

8006557: JDK8/Lambda build clashes on Map.replace()
Reviewed-by: jlaskey

src/jdk/nashorn/internal/runtime/ScriptObject.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/internal/runtime/ContextTest.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/jdk/nashorn/internal/runtime/ScriptObject.java	Sat Jan 19 09:14:43 2013 +0530
     1.2 +++ b/src/jdk/nashorn/internal/runtime/ScriptObject.java	Sat Jan 19 22:35:43 2013 +0530
     1.3 @@ -87,7 +87,7 @@
     1.4   */
     1.5  
     1.6  
     1.7 -public abstract class ScriptObject extends PropertyListenerManager implements PropertyAccess, Map<Object, Object> {
     1.8 +public abstract class ScriptObject extends PropertyListenerManager implements PropertyAccess {
     1.9  
    1.10      /** Search fall back routine name for "no such method" */
    1.11      static final String NO_SUCH_METHOD_NAME   = "__noSuchMethod__";
    1.12 @@ -1414,7 +1414,7 @@
    1.13          return (flags & IS_SCOPE) != 0;
    1.14      }
    1.15  
    1.16 -    @Override
    1.17 +    // java.util.Map-like methods to help ScriptObjectMirror implementation
    1.18      public void clear() {
    1.19          final boolean strict = getContext()._strict;
    1.20          final Iterator<String> iter = propertyIterator();
    1.21 @@ -1423,12 +1423,10 @@
    1.22          }
    1.23      }
    1.24  
    1.25 -    @Override
    1.26      public boolean containsKey(final Object key) {
    1.27          return has(key);
    1.28      }
    1.29  
    1.30 -    @Override
    1.31      public boolean containsValue(final Object value) {
    1.32          final Iterator<Object> iter = valueIterator();
    1.33          while (iter.hasNext()) {
    1.34 @@ -1439,7 +1437,6 @@
    1.35          return false;
    1.36      }
    1.37  
    1.38 -    @Override
    1.39      public Set<Map.Entry<Object, Object>> entrySet() {
    1.40          final Iterator<String> iter = propertyIterator();
    1.41          final Set<Map.Entry<Object, Object>> entries = new HashSet<>();
    1.42 @@ -1450,12 +1447,10 @@
    1.43          return Collections.unmodifiableSet(entries);
    1.44      }
    1.45  
    1.46 -    @Override
    1.47      public boolean isEmpty() {
    1.48          return !propertyIterator().hasNext();
    1.49      }
    1.50  
    1.51 -    @Override
    1.52      public Set<Object> keySet() {
    1.53          final Iterator<String> iter = propertyIterator();
    1.54          final Set<Object> keySet = new HashSet<>();
    1.55 @@ -1465,14 +1460,12 @@
    1.56          return Collections.unmodifiableSet(keySet);
    1.57      }
    1.58  
    1.59 -    @Override
    1.60      public Object put(final Object key, final Object value) {
    1.61          final Object oldValue = get(key);
    1.62          set(key, value, getContext()._strict);
    1.63          return oldValue;
    1.64      }
    1.65  
    1.66 -    @Override
    1.67      public void putAll(final Map<?, ?> otherMap) {
    1.68          final boolean strict = getContext()._strict;
    1.69          for (final Map.Entry<?, ?> entry : otherMap.entrySet()) {
    1.70 @@ -1480,14 +1473,12 @@
    1.71          }
    1.72      }
    1.73  
    1.74 -    @Override
    1.75      public Object remove(final Object key) {
    1.76          final Object oldValue = get(key);
    1.77          delete(key, getContext()._strict);
    1.78          return oldValue;
    1.79      }
    1.80  
    1.81 -    @Override
    1.82      public int size() {
    1.83          int n = 0;
    1.84          for (final Iterator<String> iter = propertyIterator(); iter.hasNext(); iter.next()) {
    1.85 @@ -1496,7 +1487,6 @@
    1.86          return n;
    1.87      }
    1.88  
    1.89 -    @Override
    1.90      public Collection<Object> values() {
    1.91          final List<Object>     values = new ArrayList<>(size());
    1.92          final Iterator<Object> iter   = valueIterator();
     2.1 --- a/test/src/jdk/nashorn/internal/runtime/ContextTest.java	Sat Jan 19 09:14:43 2013 +0530
     2.2 +++ b/test/src/jdk/nashorn/internal/runtime/ContextTest.java	Sat Jan 19 22:35:43 2013 +0530
     2.3 @@ -49,13 +49,13 @@
     2.4              assertTrue(32.0 == ((Number)(eval(cx, "<evalTest>", code))).doubleValue());
     2.5  
     2.6              code = "obj = { js: 'nashorn' }; obj.js";
     2.7 -            assertEquals("nashorn", eval(cx, "<evalTest2>", code));
     2.8 +            assertEquals(eval(cx, "<evalTest2>", code), "nashorn");
     2.9          } finally {
    2.10              Context.setGlobal(oldGlobal);
    2.11          }
    2.12      }
    2.13  
    2.14 -    // basic check for JS reflection access
    2.15 +    // basic check for JS reflection access - java.util.Map-like access on ScriptObject
    2.16      @Test
    2.17      public void reflectionTest() {
    2.18          final Options options = new Options("");
    2.19 @@ -70,12 +70,11 @@
    2.20  
    2.21              final Object obj = cx.getGlobal().get("obj");
    2.22  
    2.23 -            assertTrue(obj instanceof Map);
    2.24 +            assertTrue(obj instanceof ScriptObject);
    2.25  
    2.26 -            @SuppressWarnings("unchecked")
    2.27 -            final Map<Object, Object> map = (Map<Object, Object>)obj;
    2.28 +            final ScriptObject sobj = (ScriptObject)obj;
    2.29              int count = 0;
    2.30 -            for (final Map.Entry<?, ?> ex : map.entrySet()) {
    2.31 +            for (final Map.Entry<?, ?> ex : sobj.entrySet()) {
    2.32                  final Object key = ex.getKey();
    2.33                  if (key.equals("x")) {
    2.34                      assertTrue(ex.getValue() instanceof Number);
    2.35 @@ -89,13 +88,13 @@
    2.36                      count++;
    2.37                  }
    2.38              }
    2.39 -            assertEquals(2, count);
    2.40 -            assertEquals(2, map.size());
    2.41 +            assertEquals(count, 2);
    2.42 +            assertEquals(sobj.size(), 2);
    2.43  
    2.44              // add property
    2.45 -            map.put("zee", "hello");
    2.46 -            assertEquals("hello", map.get("zee"));
    2.47 -            assertEquals(3, map.size());
    2.48 +            sobj.put("zee", "hello");
    2.49 +            assertEquals(sobj.get("zee"), "hello");
    2.50 +            assertEquals(sobj.size(), 3);
    2.51  
    2.52          } finally {
    2.53              Context.setGlobal(oldGlobal);

mercurial