Index: src/test/java/org/apache/harmony/luni/tests/java/lang/ProcessBuilderTest.java =================================================================== --- src/test/java/org/apache/harmony/luni/tests/java/lang/ProcessBuilderTest.java (revision 478521) +++ src/test/java/org/apache/harmony/luni/tests/java/lang/ProcessBuilderTest.java (working copy) @@ -108,6 +108,12 @@ } catch (NullPointerException e) { // expected; } + try { + env.get(new Object()); + fail("should throw ClassCastException."); + } catch (ClassCastException e) { + // expected; + } } public void testRedirectErrorStream() { Index: src/main/java/java/lang/ProcessBuilder.java =================================================================== --- src/main/java/java/lang/ProcessBuilder.java (revision 478521) +++ src/main/java/java/lang/ProcessBuilder.java (working copy) @@ -217,10 +217,8 @@ return process; } - private class ProcessHashMap extends HashMap { + private static class ProcessHashMap extends HashMap { - private static final long serialVersionUID = 1L; - public ProcessHashMap(Map env) { super(env); } @@ -236,6 +234,9 @@ if(key == null){ throw new NullPointerException(); } + if(!(key instanceof String)){ + throw new ClassCastException(key.getClass().getName()); + } return super.get(key); } }