Code review request: 7146763: Warnings cleanup in the sun.rmi and related packages

Kurchi Hazra kurchi.subhra.hazra at oracle.com
Wed Feb 22 21:25:27 UTC 2012


Hi Remi,

   Thanks for your review. Please see my comment:

On 2/22/2012 10:01 AM, Rémi Forax wrote:
> Hi Kurchi, hi all,
>
> in ReliableLog, you can get ride of the @SupressWarnings,
> getLogClassConstructor should return a Constructor<?> and not a 
> Constructor<? extends LogFile>,
> the field logClassConstructor should be typed Constructor<?> and
> in openLogFile, the log should be constructed like this
>
> log = (logClassConstructor == null ?
>                     new LogFile(logName, "rw") :
>                     (LogFile)logClassConstructor.newInstance(logName, 
> "rw"));
>
>
> The idea is that a cast on a LogFile is typesafe but not a cast on a 
> Constructor<? extends LogFile>.

  If I change the return type to Constructor<?>, I get the following error:
../../../../src/share/classes/sun/rmi/log/ReliableLog.java:122: error: 
incompatible types
         logClassConstructor = getLogClassConstructor();
                                                     ^
   required: Constructor<? extends LogFile>
   found:    Constructor<CAP#1>
   where CAP#1 is a fresh type-variable:
     CAP#1 extends Object from capture of ?
And the following warning:

../../../../src/share/classes/sun/rmi/log/ReliableLog.java:350: warning: 
[unchecked] unchecked cast
                             cl.getConstructor(String.class, String.class);
                                              ^
   required: Constructor<? extends LogFile>
   found:    Constructor<CAP#1>
   where CAP#1 is a fresh type-variable:
     CAP#1 extends Object from capture of ?


Thanks,
Kurchi


>
> In the same file, the try-with-resources is not correcly used
>
> try (DataOutputStream out = new DataOutputStream(new 
> FileOutputStream(fName(name)))) {
>     writeInt(out, version);
> }
>
> should be
>
> try (FileOutputStream  fos = new FileOutputStream(fName(name));
>      DataOutputStream out = new DataOutputStream(fos)) {
>     writeInt(out, version);
> }
>
> because if new DataOutputStream throws an exception, the FileOutputStream
> will not be closed.
> Basically, all stream filters should have it's own line in a 
> try-with-resources.
>
> cheers,
> Rémi
>
> On 02/22/2012 12:16 PM, Chris Hegarty wrote:
>> Kurchi,
>>
>> Great work. I've been through the complete webrev and I think it 
>> looks good. Just a few minor comments:
>>
>>  - there are API changes, but only in sun private implementation
>>    classes, so this should be fine.
>>
>>  - Minor indentation nit where method declaration return type
>>    was generified. The method args on subsequent lines should be
>>    equally indented. Example LoaderHandler.java L152:
>>
>>       public static Class<?> loadClass(String codebase, String name,
>> >>>>  ClassLoader defaultLoader)
>>
>>  - There are opportunities to use auto boxing/unboxing
>>
>> >: diff RMIGenerator.java
>>    99c99
>> <                     version = versionOptions.get(arg);
>>    ---
>> >                     version = (versionOptions.get(arg)).intValue();
>>
>>    ConnectionMultiplexer.java
>> >: diff ConnectionMultiplexer.java ConnectionMultiplexer.java.1
>>    133a134
>> <             Integer idObj;
>>    150c151,152
>> >                     info = connectionTable.get(id);
>>    ---
>> <                     idObj = new Integer(id);
>> <                     info = connectionTable.get(idObj);
>>    158c160
>> >                         connectionTable.put(id, info);
>>    ---
>> <                         connectionTable.put(idObj, info);
>>    .....
>>
>> -Chris.
>>
>> On 22/02/2012 05:50, Kurchi Hazra wrote:
>>> Corrected the subject line.
>>>
>>>
>>> Hi,
>>>
>>> The following webrev removes warnings in sun.rmi.* packages. I have
>>> neglected nearly all
>>> deprecation warnings, since this code uses deprecated classes such as
>>> java.rmi.server.LogStream
>>> with no suggested replacements. I have included -Xlint:all,-deprecation
>>> as an option instead
>>> in the appropriate Makefiles.
>>>
>>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7146763
>>> Webrev: http://cr.openjdk.java.net/~khazra/7146763/webrev.00/
>>>
>>>
>>> Thanks,
>>> Kurchi
>

-- 
-Kurchi




More information about the core-libs-dev mailing list