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. 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 >> >>