RFR(jdk10/jaxp) 8163121: BCEL: update to the latest 6.0 release

Daniel Fuchs daniel.fuchs at oracle.com
Fri Aug 11 10:31:40 UTC 2017


Hi Joe,

Thanks, looks fine now!

best regards,

-- daniel

On 10/08/2017 04:13, huizhe wang wrote:
> 
> On 8/9/2017 6:30 AM, Daniel Fuchs wrote:
>> Hi Joe,
>>
>> This not an easy patch to review ;-)
> 
> Indeed, took several minutes just to copy the webrevs :-)
> 
>>
>> Thanks for explaining how you arrived at the final result.
>> The method you used as described below seems right.
>>
>> I haven't clicked through all the files, but instead I had a
>> look at  all the JIRA issues revealed by:
>>
>> hg log -k share/classes/com/sun/org/apache/bcel | grep summary | grep 
>> -v Merge
>>
>> to see if any of them might have been reverted/invalidated.
>> So far so good, most of them still seem to be present in
>> your changes, but I have a doubt about these two:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8062608
>> https://bugs.openjdk.java.net/browse/JDK-8064516
>>
>> Has the issue been fixed upstream in a different way, or
>> is the issue no longer relevant, or is it going to appear
>> again with this patch?
> 
> Good catch!  The original patch came from BCEL, so I indeed assumed this 
> update would get things the right way. As I double-checked, it turns out 
> the additional patches as you listed above fixed issues that BCEL 6.0 
> hasn't. These issues were revealed by JRocket, did not affect JAXP, 
> however, they are still good changes that we shall keep. I've gone 
> through both of the above to put these changes back into the code.
> 
>>
>> Also looking at the JDK fixes brought my attention to
>> java.xml/share/classes/jdk/xml/internal/SecuritySupport.java
>>
>> Your changes are adding these two methods:
>> I don't know what they are for - and I am not sure they would
>> work (the brutal cast to ListResourceBundle is dubious).
>> Fortunately they don't seem to be called by the new code (I
>> grepped the global patch file). Can you remove them?
> 
> This is because I removed 
> com/sun/org/apache/bcel/internal/util/SecuritySupport.java that is no 
> longer used by any classes in our version of BCEL. However, a XPath 
> class (XPATHMessages.java) was still using it, I therefore moved the 
> getResourceBundle method that was used into the jdk util class before 
> removing the one in bcel.
> 
> The ListResourceBundle cast was needed since the XPATHMessages variable 
> was originally declared ListResourceBundle. I've changed that to 
> ResourceBundle and removed the cast.
> 
> Here's the updated webrev:
> http://cr.openjdk.java.net/~joehw/jdk10/8163121/webrev01/
> 
> Thanks,
> Joe
> 
>>
>>  234     /**
>>  235      * Gets a resource bundle using the specified base name, the 
>> default locale, and the caller's class loader.
>>  236      * @param bundle the base name of the resource bundle, a 
>> fully qualified class name
>>  237      * @return a resource bundle for the given base name and the 
>> default locale
>>  238      */
>>  239     public static ListResourceBundle getResourceBundle(String 
>> bundle) {
>>  240         return getResourceBundle(bundle, Locale.getDefault());
>>  241     }
>>  242
>>  243     /**
>>  244      * Gets a resource bundle using the specified base name and 
>> locale, and the caller's class loader.
>>  245      * @param bundle the base name of the resource bundle, a 
>> fully qualified class name
>>  246      * @param locale the locale for which a resource bundle is 
>> desired
>>  247      * @return a resource bundle for the given base name and locale
>>  248      */
>>  249     public static ListResourceBundle getResourceBundle(final 
>> String bundle, final Locale locale) {
>>  250         return 
>> AccessController.doPrivileged((PrivilegedAction<ListResourceBundle>) 
>> () -> {
>>  251             try {
>>  252                 return 
>> (ListResourceBundle)ResourceBundle.getBundle(bundle, locale);
>>  253             } catch (MissingResourceException e) {
>>  254                 try {
>>  255                     return 
>> (ListResourceBundle)ResourceBundle.getBundle(bundle, new Locale("en", 
>> "US"));
>>  256                 } catch (MissingResourceException e2) {
>>  257                     throw new MissingResourceException(
>>  258                             "Could not load any resource bundle 
>> by " + bundle, bundle, "");
>>  259                 }
>>  260             }
>>  261         });
>>  262     }
>>
>> best regards,
>>
>> -- daniel
>>
>> On 09/08/2017 00:43, huizhe wang wrote:
>>> Please review an update to BCEL release 6.0 [1].
>>>
>>> The sources are basically that from the release bundle with the 
>>> following exceptions:
>>>
>>>   * Classes that were not included in the original version are excluded;
>>>   * Classes that are deprecated in BCEL 6.0 are removed;
>>>   * Classes that are used only for the above classes are also removed;
>>>   * Many fields were deprecated in BCEL 6.0 in order to discourage
>>>     direct references, in the JDK, I've removed such deprecation and
>>>     instead made them private/final.
>>>   * BCEL 6.0 applied 'final' to global/local variables pretty
>>>     extensively, which were the only changes to many of the classes.
>>>   * A few Transform classes were updated to adopt to BCEL 6.0.
>>>   * JDK-8162527 [JAXP] XSLT: Investigate why bumping the default class
>>>     file version to 49 (Java 5.0) or higher for bytecode generation
>>>     doesn't work [2] has not been resolved as of this update. Additional
>>>     change [3] is needed before we can move up to possibly Java 5.0.
>>>
>>>
>>> BCEL has been a very old component. This update therefore removed a 
>>> large amount of warnings (900+), which is very helpful to the 
>>> cleaning effort.
>>>
>>> All tests passed, including the JCK.
>>>
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8163121
>>> webrevs: http://cr.openjdk.java.net/~joehw/jdk10/8163121/webrev/
>>>
>>>
>>> [1] https://archive.apache.org/dist/commons/bcel/RELEASE-NOTES.txt
>>> [2] https://bugs.openjdk.java.net/browse/JDK-8162527
>>> [3] https://bugs.openjdk.java.net/browse/JDK-8185991
>>>
>>> Thanks,
>>> Joe
>>>
>>
> 



More information about the core-libs-dev mailing list