RFR: 8343398: Add reducedData preference [v6]

Kevin Rushforth kcr at openjdk.org
Wed Dec 18 19:28:41 UTC 2024


On Thu, 12 Dec 2024 01:03:26 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> The `reducedData` preference instructs applications to minimize internet traffic, as users might be on a metered network or a limited data plan.
>> 
>> This corresponds to the following OS settings:
>> 
>> Windows: Settings -> Network and Internet -> Ethernet/WiFi -> Metered connection
>> macOS: Settings -> Network -> Ethernet/WiFi -> Network Settings -> Low data mode
>> Ubuntu: Settings -> Network -> Wired/WiFi -> Metered connection
>> 
>> Change notifications work consistently on Windows and macOS. On my Ubuntu 24 system, the GIO `network-changed` signal is not sent when I only toggle the "metered connection" flag in network settings (and there's no signal specifically for low-data mode). The new value is only picked up when the connection changes by coming offline or going online.
>
> Michael Strauß has updated the pull request incrementally with one additional commit since the last revision:
> 
>   formatting

I ran a CI build and noticed a crash in two test methods in one of our headful tests on macOS. Both of them use AWT as well as JavaFX, and given the error, I suspect that is relevant.


*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ApplicationDelegate getPlatformPreferences]: unrecognized selector sent to instance 0x6000030c0880'
*** First throw call stack:
(
	0   CoreFoundation                      0x0000000182730570 __exceptionPreprocess + 176
	1   libobjc.A.dylib                     0x0000000182221eb4 objc_exception_throw + 60
	2   CoreFoundation                      0x00000001827e212c -[NSObject(NSObject) __retain_OA] + 0
	3   CoreFoundation                      0x000000018269a7d4 ___forwarding___ + 1572
	4   CoreFoundation                      0x000000018269a0f0 _CF_forwarding_prep_0 + 96
	5   ???                                 0x00000001125fcfd4 0x0 + 4603236308
	6   ???                                 0x00000001125f8ea0 0x0 + 4603219616
	7   ???                                 0x00000001125f9110 0x0 + 4603220240
	8   ???                                 0x00000001125f9110 0x0 + 4603220240
	9   ???                                 0x00000001125f96b0 0x0 + 4603221680
	10  ???                                 0x00000001125f9110 0x0 + 4603220240
	11  ???                                 0x00000001125f96b0 0x0 + 4603221680
	12  ???                                 0x00000001125f9110 0x0 + 4603220240
	13  ???                                 0x00000001125f4114 0x0 + 4603199764
	14  libjvm.dylib                        0x0000000101e34e24 _ZN9JavaCalls11call_helperEP9JavaValueRK12methodHandleP17JavaCallArgumentsP10JavaThread + 984
	15  libjvm.dylib                        0x0000000101ea5e1c _ZL20jni_invoke_nonstaticP7JNIEnv_P9JavaValueP8_jobject11JNICallTypeP10_jmethodIDP18JNI_ArgumentPusherP10JavaThread + 992
	16  libjvm.dylib                        0x0000000101eaa844 jni_CallVoidMethod + 284
	17  libglass.dylib                      0x000000013570164c JNI_OnLoad + 1036
	18  libglass.dylib                      0x00000001357031ac JNI_OnLoad + 8044
	19  Foundation                          0x00000001837e1298 __NSThreadPerformPerform + 264
	20  CoreFoundation                      0x00000001826bba4c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
	21  CoreFoundation                      0x00000001826bb9e0 __CFRunLoopDoSource0 + 176
	22  CoreFoundation                      0x00000001826bb750 __CFRunLoopDoSources0 + 244
	23  CoreFoundation                      0x00000001826ba340 __CFRunLoopRun + 828
	24  CoreFoundation                      0x00000001826b99ac CFRunLoopRunSpecific + 608
	25  HIToolbox                           0x000000018cc68448 RunCurrentEventLoopInMode + 292
	26  HIToolbox                           0x000000018cc68284 ReceiveNextEventCommon + 648
	27  HIToolbox                           0x000000018cc67fdc _BlockUntilNextEventMatchingListInModeWithFilter + 76
	28  AppKit                              0x0000000185e968a4 _DPSNextEvent + 660
	29  AppKit                              0x0000000186670980 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 716
	30  libosxapp.dylib                     0x00000001007ab748 -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 136
	31  AppKit                              0x0000000185e89d50 -[NSApplication run] + 476
	32  libosxapp.dylib                     0x00000001007ab568 +[NSApplicationAWT runAWTLoopWithApp:] + 132
	33  libawt_lwawt.dylib                  0x0000000131062f5c +[AWTStarter starter:headless:] + 376
	34  libosxapp.dylib                     0x00000001007acd88 +[ThreadUtilities invokeBlockCopy:] + 28
	35  Foundation                          0x00000001837e1298 __NSThreadPerformPerform + 264
	36  CoreFoundation                      0x00000001826bba4c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
	37  CoreFoundation                      0x00000001826bb9e0 __CFRunLoopDoSource0 + 176
	38  CoreFoundation                      0x00000001826bb750 __CFRunLoopDoSources0 + 244
	39  CoreFoundation                      0x00000001826ba340 __CFRunLoopRun + 828
	40  CoreFoundation                      0x00000001826b99ac CFRunLoopRunSpecific + 608
	41  libjli.dylib                        0x00000001008a0e84 CreateExecutionEnvironment + 404
	42  libjli.dylib                        0x000000010089c984 JLI_Launch + 1152
	43  java                                0x000000010040fbb4 main + 404
	44  dyld                                0x000000018225d0e0 start + 2360
)
libc++abi: terminating due to uncaught exception of type NSException

> Task :systemTests:test

MainLauncherTest > testMainLauncher(TestData) > [7] test.launchertest.MainLauncherTest$TestData at 63fbfaeb FAILED
    org.opentest4j.AssertionFailedError: test.launchertest.TestStartupJFXPanel: Unexpected error exit: 134
        at app//org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:38)
        at app//org.junit.jupiter.api.Assertions.fail(Assertions.java:138)
        at app//test.launchertest.MainLauncherTest.testMainLauncher(MainLauncherTest.java:231)


I'm also seeing some failures (color mismatches) in other tests, but I don't know if those are related your to your PR or not -- it seems unlikely that they would be, but I need to check.

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

PR Comment: https://git.openjdk.org/jfx/pull/1656#issuecomment-2552104844


More information about the openjfx-dev mailing list