changeset 16683:bdb8499fdb64

8170578: CUPS Printing is broken with Ubuntu 16.10 (CUPS 2.2) Reviewed-by: prr
author psadhukhan
date Thu, 02 Feb 2017 11:05:06 +0530
parents 27716a9b2378
children 6dbd2f0fbd71
files src/java.desktop/unix/classes/sun/print/IPPPrintService.java test/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java
diffstat 2 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/java.desktop/unix/classes/sun/print/IPPPrintService.java	Tue Jan 31 19:22:35 2017 +0300
+++ b/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/test/java/awt/print/PrinterJob/PrintAttributeUpdateTest.java	Tue Jan 31 19:22:35 2017 +0300
+++ b/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
  */