On Wed, Dec 25, 2024 at 10:41 AM Gary Gregory <garydgreg...@gmail.com>
wrote:

> In ftpserver 1.2.0, the class UserMetadata is in
> org.apache.ftpserver.usermanager.impl.
> In ftpserver 1.2.1-SNAPSHOT, the class UserMetadata is in
> org.apache.ftpserver.usermanager.
>
> The breaks BC.
>

If I fix the above BC error and apply
https://github.com/apache/mina-ftpserver/pull/37, then the build passes.

Does the PR look good and are we OK with me fixing the BC and applying the
PR.

After the above, I'd create a weekly dependabot job on GH CI to test
available dependency bumps.

TY,
Gary


>
> Gary
>
>
> On Wed, Dec 25, 2024 at 10:37 AM Gary Gregory <garydgreg...@gmail.com>
> wrote:
>
>> The BC break appears to be in org.apache.mina.filter.ssl.SslFilter.
>>
>> Gary
>>
>>
>> On Wed, Dec 25, 2024 at 10:36 AM Gary D. Gregory <ggreg...@apache.org>
>> wrote:
>>
>>> Hi All and Happy Hols,
>>>
>>> My big picture: I am _trying_ to migrate Apache Commons VFS tests from
>>> SSH Core 0.8.0 (!) and Mina Core 2.1.x.
>>>
>>> I've given up for now on migrating from SSH Core 0.8.0 to 2.x because it
>>> seems like a rewrite beyond my sshd foo ATM.
>>>
>>> To migrate from Mina Core 2.1.10 to 2.2.4 there is some behavioral
>>> breakage that I am trying to resolve.
>>>
>>> One of the items that sticks out is:
>>>
>>> Exception in thread "pool-3-thread-1" java.lang.NoSuchFieldError: Class
>>> org.apache.mina.filter.ssl.SslFilter does not have member field
>>> 'org.apache.mina.core.session.AttributeKey DISABLE_ENCRYPTION_ONCE'
>>>         at
>>> org.apache.ftpserver.command.impl.AUTH.secureSession(AUTH.java:125)
>>>         at org.apache.ftpserver.command.impl.AUTH.execute(AUTH.java:106)
>>>         at
>>> org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:211)
>>>         at
>>> org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:62)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>>>         at
>>> org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>>>         at
>>> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106)
>>>         at
>>> org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:162)
>>>         at
>>> org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:84)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>>>         at
>>> org.apache.mina.filter.codec.AbstractProtocolDecoderOutput.flush(AbstractProtocolDecoderOutput.java:64)
>>>         at
>>> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:249)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49)
>>>         at
>>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128)
>>>         at
>>> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106)
>>>         at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89)
>>>         at
>>> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:763)
>>>         at
>>> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:755)
>>>         at
>>> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:695)
>>>         at java.base/java.lang.Thread.run(Thread.java:1575)
>>>
>>> So that means that Mina's ftpserver is not compatible with mina-core,
>>> not great.
>>>
>>> So I go over to ftpserver and try to compile 1.2.x and it breaks because
>>> we've (at least) move a public class from one package to another, _not in a
>>> major release_, and JApiCmp is set up to fail on binary incompatibilities.
>>>
>>> So:
>>> - Should I fix 1.2.1-SNAPSHOT to make it not break BC?
>>> - Should we declare a BC policy or just keep randomly breaking stuff?
>>>
>>> TY!
>>> Gary
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
>>> For additional commands, e-mail: dev-h...@mina.apache.org
>>>
>>>

Reply via email to