Skip to content

Eclipse OpenJ9 v0.46.0

Compare
Choose a tag to compare
@pshipton pshipton released this 12 Aug 13:15
· 1462 commits to master since this release
1a6f612

Eclipse release plan: https://projects.eclipse.org/projects/technology.openj9/releases/0.46.0
Release notes: https://eclipse.dev/openj9/docs/version0.46
Project release notes, known issues: https://github.com/eclipse-openj9/openj9/blob/master/doc/release-notes/0.46/0.46.md
Works with: jdk8u422, 11.0.24, 17.0.12, 21.0.4, 22.0.2

Release details:

Branch name: v0.46.0-release
Tag: openj9-0.46.0

Repo SHAs:

OpenJ9: 1a6f612
OMR: eclipse-openj9/openj9-omr@840a9ad

Security Vulnerabilities Resolved
CVE-2024-21131

JITServer Helm Chart - Easier deployment of JITServer technology in a Kubernetes or OpenShift cluster
https://github.com/eclipse/openj9-utils/tree/master/helm-chart/openj9-jitserver-chart

For details about the release and release candidates, please see: https://github.com/eclipse/openj9/blob/master/doc/processes/release_process.md

For the list of OMR changes see https://github.com/eclipse/openj9-omr/releases/tag/openj9-0.46.0

OpenJ9 Changes from 0.45

