On Tue, 24 Aug 2021 15:49:00 GMT, Alexander Scherbatiy <alex...@openjdk.org> 
wrote:

>> The issue is reproduced on macOS Big Sur 11.0.1 with jdk 16.0.1+9.
>> 
>> Create a native macOS app from the Hello.java file, sign and run it in 
>> sandbox:
>> 
>> import javax.print.*;
>> import javax.swing.*;
>> 
>> public class Hello {
>> 
>>     public static void main(String[] args) throws Exception {
>>         SwingUtilities.invokeAndWait(() -> {
>>             boolean isSandboxed = System.getenv("APP_SANDBOX_CONTAINER_ID") 
>> != null;
>>             PrintService defaultPrinter = 
>> PrintServiceLookup.lookupDefaultPrintService();
>>             PrintService[] services = 
>> PrintServiceLookup.lookupPrintServices(null, null);
>> 
>>             StringBuilder builder = new StringBuilder();
>>             builder.append("is sandboxed: 
>> ").append(isSandboxed).append("\n");
>>             builder.append("default printer: 
>> ").append(defaultPrinter).append("\n");
>>             int size = services.length;
>>             for (int i = 0; i < size; i++) {
>>                 
>> builder.append("printer[").append(i).append("]=").append(services[i]).append("\n");
>>             }
>>             JOptionPane.showMessageDialog(null, builder.toString());
>>         });
>>     }
>> }
>> 
>> The signed app in sandbox shows null default printer and 
>> PrintServiceLookup.lookupPrintServices(null, null) returns "Unix Printer: 
>> lp".
>> ![PrintSandboxedApp](https://bugs.openjdk.java.net/secure/attachment/95629/PrintSandboxedApp.png)
>> 
>> The problem has been discussed on  2d-dev mail list:
>>   https://mail.openjdk.java.net/pipermail/2d-dev/2017-June/008375.html
>>   https://mail.openjdk.java.net/pipermail/2d-dev/2017-July/008418.html
>> 
>> According to the discussion:
>> 
>>> I've submitted a DTS incident to Apple and a friend there has followed-up.
>>> Their unofficial position is that java should be connecting to the cups 
>>> interface returned
>>> by the cupsServer() function and not changing the interface string to 
>>> "localhost".
>>> Security changes in 10.12.4 reject the TCP connection which they say 
>>> confuses
>>> network-client access with print access.  They don't seem interested in 
>>> loosening that change.
>> 
>> 
>> The proposed solution is to use the domain socket pathname in 
>> httpConnect(...) cups function and cupsGetDests(...) to get list of printers 
>> from cups  when the app is signed and is run in sandbox on MacOs.
>
> Alexander Scherbatiy has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Return null if printers are not found in sandboxed app on MacOS

I see that the fix has been inactive for several months.
Is there something that I missed and should update from my side (add comments, 
answer on questions, update commits, or something else)?

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

PR: https://git.openjdk.java.net/jdk/pull/4861

Reply via email to