--- a/jdk/src/java.desktop/unix/classes/sun/print/IPPPrintService.java Tue Jan 31 19:22:35 2017 +0300
+++ b/jdk/src/java.desktop/unix/classes/sun/print/IPPPrintService.java Thu Feb 02 11:05:06 2017 +0530
@@ -59,6 +59,7 @@
import java.util.Iterator;
import java.util.HashSet;
+import java.util.Map;
public class IPPPrintService implements PrintService, SunPrinterJobService {
@@ -1758,6 +1759,19 @@
if (responseMap != null && responseMap.length > 0) {
getAttMap = responseMap[0];
+ // If there is extra hashmap created due to duplicate
+ // key/attribute present in IPPresponse, then use that
+ // map too by appending to getAttMap after removing the
+ // duplicate key/value
+ if (responseMap.length > 1) {
+ for (int i = 1; i < responseMap.length; i++) {
+ for (Map.Entry<String, AttributeClass> entry : responseMap[i].entrySet()) {
+ if (!getAttMap.containsKey(entry.getValue())) {
+ getAttMap.put(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+ }
}
} else {
debug_println(debugPrefix+"opGetAttributes - null input stream");
--- a/jdk/test/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java Tue Jan 31 19:22:35 2017 +0300
+++ b/jdk/test/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java Thu Feb 02 11:05:06 2017 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2017, 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
@@ -23,7 +23,7 @@
/*
@test
- @bug 8042713
+ @bug 8042713 8170578
@summary Print Dialog does not update attribute set with page range
@run main/manual PrintAttributeUpdateTest
*/