0863e24..1a6f612
1a6f612 (0.46) String.replaceAll() fast path must check regex is compressed Peter Shipton #19907
c70741a 0.46: Enforce maximum name size during class loading Theresa Mammarella #19898
6c99fa9 (0.46) Add -XX:+EnableExtendedHCR to addtional tests Peter Shipton #19820
5e68eba (0.46) Add required options to failing HCR tests tajila #19794
72894c7 (0.46) Export jdk.management/jdk.crac.management only when CRaC is enabled Keith W. Campbell #19787
9bbbf4e (0.46) Update OpenSSL 3.0.14 to include the fix for CVE-2024-5535 Peter Shipton #19784
f685ace (0.46) Clear breakpts in class redef and fix HCR warning tajila #19775
7ad2dd9 (v0.46.0-release) CRIU adds NotCheckpointSafe at java/lang/ref/ReferenceQueue.poll Jason Feng #19748
59ef48c (0.46.0) Disable x86 TLH prefetch by default after Broadwell Daryl Maier #19762
5e0ca40 (0.46) Split IllegalAccessProtectedMethodTest to openj9 and hotspot variant LongyuZhang #19718
546e69a (0.46) Skip bounds checks in BigInteger bit{Count,Length} Younes Manton #19705
586eda4 (0.46) Add cmdline opts to toggle extendedHCR Tobi Ajila #19684
8256945 [0.46.0] Mark unlikely blocks as cold for Unsafe.{get|put}* Henry Zongaro #19681
4ca46e0 (0.46) Fixup continuation lists for concurrent scavenge backout case hulin #19665
ba26301 (0.46) Skip jitCodeCache reclamation for scavenge backout case hulin #19664
3bbdb0e [0.46.0] Change order of tests for inline Unsafe.{get|put}* calls Henry Zongaro #19660
da980bf (0.46) Move anchored instanceof to the correct position Annabelle Huo #19655
618a1d6 (0.46) Update sync logic between vthreadInspectorCount & internalSuspendState Jack Lu #19659
b4dda4b (0.46.0) Prefer to disable TLH allocation prefetching by default post-Skylake Daryl Maier #19624
cd4c5b6 (0.46) Update zlib to 1.3.1 Peter Shipton #19622
79b0acf Update to openssl 3.0.14 Keith W. Campbell #19628
8dfa90b (0.46) Enabled AOT cache at server by default Christian Despres #19619
0f7645c (0.46) jdk11 always create compact Strings when possible Peter Shipton #19607
d22a436 (0.46.0) Skip zero-init, checks for some BigInteger methods Younes Manton #19603
747e541 [0.46.0] Inline Class.getComponentType and refactor IL generation to access classDepthAndFlags field of j9Class Henry Zongaro #19606
ba64f88 (0.46.0) Improve x86 inline object allocations Daryl Maier #19600
b93fdca (0.46) Update OpenSSL 3.0.13 to include CVE-2024-4741 Peter Shipton #19592
714b75a (0.46) Disclaim Cold Code Cache Gita Koblents #19581
e993860 (0.46) Fix the references in continunation java stacks for scavenger backout hulin #19574
a856f92 (0.46.0) Changes to the code cache repository allocation code Marius Pirvu #19575
205302f (0.46) Split warm and cold blocks Gita Koblents #19561
f96e327 (0.46.0) Re-enable IProfiler for JITServer Marius Pirvu #19568
b16e294 (0.46)cacheDirPerm should be set if -Xshareclasses is not specified Hang Shao #19567
28e7785 (0.46.0) Check file type for shared class cache jar files Theresa Mammarella #19548
2da7e0a Remove plinux from "all" when running PR builds Peter Shipton #19518
fa143bf Update OpenSSL to include CVE-2024-4603 Peter Shipton #19515
64d4ef4 Remove incorrect check in fast path indexOf code jimmyk #19503
fb0df9b AArch64: Remove obsolete JIT helper entries for arraycopy KONNO Kazuhiro #19470
9753a2c Protect malloc.h inclusion with #ifdef LINUX Marius #19510
a56cbdf Periodically issue malloc_trim at JITServer client Christian Despres #19506
5674d7c JITServer AOT cache array class support Alexey Khrabrov #19138
bf126f2 Release note for 0.45.0 release Sreekala Gopakumar #19502
0e34d4c Add debug output to testThreadMXBeanProxy Peter Shipton #19505
5fbb4d7 Correct condition for printing portable shared cache option help Keith W. Campbell #19496
40817e8 Ensure all necessary cached JITServer AOT cache records are valid during deserialization Christian Despres #19472
f4d4782 Z: Don't pass sreg to ETND Spencer Comin #19495
4cef8b2 Add new feature flag J9VM_OPT_PORTABLE_SHARED_CACHE to guard portable shared class flag variable Christian Despres #19399
dd6f997 Eliminate VM_isClassLibraryClass messages for JITServer Marius Pirvu #19477
f270cb4 JDK23 adds JavaLangAccess.initialSystemErr() Jason Feng #19493
bcbe4b2 Pass NULL as threadObject to walkContinuationStackFrames in GC hulin #19487
eedd850 Use non zero tlh for int and long to string Ehsan Kiani Far #19471
6880b59 Fix stale object in jvmtiGetThreadGroupChildren Babneet Singh #19474
fa4755a JDK23: ByteBuffer ViewVH Off Heap Operations Allowed Babneet Singh #19485
df2c1c0 Restore advice for setting INCLUDE environment variable Keith W. Campbell #19481
36c998b Fix View-LE-OnHeap and View-BE-OnHeap for JDK23 Babneet Singh #19478
7acb77c Prevent deadlock in java.base creation tajila #19458
9a1f5b3 Skip HCR guards for inlining intrinsifiable methods Nazim Bhuiyan #19469
851a4eb Fix !vthreads command error with uninitialized Continuations Jack Lu #19343
d9a1f14 Add new options to enable storing all classes in SCC Hang Shao #19442
7487893 Correctly identify and handle Lambda class names for JDK21+ Nathan Henderson #19448
0e3af5d Inline native call to java/lang/Class.getStackClass when possible Rahil Shah #19365
0db560f Fix compile errors with JIT server disabled Keith W. Campbell #19467
d6b16f5 NPE extended message skips npePC that is BYTECODE_TEMP_CHANGED Jason Feng #19466
9eb718e Use 32-bit XOR to zero registers in x64 Ryan Stevens #19320
c58b9f8 Change "for" loop from range-based to iterator based Marius Pirvu #19465
b3944af Fix the output of floating point values in writeGPInfo() KONNO Kazuhiro #19463
12856fe TR_J9ServerMethod: change type of cpIndex to match usage Keith W. Campbell #19396
bfaeffa Disclaim IProfiler memory Marius Pirvu #19355
b05b2c1 cmake: disable automatic dependency tracking for .nasm files Keith W. Campbell #19449
c9a5adc Update zlib version in doc to match version used Peter Shipton #19451
19dfa1b Replace writeLine usage with writeLineLocked Christian Despres #19447
dba9d93 Valhalla supports jdk-23+6 update Jason Feng #19446
2c34fcf Fix resetting global lists issue in CRIU reinitializeForRestore hulin #19426
94efdb2 Use signed comparisons for Latin-1 encoded indexOf Henry Zongaro #19428
3992b31 valhalla jdk-23+1 bringup Jason Feng #19423
9945777 Only @OverRide getTotalThreadAllocatedBytes in OpenJ9 builds Peter Shipton #19440
264f275 Add ThreadMXBean.getTotalThreadAllocatedBytes() impl, and jdk8 support Peter Shipton #19436
6e1e36f Remove UNB Artifactory from builds Adam Brousseau #19425
e3de212 JFR CMake adds jfr.cpp Jason Feng #19432
0f92f6a JDK21 adds PinnedThreadPrinter.printStackTrace(out, reason, printAll) Jason Feng #19434
6a7a3cb Early JFR framework Graham Chapman #19419
7e54abb ScopedMemoryAccess closeScope0 synchronization Babneet Singh #19412
383bb66 Fix copyright format to avoid Java compilation warnings Keith W. Campbell #19427
43a6c80 jdk23 Blocker.begin() in Object.wait is only called for virtual threads Peter Shipton #19417
0a576e3 [FFI_JDK21/Test] Enable the downcall tests for primitives on z/OS ChengJin01 #19384
a0d1695 add native tag to tests Rohit Satya #19418
190a224 TGC alloc non-tlh per thread Aleksandar Micic #19416
25cf97f Fix fatal assertion in class loader table during class unload Alexey Khrabrov #19415
8117290 Delete only datasets created from JVM crashes Aswathy S Kumar #19414
0c0f5c2 Update criu machine requirements tajila #19179
4d22877 Avoid AccessControlException in com.ibm.jvm.Dump. Peter Shipton #19394
05fe4be Fix the VarHandle test for JDK23 Babneet Singh #19375
c5c5206 VMWare support is not open source, clarify Hypervisor/Guest MXBean Peter Shipton #19393
b3ab6b6 Possible fix for perf regression Graham Chapman #19391
8cb8cf3 Use standard get_source.sh options Keith W. Campbell #19387
0aac90f Fix JITServer AOT cache compilation retry logic Christian Despres #19379
f1a25b9 fix typo in logger info Lan Xia #19383
f7a01b9 Remove @return tags for functions that don't return anything Keith W. Campbell #19381
b8e94b1 Ignore loading errors during value class preload Theresa Mammarella #19359
8add434 Combine extra_getsource_options and EXTRA_GETSOURCE_OPTIONS Keith W. Campbell #19351
70358c1 JDK23 update Blocker.begin()/end() Jason Feng #19374
e98db8e Fixup stack references of unmounted continuation for scavenge backout hulin #19341
9caa958 Skip zero initialization for Unsafe.allocateUninitializedArray0 Ehsan Kiani Far #19280
4998aab Remove unnecessary spaces in MM_ClassloaderManager class Dmitri Pivkine #19345
b3b6163 Rework processing of Java system properties in java.lang.ClassLoader Babneet Singh #19362
ea60ab8 Disable javac server on ppc64_aix Keith W. Campbell #19358
e2fa955 Temporarily exclude tests failing on jdk23 Peter Shipton #19353
f44a1c6 Improve code cache allocation time Marius #19346
df3f8f3 set test_keep_reportdir to true for extended.functional Lan Xia #19350
7f82a7d JDK23 JavaLangAccess APIs updates Jason Feng #19335
0c8eacd Clean up MM_ClassLoaderManager class Dmitri Pivkine #19338
db5fbcc jdk11 should create LATIN1 String constants Peter Shipton #19337
fad776c Delay AOT validation until restore under -XX:+DebugOnRestore Irwin D'Souza #19316
f1d7d30 AArch64: Fix BNDCHKwithSpineCHK KONNO Kazuhiro #19312
b1c3564 Add j9protos.h to StringTable.hpp Nathan Henderson #19327
f1565c1 Print footprint statistics using verbose #METHOD STATS Gita Koblents #19297
c474be8 Cleaning arrayCopy.cpp Dmitri Pivkine #19324
4024dbe Avoid duplicate work in checkStringConstantsLive() Keith W. Campbell #19296
7c4280d Add AOTCachePersistenceFailure, associated compErrCode Christian Despres #19314
239fb82 Fix JNI argument setup when ref count is not 1 Kevin Langman #19321
3f8656e Revert "Add test pipeline parameters" (#19281) Keith W. Campbell #19317
2e8ebc7 Revert "Add test pipeline parameters" (#19281) Keith W. Campbell #19281
6e1d5bc Add the latest NLS translations Peter Shipton #19313
38a7014 Fix 49 typos in 21 files RoboSchmied #19311
d162e56 Add test pipeline parameters Lan Xia #19281
e80a0f3 Don't store or find heap size hints when heap fully expanded Aleksandar Micic #19305
40dcb30 Recompile FSD Bodies generated under -XX:+DebugOnRestore Irwin D'Souza #18982
7a9347e [Verifier] Prevent displaying the garbage type on the empty stack ChengJin01 #19307
2f2ace0 Use getArrayObjectDataAddress in referenceArrayCopy to calculate index Abdulrahman Alattas #19299
ccbc2e4 Release note for 0.44.0 release Sreekala Gopakumar #19193
b2db204 Make javaOffloadSwitch(On|Off)WithReason functions global Keith W. Campbell #19295
fb87224 Fix String creation to treat a modified UTF8 zero as ASCII Peter Shipton #19287
73daf9b CRIU timer time compensation tests use TestResult.lockStatus Jason Feng #19112
e09d7c8 [FFI/JDK22] Handle discontiguous heap arrays in downcalls ChengJin01 #19263
893c956 Update OpenSSL to include the fix for CVE-2024-2511 Peter Shipton #19286
b9b8221 Add checkExternalDecimal API Shubham Verma #18272
78f3bb7 Enable JIT breakpoint on macOS KONNO Kazuhiro #19285
6e85bc0 Off Heap Changes Shubham Verma #19228
c36d904 AArch64: Remove unnecessary calls to target().is64Bit() KONNO Kazuhiro #19278
3fcdd38 Initialize subclass as initial class before main method Amarpreet Singh #19256
2fb6cf8 Set a higher ulimit -f setting for sigxfszHandlingTest Peter Shipton #19277
d1a1a70 Include diagnostics in archive produced by jpackcore Keith W. Campbell #19275
1aeff36 Always send fresh AOT cache method to client Christian Despres #19259
6f8105f Fix acquireVMaccessIfNeeded for Non-Compiler Threads Irwin D'Souza #19260
4a7b54d Include missing header file Bytes.hpp Marius Pirvu #19270
f8f2193 Add "-Wc,list(),offset,gonumber" compile options on z/OS Peter Shipton #19268
9d4e3b5 Disclaim memory for metadata segments Marius Pirvu #19214
bbc8fca Tweak inliner to improve compilation overhead Marius #19257
a6b4aa5 Remove redundant newlines in vlog messages Christian Despres #18977
a4efb0d Refine JITServer AOT cache flag setting Christian Despres #19241
975e876 AttachApiTest runCommandAndLogOutput() recreates commandLineArgs Jason Feng #19258
95cea47 Add ASGCT support for zlinux tajila #19250
fbb8e7c Detect forward pointers in gc check for concurrent scavenge Frank Kang #19252
7e6038d Disable temporary SCC layer if ignoring local SCC Christian Despres #19243
451ceb2 Command line option for JFR Graham Chapman #19244
de1950c Optimize primitive unboxing method calls James You #18794
7670032 AttachAPI Jcmd retry attaching in case of SocketException Jason Feng #19245
dc15b62 Allow JITServer communication and health port 0 Christian Despres #19184
0e7a7af x86: Remove deprecated TR_EnableNewX86PrefetchTLH Bradley Wood #18808
d3d128a Cache compInfoPT in JITServer deserializer SCC interface Christian Despres #19101
a9c32c6 Refactor Checkpoint/Restore Code into its own class Irwin D'Souza #19157
87d6563 Relax condition on JITServer rememberClass assert Christian Despres #19226
e3a8b3b Add DDR support for varHandleMethodTypeLookupTable Babneet Singh #19075
2e10042 Add default: label to a switch statement KONNO Kazuhiro #19222
2756c9c Revert "In PR testing redefine all to exclude UNB platforms" Peter Shipton #19223
f4a6293 Refactor SFFF for InterpreterEmulator and record/replay InterpreterEmulator constants Devin Papineau #19087
1c38c8a Set default values for implicit value classes Theresa Mammarella #18892
6b8eb53 Remove generated MHProxy package entries Theresa Mammarella #19159
e35e963 Add JFR flags Tobi Ajila #19212
a3f25b1 Avoid heap walk and GC for MemberName fix-up on class redefinition Devin Papineau #19187
5447bca JDK23 adds java.lang.Access.allowSecurityManager() Jason Feng #19209
dc97fa2 DDR: always generate optional fields Keith W. Campbell #19195
f2c434f Don't use non-ASCII characters in text files Keith W. Campbell #19196
f5ec497 Disable CRIU failure paths test tajila #19198
18adcb9 Exclude cmdLineTester_loadLibraryTests on Windows jdk22+ Peter Shipton #19171
dc56443 Define OpenSSL error constant if not present Christian Despres #19194
4287de3 Remove the ability to access array object headers via Unsafe Graham Chapman #19172
471181c Swap the if and else blocks to remove the block Babneet Singh #19188
875d19e Update thread interrupt helpers to adopt internalSuspendState Jack Lu #19186
7c9937b Minor improvements to vmprops.c Keith W. Campbell #19190
eed1f35 Enable VectorAPI in Java 22 Gita Koblents #18965
6f741bc Fallback to UTF8 converting command line arguments Peter Shipton #19185
3b697e1 DDR: rework handling of build flags Keith W. Campbell #19173
a8cd712 Correctly disable Java21andUp JVMTI tests for JDK8 Babneet Singh #19183
417c02f Refuse to generate array class serialization records Christian Despres #19135
989f82f Virtual thread support for JVMTI extension functions Gengchen Tuo #18856
c1c07c9 Refactor virtual thread inspector access Jack Lu #19076
cffd236 Update ScopedMemoryAccess_closeScope0 for JDK22 Babneet Singh #19167
923a428 DDR: correct some operations for signed types Keith W. Campbell #19170
ef04b26 Rework post-restore faiure paths tajila #19036
eda370c Enable per-connection JITServer AOT cache disabling Christian Despres #19133
6b03a38 Fix wrong memoryPool names of memory usage in GCInfo hulin #18906
1439cf0 Replace omrvm to javavm for RootScanner class Dmitri Pivkine #19158
f5be88c Z: Remove TR_USEDUALTLH env var Ehsan Kiani Far #19054
f200844 CRIU Restore Softmx Functional Tests Frank Kang #19134
255d16f Ensure visibility of post- field values for StringBuffer/Builder Kevin Langman #19142
6c0c071 JDK23 adds Access.addEnableNativeAccess(moduleLayer, moduleName) Jason Feng #19145
6dbe197 Add simple class name check in checkInnerClassAttrOfEnclosingClass() Hang Shao #19126
7221b3f Revert "Replace omrvm to javavm for RootScanner class" Peter Shipton #19155
df52ad6 Replace omrvm to javavm for RootScanner class Dmitri Pivkine #19141
e3197be Add dedicated health port for JITServer Marius Pirvu #19107
e5d99e1 Revert "CRIU Restore Softmx Functional Tests" Peter Shipton #19128
b44ad1a Add Extension Class Loader to permanent roots Dmitri Pivkine #19066
c555c8b CRIU Restore Softmx Functional Tests Frank Kang #18532
cd85de1 Use isNativeLoaded when checking if CRIU and CRaC are enabled Nathan Henderson #18917
59ca1e0 Fix javacore unmounted threads output Jack Lu #19090
1c9fee0 CRIU Softmx Test Options Frank Kang #19037
a362819 Correct memorypool usage calculating for GMP case hulin #19063
865b37a Delete vlog in criuCatVlog.sh Irwin D'Souza #19111
45ebb31 Fix typo in comment Keith W. Campbell #19118
d7099d2 Exclude JCL_TEST_Java-Security on AIX Peter Shipton #19117
dba65ba Support transition to debug interpreter on restore Amarpreet Singh #18833
e77cdfc Update DigestLoop test and suggest finalization Peter Shipton #19095
d135b81 Add missing checks that fields are present Keith W. Campbell #19104
df94e97 JIT must narrow byte/short/char before storing Bradley Wood #18904
ae0c76e Check if block frequency info exist before generating test Annabelle Huo #19053
54482a4 Remove duplicate typeoverride entries Keith W. Campbell #19096
54c21f5 Ensure Client UID is different on restore Irwin D'Souza #19088
ef628e1 AArch64: Accelerate StringLatin1.inflate Akira Saitoh #19093
eb552e4 Exclude JLM_Tests for FIPS Anna Babu Palathingal #19085
cfde651 AttachAPI jcmd supports VMID query via Java process display names Jason Feng #19069
ac39072 Recompile the outermost method in JIT dump when compilation crashes Devin Papineau #19065
5145dee Do not throw in ClassLoaderTable Christian Despres #19071
8c1d42d Add missing critical section to deserializer reset Christian Despres #19072
e652398 TGC allocation stats per thread Aleksandar Micic #19070
42ea7f4 Update CRaC options tajila #19046
3c621f2 Move CRaC tests to separate suite Keith W. Campbell #19062
a4b1b81 CRIU time compensation tests reset TestResult.lockStatus Jason Feng #19051
5726a9c AttachAPI updates control file access time for long running applications Jason Feng #18996
22863ae Fix JLM_Tests build for windows Amarpreet Singh #19011
78db5f9 Fix transformIndexOfKnownString to handle 8bit characters properly Akira Saitoh #19044
d3fa3ff Fix virtual thread interrupts Babneet Singh #18989
2095c8e Include sealed/non-sealed as appropriate for Class.toGenericString() Keith W. Campbell #19048
975bc33 Update ValueType comparison Hang Shao #19023
59174a3 Add parens to CEL4RO64 control block lengths macro expressions Joran Siu #19043
6b910d0 Remove unnecessary exports from java.base Keith W. Campbell #19041
f27b9dd Add VM.internalGetProperties() helper method Jason Feng #19032
29f53f4 JDK22+ print deprecation warning messages Jason Feng #19028
c38f6c6 Fix CRIU ghost file test tajila #19030
cc70c6b Recognize StringCoding.implEncodeAsciiArray() as a converter method Dhruv Chopra #19025
21d65c0 Cache Invocation API function descriptors in libjvm31 wrapper Joran Siu #19024
c796ced Add missed scan for modules in System and Application class loaders Dmitri Pivkine #19020
b9f7880 Recognize linkToNative() in the JIT compiler to allow J2I calls Devin Papineau #18817
d8e47c2 Add throwExceptionHelper default case Jason Feng #19019
092946d CRIU adds unqualified exports java.base/jdk.crac when CRaC is enabled Jason Feng #18959
e1e7ade Revert 19001 and 19009 Babneet Singh #19017
6bdd7e4 Add documentation for Checkpoint Restore Coordination Irwin D'Souza #18936
49dff11 FIPS disable JCL_TEST_Java-Security tests Jason Feng #19010
0479fd5 Add a default value for J9BuildFlags.J9VM_OPT_METHOD_HANDLE Babneet Singh #19009
6bb3363 Clean up redundant OMR_GC flags in common.cmake KONNO Kazuhiro #18978
72e1350 Clean up flags in common.cmake KONNO Kazuhiro #18966
3f3daa3 Clean up GC_TLH_PREFETCH_FTA flag settings in cmake files KONNO Kazuhiro #18918
8ed4118 [FFI/Jtreg_JDK22] Change the value of the heap address identifier ChengJin01 #19002
ae3d28f Add DDR support for varHandleMethodTypeLookupTable Babneet Singh #19001
4be0f69 Exclude testCRaCMXBean for ibm builds Amarpreet Singh #19000
93af64e Add and utilize methods that do not access flattened arrays Annabelle Huo #18731
9f3f3c7 Add ghost file limit API tajila #18945
0e75ac0 Ignore extension classloader in JVM_LatestUserDefinedLoader on jdk8 Peter Shipton #18984
63c03a6 Recognize java/lang/StringCoding.implEncodeAsciiArray Dhruv Chopra #18983
4b15be6 Exclude TestCRaCMXBean for jdk8 Amarpreet Singh #18992
308d6bb Fix bad casts from 'J9UTF8 *' to 'char *' Keith W. Campbell #18985
c2f032c [FFI/JDK22] Pass the heap segments to native in downcall ChengJin01 #18930
be04808 Add CRaCMXBean API Amarpreet Singh #18855
f3b5cbd Fix intermittent LogGeneratedClassesTest failures Amarpreet Singh #18968