[ 
https://issues.apache.org/jira/browse/LUCENE-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12839396#action_12839396
 ] 

Uwe Schindler commented on LUCENE-2285:
---------------------------------------

Hi Shai,

sorry, in my opinion the discussion seems to be stuck, as both of us have a 
personal opinion about the casts and it seems that both of us always presenting 
the same arguments, so in my opinion, someone else should jump into the 
discussion. My point is simple that I want to have the casts for 
"documentation" purposes and "safety" reasons, so later changes in the code 
will be obvious and anybody reading the code is able to follow. This only 
affects casts to (long) and (int) <-> (char).

I presented my arguments: Especially for backwards compatibility, as long as 
the 2.9 branch is maintained (the argument about casting int -> char in code 
that may get merged to 2.9 branch): I tested it and broke my 2.9 build: A JDK 5 
compiler (even with -target 1.4 and -source 1.4) would use the Character 
methods taking int params, as the JDK5 has it in their rt.jar. If you compile 
with a JDK 1.4 compiler, the compiler will automatically cast to char, as no 
int method is available. I tested this in my 2.9 branch: i removed the casts at 
some places, the code compiled fine (with 1.5 compiler), but when running the 
tests with JDK 1.4, MethodNotFound exceptions occurred. When I also compiled 
with the 1.4 compiler, the resulting jar was fine. So forcing the compiler to 
use (char) methods or (int) methods especially in those Unicode stuff is 
important. Maybe you understand my argument now. And also when going from 1.5 
to 1.6 (so compiling 1.5 code in 1.6) may break in the same way. So I prefer to 
tell the compiler the method to use.

And for these reasons, I don't understand why you insist in removing those 
casts. Eclipse declaring them as warnings is in my opinion wrong and should 
maybe an info message, as everybody is free to add casts and not rely on 
automatic casting. The same affects autoboxing, if you dont like autoboxing you 
should be free to explicitely say how the values should be converted. As 
Lucenes Collectors are hotspots, automboxing without control may affect 
performance! So adding explicit boxing and explicit casts is a good idea, 
although *YOU* think they are wrong or unneeded.

As I dont use eclipse, I have no idea about the correct parameter; I would 
suggest to add a @SuppressWarnings("foobar") for supressing those cast messages 
in the affected classes. Would this be an option? You will get no warnings and 
I can preserve my casts.

If you have other improvements in non-generated code I would be happy to commit 
the patches. I also merged your patch yesterday to the flex branch, so Mike and 
Robert can also use it in the flexible indexing branch. So again thank you for 
the improvements.

> Code cleanup from all sorts of (trivial) warnings
> -------------------------------------------------
>
>                 Key: LUCENE-2285
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2285
>             Project: Lucene - Java
>          Issue Type: Improvement
>            Reporter: Shai Erera
>            Assignee: Uwe Schindler
>            Priority: Minor
>             Fix For: 3.1
>
>         Attachments: LUCENE-2285-remaining+generated.patch, 
> LUCENE-2285-remaining.patch, LUCENE-2285.patch, LUCENE-2285.patch, 
> LUCENE-2285.patch
>
>
> I would like to do some code cleanup and remove all sorts of trivial 
> warnings, like unnecessary casts, problems w/ javadocs, unused variables, 
> redundant null checks, unnecessary semicolon etc. These are all very trivial 
> and should not pose any problem.
> I'll create another issue for getting rid of deprecated code usage, like 
> LuceneTestCase and all sorts of deprecated constructors. That's also trivial 
> because it only affects Lucene code, but it's a different type of change.
> Another issue I'd like to create is about introducing more generics in the 
> code, where it's missing today - not changing existing API. There are many 
> places in the code like that.
> So, with you permission, I'll start with the trivial ones first, and then 
> move on to the others.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to