RFR: 8311033: [macos] PrinterJob does not take into account Sides attribute [v3]

Sergey Bylokhov serb at openjdk.org
Thu Jul 20 01:32:52 UTC 2023


On Fri, 14 Jul 2023 14:44:57 GMT, Alexander Scherbatiy <alexsch at openjdk.org> wrote:

>> To reproduce the issue run the [JavaSidesAttributePrinting](https://bugs.openjdk.org/secure/attachment/104448/JavaSidesAttributePrinting.java) java sample with ONE_SIDED and DUPLEX arguments on macOS:
>> 
>> java JavaSidesAttributePrinting ONE_SIDED
>> java JavaSidesAttributePrinting DUPLEX
>> 
>> 
>> The sample calls PrinterJob print method with the given sides attribute.
>> The pages are printed according to the printer default settings not according to the provided Sides attributes.
>> 
>> The fix propagates Sides attribute
>> - from `PrinterJob` to `NSPrintInfo` in `CPrinterJob.javaPrinterJobToNSPrintInfo` method
>> - from `NSPrintInfo` to `PrinterJob` in `CPrinterJob.nsPrintInfoToJavaPrinterJob` method
>
> Alexander Scherbatiy has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Local supportedSides variable is used insted of supportedSides field

src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m line 531:

> 529:     }
> 530: 
> 531:     int sides = (*env)->CallIntMethod(env, srcPrinterJob, jm_getSides);

it seems the code around uses the "java" types like jint.
>jint copies = (*env)->CallIntMethod(env, srcPrinterJob, jm_getCopies);

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14727#discussion_r1268835976



More information about the client-libs-dev mailing list