commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: [lang] Time Package: Binary Breaking Changes Between 3.4 and Master
Date Sun, 12 Jun 2016 11:22:44 GMT
On 12 June 2016 at 08:41, Pascal Schumacher <pascalschumacher@gmx.net> wrote:
> Hello everybody,
>
> as I understand it lang is currently not in releasable state. Clirr reports
> these errors:
>
> [ERROR] 7012: org.apache.commons.lang3.time.DateParser: Method 'public
> boolean parse(java.lang.String, java.text.ParsePosition,
> java.util.Calendar)' added to Interface

Doesn't have @since marker...

Also it seems a strange method to add to the interface.
Maybe it could just be dropped from the interface?

> [ERROR] 7012: org.apache.commons.lang3.time.DatePrinter: Methode 'public
> java.lang.Appendable format(long, java.lang.Appendable)' added to Interface
> [ERROR] 7012: org.apache.commons.lang3.time.DatePrinter: Methode 'public
> java.lang.Appendable format(java.util.Date, java.lang.Appendable)' added to
> Interface
> [ERROR] 7012: org.apache.commons.lang3.time.DatePrinter: Methode 'public
> java.lang.Appendable format(java.util.Calendar, java.lang.Appendable)' added
> to Interface

Interface method additions break source compatibility, not binary compat.

There's no default abstract implementation of the interface, so it is
possible that end users may have implemented the interface.
If that seems very unlikely we could just document the change.

Or the additions could go into a separate interface or subinterface
(this tends to get messy).

Or the code could be updated to Java 8, which allows interfaces to
have implementations.

> [ERROR] 7005: org.apache.commons.lang3.time.FastDatePrinter: Parameter type
> 2 changed from 'protected java.lang.StringBuffer
> applyRules(java.util.Calendar, java. lang.StringBuffer)' to
> java.lang.Appendable
> [ERROR] 7006: org.apache.commons.lang3.time.FastDatePrinter: Return type of
> method 'protected java.lang.StringBuffer applyRules(java.util.Calendar,
> java.lang.StringBuffer)' changed to java.lang.Appendable

This could be fixed by adding a new method with a new name and
deprecating the old method.

This does affect binary compat.

> Any ideas on how to fix this?
>
> Thanks,
>
> Pascal
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
>

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


Mime
View raw message