On 17 November 2010 07:17, Ralph Goers <ralph.go...@dslextreme.com> wrote:
>
> On Nov 16, 2010, at 4:19 PM, sebb wrote:
>
>> On 17 November 2010 00:06, ralph.goers @dslextreme.com
>> <ralph.go...@dslextreme.com> wrote:
>>> I'm not sure why the tool didn't catch it, but a few methods now return
>>> Map<String, Object> where they previously returned Map. I didn't check for
>>> generics other than "Map<".
>>
>> Surely these are equivalent at run-time?
>>
>> Generics are a compile-time feature.
>>
>
> See 
> http://www.jroller.com/scolebourne/entry/java_generics_migration_compatibility
>  and then take a look at the several changes made to add generics to 
> Comparable.  These changes don't seem to be binary compatible. I'm surprised 
> they didn't show up in the report you ran.

Maybe Clirr does not check fully - after all it was written before Java 5.

But I agreed that once generics are introduced, one needs to be
careful to ensure that source compatibility is also maintained.

Prior to Java 5, I think source compatibility was probably guaranteed
if the code was binary compatible. I don't think it is now.
[The reverse has never been the case - e.g. changing a void method to
return boolean won't affect recompilation, but will affect run-time as
the signature changes - so the method can no longer be found.]

There probably needs to be a tool to check source compatibility.

> I've found several other articles that describe how, under certain 
> circumstances, type erasure can result in a different type being used than 
> existed in a prior, non-generified version of the code. I've not fully 
> inspected all teh changes to determine if any of those cases are present.

Perhaps add the links to a Wiki page where we can collect any such info?

> I'm not suggesting we change these. Since we are adopting Java 5 I would 
> prefer to change these now and move forward.

To change or not to change? Sorry, cannot understand the last paragraph.

> Ralph
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

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

Reply via email to