How can I solve Modularity related issue ?
lance.andersen at oracle.com
Mon Oct 1 11:21:38 UTC 2018
I will be pushing the fix back later today
> On Oct 1, 2018, at 3:56 AM, Ichiroh Takiguchi <takiguc at linux.vnet.ibm.com> wrote:
> Hello Alan and Mandy.
> I appreciate your explanation and action.
> Also I read Lance's mail.
> I verified Lance's patch, it worked...
> Many thanks,
> Ichiroh Takiguchi
> IBM Japan, Ltd.
> On 2018-09-29 09:35, Mandy Chung wrote:
>> On 9/28/18 1:59 AM, Alan Bateman wrote:
>>> On 28/09/2018 08:28, Ichiroh Takiguchi wrote:
>>>> One of JDBC application with JavaDB did not work on JDK12.
>>>> Following exception happened:
>>>> java.sql.SQLException: No suitable driver found for jdbc:derby:xxxxxx
>>>> I assume, this issue related Modularity feature...
>>>> I could not solve this issue by myself.
>>> I suspect this is related to the de-privileging of the java.sql.rowset module in JDK 9. The java.sql.rowset module is mapped to the platform class loader whereas historically the types in this module were defined by the boot class loader. This is relevant because java.sql.rowset is making use of the java.sql.DriverManager (in the java.sql module) and DriverManager is caller sensitive so it sees the caller coming from java.sql.rowset. This is problematic because the JDBC driver is on the class path and is not visible to the caller's class loader. The visibility check has always been in JDBC and I suspect this usage in the JDBC Rowset implementation only worked by accident in the past because DriverManager used the TCCL when called from code defined to the bootstrap class loader. I'm sure Lance will jump in but all previous investigations into changing behavior going back 20+ has come to nothing due to compatibility concerns.
>> It does look like related to the de-privileging of java.sql.rowset
>> module. JDBC rowset implementation just happened to work in the past
>> as it was defined to the bootstrap class loader.
>> I have created JBS issue for this:
<http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>
More information about the core-libs-dev