On 3/28/19 7:22 AM, David Holmes wrote:
On 28/03/2019 8:32 pm, Thomas Stüfe wrote:
On Thu, Mar 28, 2019 at 11:10 AM David Holmes
<[email protected] <mailto:[email protected]>> wrote:
On 28/03/2019 4:55 pm, Thomas Stüfe wrote:
> On Thu, Mar 28, 2019 at 8:40 AM David Holmes
<[email protected] <mailto:[email protected]>
> <mailto:[email protected]
<mailto:[email protected]>>> wrote:
>
> Hi Thomas,
>
> On 28/03/2019 5:02 pm, Thomas Stüfe wrote:
> > Hi Serguei,
> >
> > This is planned to be introduced in jdk 13?
> >
> > The only concern I have is that both paths (old and new
behavior)
> should
> > be well tested, and hiding the old behavior behind an
optional
> switch
> > may reduce its test coverage considerably.
>
> The old behaviour is hardly ever used - I'm not even sure we
currently
> have a test that tries to use it - so it's already not "well
tested"
> and
> there's no intent here of increasing test coverage for the
code we plan
> to remove. The new path will be tested as we do have a
test that
> expects
> to get the error. And Serguei will of course have a simple
test that
> checks the flag with both values.
>
>
> I remember at least one case causing crashes in our code base
where the
> method ordering array was not reordered on RedefineClasses.
May have
> been this one: JDK-8149743.
>
> My point is, I have seen crashes in the field coming from
bytecode
> agents redefining classes with method added or substracted, so it
is no
> theoretical problem.
My point is that we don't really care if the code works well or not,
we're intending to kill it off not improve it. It's a capability
that
really should never have snuck in to the code.
If you provide a backward compatibility switch which is not well
tested, the coding behind it may bitrot; then, when you want to use
it, you would run into errors. That is worse than not having that
switch.
AFAIK we don't actively test this code currently, so in that sense it
can bitrot even without the flag. Serguei can correct me if I am wrong
here.
This is not true. We do actively test this code and I've personally
fixed many bugs in this. We will continue to have the tests we have
now, with the option, to provide continued support until the option is
removed.
Thanks,
Coleen
David
-----
Jdk head development goes at quite a pace, the chance that something
which is not tested well bitrots is not that absurd.
I am not idly bike shedding. I remember distinctly running into
problems associated with RedefineClasses method adding/removal (I
even remember us talking about it). So I know this is a thing which
can happen. I do not want to improve it but I would like it to
reliably work for as long as this switch exists.
Cheers, Thomas
Cheers,
David