I feel like there's a gap in perception here. I'm sensing that you are
feeling that this is a systematic problem where fixing one problem at hand
wouldn't solve problems down the road. That there will be more of these
problems down the road.

In contrast, what I see is one bug (failing to update StackMapFrame) and
two failed attempts to fix it, and we are this close to fixing it properly.
And class file format change that drives issues like this only happens at
major Java releases, and Java9 has no such changes currently in it.
Hopefully this helps you see why I feel like we are throwing the baby out
with the bathwater.

And it's not that problems are hard to understand or hard to fix. What
makes this issue painful is that it blows up in unexpected places.

Anyway, I'm losing this argument.

Now, if you are going to remove BCT altogether, what do we do with existing
uses of them? Queue.Item#id is a relatively recent change. Are we just
going to break plugins that use them?


2015-10-20 14:40 GMT-07:00 Jesse Glick <jgl...@cloudbees.com>:

> On Tue, Oct 20, 2015 at 2:38 PM, Kohsuke Kawaguchi <k...@kohsuke.org> wrote:
> > …this is relatively easily achievable by moving the transformed code
> into a
> > separate method so that bytecode index remain the same.
>
> I am not going to sleep more soundly tonight. :-)
>
> I think the broader issue is that use of runtime bytecode manipulation
> has proven to be subject to catastrophic bugs which are tricky to
> understand, much less fix. And pity the developer who attaches a Java
> debugger with a `*-sources.jar` and tries to step through rewritten
> code. We should be considering simpler, lower-tech options. If a field
> has been replaced with a getter, or whatever, let us make sure we fix
> the deprecated source code references and release those fixes and make
> sure users are not running the wrong version.
>


-- 
Kohsuke Kawaguchi

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAN4CQ4xvMGgXCdVPttYu-_kD7YLmJqzkrn87gWY2K457pF87mQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to