<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">You're telling how wonderful a utopia really is, but it doesn't exist in reality.</div><div><br></div><div>Yes, FFI is not trusted. But should all untrusted features be labeled "untrusted" and treated equally?</div><div><br></div><div>Compared to FFI, we have a more dangerous feature: I/O.  Users can easily break integrity via I/O (such as accessing /proc/pid/mem with RandomAccessFile).</div><div>Also, not only can it be used to break the integrity of Java, it can be used to break other programs and the operating system,</div><div>so why don't we  restrict this extremely dangerous feature first?</div><div><br></div><div>Of course, I know that  restricting I/O is relatively unrealistic. I just want to explain: absolute integrity is impossible with Java.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The majority will be able to rest easy that their programs are portable and don't crash.<br></blockquote><div><br></div><div>This is just an illusion created by fraud, please stop deceiving users.</div><div>Integrity itself is meaningless as long as the elephant is in the room, let's focus on more utilitarian goals.</div><div><br></div><div>You talked a lot about the problems with FFI. I acknowledge that they exist, but I don't think they can be easily solved.<br></div><div>In the past, many people used the internals of the JDK, but this was not an essential requirement for them, so JPMS can regulate their behavior.<br></div><div>JNI is different from it, FFI is the real needs of users. And as far as I know, JNI is rarely abused in the Java ecosystem, because most users prefer pure Java when possible.<br></div><div>So restricting JNI like this doesn't really make users protected.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">While I gladly respond to people on social media regardless of their tone, we try to aim for a higher standard of decorum and respect on the mailing lists.<br></blockquote><div><br></div><div>I'm not good at English and I'm using Google Translate to write the email, so my tone may be more straightforward.</div><div>If I've offended you before, I apologize for that.<br></div><div><br></div><div>But now I do get annoyed because you're clearly exaggerating the role of integrity.<br></div><div>I need to calm down for a while to avoid being dominated by my emotions.<br></div><div><br></div><div>Glavo</div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Sep 2, 2023 at 1:35 AM Ron Pressler <<a href="mailto:ron.pressler@oracle.com">ron.pressler@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
> <br>
>> On Sep 1, 2023, at 5:08 AM, Ron Pressler <<a href="mailto:ron.pressler@oracle.com" target="_blank">ron.pressler@oracle.com</a>> wrote:<br>
>> <br>
>> In other words, it’s extremely hard for the author to know whether their application is carrying knives or not, and if so where to look if its handling them safely.<br>
> <br>
> Indeed. How does the flag solve this problem?<br>
> <br>
<br>
A future release may require the flag to allow native access. In that future application authors know with certainty that unless they've provided the flag, their application isn’t using any knives.<br>
<br>
For the moment, however, we’re talking about warnings. The warnings let you know if your program uses JNI, and, as the JEP says, we may also add an additional capability to jdeps to help you statically analyse your codebase for uses of restricted and native methods.<br>
<br>
— Ron</blockquote></div>