You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Rick Hillegas <ri...@gmail.com> on 2016/05/19 02:24:04 UTC
Re: Early Access builds of JDK 9 b118 & JDK 9 with Project Jigsaw,
b118 (#4987) are available on java.net
Hi Rory,
I have tried building Derby with b118. This produced a new boatload of
deprecation warnings which do not seem to be covered by the summary
description of the changes at
http://download.java.net/java/jdk9/changes/jdk-9+118.html. The
deprecations are not described in the jdk 9 javadoc at
http://download.java.net/java/jdk9/docs/api/index.html. Can you
recommend any best practices for ameliorating these deprecation
warnings? A summary of these deprecation warnings follows:
o Deprecation of java.util.Observer and java.util.Observable
o Deprecation of Class.newInstance()
o Deprecation of various constants and methods in BigDecimal, including
ROUND_DOWN, setScale(int,int), divide(BigDecimal,int,int),
Thanks,
-Rick
Re: Early Access builds of JDK 9 b118 & JDK 9 with Project Jigsaw,
b118 (#4987) are available on java.net
Posted by Rick Hillegas <ri...@gmail.com>.
Thanks for your help, Dalibor and Rory. At this point, we have updated
Derby so that it compiles without any deprecation warnings on early
access build 118 of JDK 9. I wanted to share my experience with you. For
more detail, please see https://issues.apache.org/jira/browse/DERBY-6856
o Deprecating Class.newInstance() - Eliminating these warnings was an
enormous task on a large, old code base like Derby, whose oldest code
dates from Java 1.2. Invocations have to be replaced with more verbose
code and extra exceptions have to be caught and propagated up the call
stack. For reasons which I don't understand, I had better luck using
Class.getConstructor().newInstance() than
Class.getDeclaredConstructor().newInstance(). But the former replacement
code requires you to make constructors public. For some code bases, that
may introduce security problems which are worse than the security
problem being addressed by this deprecation. I hope that IDEs and the
release notes for JDK 9 will provide some guidance for how to handle
these issues.
o Deprecating java.util.Observable and java.util.Observer - Two
ameliorations are recommended at
http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-April/040436.html.
The first suggestion (use the awt event model) runs very much counter to
the whole intent of Jigsaw. That is because pulling in awt can bloat up
an application with large, otherwise unneeded libraries. Using awt was
out of the question for Derby, given that the community had already
invested a great deal of effort in paring back Derby's dependencies in
order to let the code run on JDK 8 compact profile 2. That left us with
the other option: write your own replacement classes. If a lot of people
end up having to write the same replacement code, then that argues for
leaving this small but useful functionality in the JDK. I think that the
people who advocated for this deprecation did not have good visibility
into how widely these classes are being used in the wild. I recommend
that this deprecation be re-evaluated.
Thanks,
-Rick
On 5/19/16 5:02 AM, dalibor topic wrote:
>
>
> On 19.05.2016 04:24, Rick Hillegas wrote:
>> Hi Rory,
>>
>> I have tried building Derby with b118. This produced a new boatload of
>> deprecation warnings which do not seem to be covered by the summary
>> description of the changes at
>> http://download.java.net/java/jdk9/changes/jdk-9+118.html.
>
> Thanks Rick, it seems that the list of changes is incomplete. I'll
> pass that on to the team publishing that list.
>
>> The
>> deprecations are not described in the jdk 9 javadoc at
>> http://download.java.net/java/jdk9/docs/api/index.html.
>
> Indeed, the docs there are out of date (b116) - I'll pass that on as
> well, thanks!
>
>> Can you
>> recommend any best practices for ameliorating these deprecation
>> warnings? A summary of these deprecation warnings follows:
>>
>> o Deprecation of java.util.Observer and java.util.Observable
>
> See
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-April/040436.html
>
>> o Deprecation of Class.newInstance()
>
> See
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-April/040283.html
>
>>
>> o Deprecation of various constants and methods in BigDecimal, including
>> ROUND_DOWN, setScale(int,int), divide(BigDecimal,int,int),
>
> See
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-May/040707.html
>
> cheers,
> dalibor topic
Re: Early Access builds of JDK 9 b118 & JDK 9 with Project Jigsaw,
b118 (#4987) are available on java.net
Posted by Rick Hillegas <ri...@gmail.com>.
Thanks, Dalibor.
Cheers,
-Rick
On 5/19/16 5:02 AM, dalibor topic wrote:
>
>
> On 19.05.2016 04:24, Rick Hillegas wrote:
>> Hi Rory,
>>
>> I have tried building Derby with b118. This produced a new boatload of
>> deprecation warnings which do not seem to be covered by the summary
>> description of the changes at
>> http://download.java.net/java/jdk9/changes/jdk-9+118.html.
>
> Thanks Rick, it seems that the list of changes is incomplete. I'll
> pass that on to the team publishing that list.
>
>> The
>> deprecations are not described in the jdk 9 javadoc at
>> http://download.java.net/java/jdk9/docs/api/index.html.
>
> Indeed, the docs there are out of date (b116) - I'll pass that on as
> well, thanks!
>
>> Can you
>> recommend any best practices for ameliorating these deprecation
>> warnings? A summary of these deprecation warnings follows:
>>
>> o Deprecation of java.util.Observer and java.util.Observable
>
> See
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-April/040436.html
>
>> o Deprecation of Class.newInstance()
>
> See
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-April/040283.html
>
>>
>> o Deprecation of various constants and methods in BigDecimal, including
>> ROUND_DOWN, setScale(int,int), divide(BigDecimal,int,int),
>
> See
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-May/040707.html
>
> cheers,
> dalibor topic
Re: Early Access builds of JDK 9 b118 & JDK 9 with Project Jigsaw,
b118 (#4987) are available on java.net
Posted by Rick Hillegas <ri...@gmail.com>.
Thanks, Dalibor!
On 5/24/16 3:22 AM, dalibor topic wrote:
> Hi Rick,
>
> On 19.05.2016 14:02, dalibor topic wrote:
>> On 19.05.2016 04:24, Rick Hillegas wrote:
>>> I have tried building Derby with b118. This produced a new boatload of
>>> deprecation warnings which do not seem to be covered by the summary
>>> description of the changes at
>>> http://download.java.net/java/jdk9/changes/jdk-9+118.html.
>>
>> Thanks Rick, it seems that the list of changes is incomplete. I'll pass
>> that on to the team publishing that list.
>
> This has been fixed for b119:
> http://download.java.net/java/jdk9/changes/jdk-9+119.html .
>
>>> The
>>> deprecations are not described in the jdk 9 javadoc at
>>> http://download.java.net/java/jdk9/docs/api/index.html.
>>
>> Indeed, the docs there are out of date (b116) - I'll pass that on as
>> well, thanks!
>
> This should be fixed now. Thanks again for reporting it!
>
> cheers,
> dalibor topic