On Fri, 27 Jan 2023 04:16:05 GMT, Ioi Lam <ik...@openjdk.org> wrote:

>>>I'd expect that at least java.util.Date and java.lang.ProcessBuilder have 
>>>the same verification requirement.
>> 
>> Generally speaking yes - they are both loaded by bootstrap loader and so 
>> would both have verification disabled by default. Bt as you note the 
>> behaviour can change when CDS is involved and only one class gets dumped.
>> 
>>> But in Date has StackMapTable (starting from JDK12-b15), and ProcessBuilder 
>>> doesn't has StackMapTable.
>> 
>> This seems odd, but not, IMO, in itself a bug. Perhaps @iklam  can comment 
>> on why we treat things differently during dumping.
>
>> > I'd expect that at least java.util.Date and java.lang.ProcessBuilder have 
>> > the same verification requirement.
>> 
>> Generally speaking yes - they are both loaded by bootstrap loader and so 
>> would both have verification disabled by default. Bt as you note the 
>> behaviour can change when CDS is involved and only one class gets dumped.
>> 
>> > But in Date has StackMapTable (starting from JDK12-b15), and 
>> > ProcessBuilder doesn't has StackMapTable.
>> 
>> This seems odd, but not, IMO, in itself a bug. Perhaps @iklam can comment on 
>> why we treat things differently during dumping.
> 
> We always enable verification for all classes during -Xshare:dump. That avoid 
> problems where the classes were dumped without verification but at run time 
> you enable verification.

> I'm not sure of all the implications of always having the stackmap. IIU what 
> @iklam was saying then anyone running with cds enabled will not encounter the 
> reported problem as the stackmap will be present. So these days only when you 
> run without CDS can you encounter the issue. Is that right?

No. Not all JDK classes are dumped to CDS archive (for example 
java.lang.ProcessBuilder is not).
And this is why I think it makes sense to simplify the things.
- application classes have stackmaps (they require verification);
- classes from CDS have stackmaps;
- jdk classes not dumped to CDS _do not_ have stackmaps (elided by classParser)

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

PR: https://git.openjdk.org/jdk/pull/12155

Reply via email to