Hello,
Please review the following fix for a bug.
Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007642
Webrev: http://cr.openjdk.java.net/~alitvinov/8007642/webrev.00
The bug consists in the fact that Java cross-platform Page Setup and
Print dialogs do not always list all media sizes supported by a printer.
The fix is based on addition of dynamic creation of new media names of
the type "sun.print.Win32MediaSize" based on paper names received from
Windows API function with corresponding media sizes of the type
"javax.print.attribute.standard.MediaSize" for the case, when the
printer's media size name, which is being analyzed in
"sun.print.Win32PrintService.initMedia" method, is not added to the
final list of media sizes supported by the printer because of an already
existing duplicate in that list. In such a case the printer's paper size
matches with one of the media sizes registered in JDK, while the paper
size ID does not match with any ID known to JDK.
Also the code in "Win32PrintService.findWin32Media" method was altered
to allow three cases from "switch" block to work as expected, because
currently they never match with "dmIndex" value, since it is always less
then "dmPaperToPrintService.length" under "if" statement.
Thank you,
Anton