提交 1a5fb067 编写于 作者: A alitvinov

8181659: Create an alternative fix for JDK-8167102, whose fix was backed out

Reviewed-by: prr, serb
上级 7a6c2c76
......@@ -843,12 +843,45 @@ public abstract class RasterPrinterJob extends PrinterJob {
}
}
protected PageFormat getPageFormatFromAttributes() {
if (attributes == null || attributes.isEmpty()) {
protected PageFormat getPageFormatFromAttributes() {
if (attributes == null || attributes.isEmpty()) {
return null;
}
return attributeToPageFormat(getPrintService(), this.attributes);
}
PageFormat newPf = attributeToPageFormat(
getPrintService(), attributes);
PageFormat oldPf = null;
Pageable pageable = getPageable();
if ((pageable != null) &&
(pageable instanceof OpenBook) &&
((oldPf = pageable.getPageFormat(0)) != null)) {
// If orientation, media, imageable area attributes are not in
// "attributes" set, then use respective values of the existing
// page format "oldPf".
if (attributes.get(OrientationRequested.class) == null) {
newPf.setOrientation(oldPf.getOrientation());
}
Paper newPaper = newPf.getPaper();
Paper oldPaper = oldPf.getPaper();
boolean oldPaperValWasSet = false;
if (attributes.get(MediaSizeName.class) == null) {
newPaper.setSize(oldPaper.getWidth(), oldPaper.getHeight());
oldPaperValWasSet = true;
}
if (attributes.get(MediaPrintableArea.class) == null) {
newPaper.setImageableArea(
oldPaper.getImageableX(), oldPaper.getImageableY(),
oldPaper.getImageableWidth(),
oldPaper.getImageableHeight());
oldPaperValWasSet = true;
}
if (oldPaperValWasSet) {
newPf.setPaper(newPaper);
}
}
return newPf;
}
/**
......
......@@ -22,9 +22,8 @@
*/
/* @test
@bug 8167102
@bug 8167102 8181659
@summary PrintRequestAttributeSet breaks page size set using PageFormat
@ignore Exclude the test until 8167102 is resolved by a new reassessed fix
@run main/manual WrongPaperPrintingTest
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册