Keep in mind that if Avian had been packaged before it supported the new "every String gets its own char array" implementation, it would have needed to be updated anyway -- not just rebuilt but patched, since it previously relied on the assumption that char arrays could be shared.
There's no way in principle to provide perfect future compatibility, since future versions of OpenJDK could break any kind of assumption currently made by the VM, not just field offsets. For example, if String were to be changed to use int arrays instead of char arrays, I'm sure all existing VMs -- not just Avian -- would need to be patched and rebuilt. Finally, if a field offset changes in a core class that the VM knows about, that means a field has been added or removed. It's probably not safe from a security or stability standpoint to just assume that an old version of the VM can adapt to that field addition or removal without source code changes. I would even argue that it *should* fail loudly and immediately so as to draw attention to the possibility of a broken assumption in the source code. Do you know of any past security updates that have added or removed fields in core classes like String? -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1047389 Title: java -avian sigsegv on startup if used with a different OpenJDK 7 compared to the one it got built against. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/avian/+bug/1047389/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs