Commit 8f4b115
[7.0.1] Fix bootstrapped Bazel binary (#20612)
For the bootstrap VanillaJavaBuilder, it is important that the AutoValue
plugin classes do not end up in the deploy jar. If they do, the
processor class is loaded from the app classloader (instead of the
processor path classloader). When this happens, AutoValueProcessor uses
the app classloader to load extensions (such as auto-value-gson needed
by bzlmod), instead of the processor path classloader. Unless all
extensions are also correctly present in the app classloder (i.e. in the
VanillaJavaBuilder deploy jar), they won't be loaded.
Unfortunately, simply adding the jars to the deploy jar is insufficient,
we need to also correctly merge the `META-INF/service/...` files as
well, which does not happen in our bootstrap java_binary/java_library
rules. So, to fix, we remove the auto value plugins from the deploy jar,
and use them only to compile our sources that require them.
Added a regression test for the crash. We should probably improve it so
that we can actually build with the bootstapped Bazel in tests without
network access. But I don't think we need block this patch release on
that.
Fixes #20501
Commit
2a2def8
PiperOrigin-RevId: 592266992
Change-Id: I08ac91ee74140df0c4f22ad2553a8c017b497181
Co-authored-by: Googler <[email protected]>1 parent 8f689c0 commit 8f4b115
2 files changed
Lines changed: 14 additions & 2 deletions
File tree
- src
- java_tools/buildjar/java/com/google/devtools/build/buildjar
- test/shell/bazel
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | 1 | | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
178 | 177 | | |
179 | 178 | | |
180 | 179 | | |
181 | 180 | | |
182 | 181 | | |
183 | 182 | | |
184 | 183 | | |
| 184 | + | |
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
| 216 | + | |
216 | 217 | | |
217 | 218 | | |
218 | 219 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
| 107 | + | |
107 | 108 | | |
108 | 109 | | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
112 | 123 | | |
113 | 124 | | |
114 | 125 | | |
0 commit comments