6731937: javax/print/CheckDupFlavor.java fails
Reviewed-by: campbell, tdv
This commit is contained in:
parent
0c7e3a5aaf
commit
3630a38b8f
@ -57,6 +57,7 @@ import java.io.InputStreamReader;
|
||||
import java.nio.charset.Charset;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.HashSet;
|
||||
|
||||
|
||||
public class IPPPrintService implements PrintService, SunPrinterJobService {
|
||||
@ -822,7 +823,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
|
||||
boolean psSupported = false;
|
||||
String[] docFlavors = attribClass.getArrayOfStringValues();
|
||||
DocFlavor[] flavors;
|
||||
ArrayList docList = new ArrayList();
|
||||
HashSet docList = new HashSet();
|
||||
int j;
|
||||
String hostEnc = DocFlavor.hostEncoding.
|
||||
toLowerCase(Locale.ENGLISH);
|
||||
@ -839,18 +840,6 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
|
||||
|
||||
docList.addAll(Arrays.asList(flavors));
|
||||
|
||||
if (isCupsPrinter) {
|
||||
/*
|
||||
Always add Pageable and Printable for CUPS
|
||||
since it uses Filters to convert from Postscript
|
||||
to device printer language.
|
||||
*/
|
||||
docList.add(
|
||||
DocFlavor.SERVICE_FORMATTED.PAGEABLE);
|
||||
docList.add(
|
||||
DocFlavor.SERVICE_FORMATTED.PRINTABLE);
|
||||
}
|
||||
|
||||
if (mimeType.equals("text/plain") &&
|
||||
addHostEncoding) {
|
||||
docList.add(Arrays.asList(textPlainHost));
|
||||
@ -880,16 +869,19 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
|
||||
}
|
||||
|
||||
// check if we need to add image DocFlavors
|
||||
// and Pageable/Printable flavors
|
||||
if (psSupported || isCupsPrinter) {
|
||||
if (!jpgImagesAdded) {
|
||||
docList.addAll(Arrays.asList(imageJPG));
|
||||
}
|
||||
if (!pngImagesAdded) {
|
||||
docList.addAll(Arrays.asList(imagePNG));
|
||||
}
|
||||
if (!gifImagesAdded) {
|
||||
docList.addAll(Arrays.asList(imageGIF));
|
||||
}
|
||||
/*
|
||||
Always add Pageable and Printable for CUPS
|
||||
since it uses Filters to convert from Postscript
|
||||
to device printer language.
|
||||
*/
|
||||
docList.add(DocFlavor.SERVICE_FORMATTED.PAGEABLE);
|
||||
docList.add(DocFlavor.SERVICE_FORMATTED.PRINTABLE);
|
||||
|
||||
docList.addAll(Arrays.asList(imageJPG));
|
||||
docList.addAll(Arrays.asList(imagePNG));
|
||||
docList.addAll(Arrays.asList(imageGIF));
|
||||
}
|
||||
supportedDocFlavors = new DocFlavor[docList.size()];
|
||||
docList.toArray(supportedDocFlavors);
|
||||
|
67
jdk/test/javax/print/CheckDupFlavor.java
Normal file
67
jdk/test/javax/print/CheckDupFlavor.java
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright 2004-2008 Sun Microsystems, Inc. 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.
|
||||
*
|
||||
* 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
||||
* CA 95054 USA or visit www.sun.com if you need additional information or
|
||||
* have any questions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4996318 6731937
|
||||
* @summary There should be no duplicates returned by getSupportedDocFlavors.
|
||||
* @run main CheckDupFlavor
|
||||
*/
|
||||
import javax.print.*;
|
||||
import javax.print.attribute.*;
|
||||
import javax.print.attribute.standard.*;
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
public class CheckDupFlavor {
|
||||
public static void main(String[] args){
|
||||
PrintService pservice =
|
||||
PrintServiceLookup.lookupDefaultPrintService();
|
||||
|
||||
if (pservice == null) {
|
||||
System.out.println("No default PrintService found. Test ABORTED.");
|
||||
return;
|
||||
}
|
||||
|
||||
System.out.println("Default service = "+pservice);
|
||||
|
||||
DocFlavor[] flavors = pservice.getSupportedDocFlavors();
|
||||
if (flavors==null) {
|
||||
System.out.println("No flavors supported. Test PASSED.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ArrayList flavorList = new ArrayList();
|
||||
for (int i=0; i<flavors.length; i++) {
|
||||
if (flavors[i] == null) {
|
||||
throw new RuntimeException("Null flavor. Test FAILED.");
|
||||
} else if (flavorList.contains(flavors[i])) {
|
||||
throw new RuntimeException("\n\tDuplicate flavor found : "+flavors[i]+" : Test FAILED.");
|
||||
} else {
|
||||
flavorList.add(flavors[i]);
|
||||
}
|
||||
}
|
||||
System.out.println("No duplicate found. Test PASSED.");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user