tree 0f5b5b6fe443e773e64d6b78e561c4e045c10d51
parent f5401bab23c073410e2b2760baf6007109708d4c
author Kent Yao <yao@apache.org> 1715162795 +0800
committer Kent Yao <yao@apache.org> 1715162795 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE124jufEbW/aGRhPE9wUYUKCvkE0FAmY7TqsACgkQ9wUYUKCv
 kE3rqw//aaKSnmJnQZnulf+ohtcLqbArgWXuBGUwPtzWlpixVugxGtYtdvxVQCAh
 DJwXtEMW2Eu+PAgyVV3ErUvNtZH7UnWaWog/Du8wkCUWADzb/KfF67omWD82/ZKA
 vSc4dBN24ushzvt3Wqkcp3/G3YoXSEcYcdG/B2876SJdeTA0jc5WpE7MXsqfptsK
 0LIdEtdGwcbFBoE8FuPH9mmVIHbI410DuXxyCi0NEhW1A7H6Jh7BIyOLf2hSlWI+
 O7kODWsaruHQDu+xHBjqFB388OzBf7Ja9Y9Cp89BLKvpHgA+NdXVr+8tMnl97Hs5
 1sTuXA+BUw62oVO5wh5fylKWe2QdLHtF7IPsoiw0AexN0YbnxK8Vsn5L+CL6+hWn
 c1bPxjNWuA4TvT4HR11mzEp/ZtlclgsDoNILU+4dLFol+Hyt0AjWDNtd89ioqNqn
 mEREFxkFB5a2omqPBdjP8wdN4AouPH3jwWCnY18/APt/G9aO7WXUiFybll+lWwi7
 IJuMloz6BqB6+zuYF3rBuK02yaGwioefMBxl1WzVRRHvfKJGs+I0vdbePmbASz+h
 QzKb+IRNLOEwCfQI9DqcYwMneM1eWFrEjaIDGg4jxPoWQUJJd+qFOlKRsA+Ics45
 j58a/R3BTGdMWfDtrI4fvLEjNjMpiLPQBLoH2/O2CMa6Wxb7KrM=
 =D/PK
 -----END PGP SIGNATURE-----

[SPARK-48185][SQL] Fix 'symbolic reference class is not accessible: class sun.util.calendar.ZoneInfo'

### What changes were proposed in this pull request?

I met the error below while debugging UTs because of loading `sun.util.calendar.ZoneInfo` eagerly. This PR makes the relevant variables lazy.

```log
Caused by: java.lang.IllegalAccessException: symbolic reference class is not accessible: class sun.util.calendar.ZoneInfo, from interface org.apache.spark.sql.catalyst.util.SparkDateTimeUtils (unnamed module 65d6b83b)
	at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
	at java.base/java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass(MethodHandles.java:3686)
	at java.base/java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:3646)
	at java.base/java.lang.invoke.MethodHandles$Lookup.findVirtual(MethodHandles.java:2680)
	at org.apache.spark.sql.catalyst.util.SparkDateTimeUtils.$init$(SparkDateTimeUtils.scala:206)
	at org.apache.spark.sql.catalyst.util.DateTimeUtils$.<clinit>(DateTimeUtils.scala:41)
	... 82 more
```

### Why are the changes needed?

sun.util.calendar.ZoneInfo is inaccessible in some scenarios.

### Does this PR introduce _any_ user-facing change?

Yes, such errors might be delayed from backend-scheduling to job-scheduling

### How was this patch tested?

I tested with idea and UT debugging locally

### Was this patch authored or co-authored using generative AI tooling?

no

Closes #46457 from yaooqinn/SPARK-48185.

Authored-by: Kent Yao <yao@apache.org>
Signed-off-by: Kent Yao <yao@apache.org>
