accord issueshttps://gitlab.ow2.org/accord/accord/-/issues2018-09-21T20:38:56Zhttps://gitlab.ow2.org/accord/accord/-/issues/9Npe on OdetteFtpClientTest#testSendOutgoingFileTransferRequest() test case2018-09-21T20:38:56ZRafael MarinsNpe on OdetteFtpClientTest#testSendOutgoingFileTransferRequest() test caseRunning org.neociclo.odetteftp.client.OdetteFtpClientTest
[15/12/2009 09:01:53] [main] DEBUG eftp.test.EmbeddedTestTemplate - EmbeddedTestTemplate activated shutdownHook callback to clean up temp directories.
[15/12/2009 09:01:53] [main]...Running org.neociclo.odetteftp.client.OdetteFtpClientTest
[15/12/2009 09:01:53] [main] DEBUG eftp.test.EmbeddedTestTemplate - EmbeddedTestTemplate activated shutdownHook callback to clean up temp directories.
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - Starting ODETTE-FTP service...
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - ODETTE-FTP service listening on 0.0.0.0/0.0.0.0:13305
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - ODETTE-FTP service started
java.lang.NullPointerException
at org.neociclo.odetteftp.test.EmbeddedTestTemplate.runTransfer(EmbeddedTestTemplate.java:176)
at org.neociclo.odetteftp.client.OdetteFtpClientTest.testSendOutgoingFileTransferRequest(OdetteFtpClientTest.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - Stopping ODETTE-FTP service...
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - ODETTE-FTP service stopped
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.102 sec <<< FAILURE!
testSendOutgoingFileTransferRequest(org.neociclo.odetteftp.client.OdetteFtpClientTest) Time elapsed: 0.097 sec <<< FAILURE!
java.lang.AssertionError: Exception thrown on transfer() method.
at org.junit.Assert.fail(Assert.java:91)
at org.neociclo.odetteftp.test.EmbeddedTestTemplate.runTransfer(EmbeddedTestTemplate.java:179)
at org.neociclo.odetteftp.client.OdetteFtpClientTest.testSendOutgoingFileTransferRequest(OdetteFtpClientTest.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
https://gitlab.ow2.org/accord/accord/-/issues/11Provide oftp api as OSGI bundle2018-09-21T20:38:56ZRafael MarinsProvide oftp api as OSGI bundlehttps://gitlab.ow2.org/accord/accord/-/issues/13Add tests to load the oftp api as OSGI bundle2018-09-21T20:38:56ZRafael MarinsAdd tests to load the oftp api as OSGI bundlehttps://gitlab.ow2.org/accord/accord/-/issues/15Implement Event-based on-the-fly processors execution2018-09-21T20:38:56ZRafael MarinsImplement Event-based on-the-fly processors executionOFTP2 crypto & compression processing are should actually be performed in offline mode. An event listener based processors could help to implement on-the-fly crypto & compression processing.
It requires a clear form of individual file t...OFTP2 crypto & compression processing are should actually be performed in offline mode. An event listener based processors could help to implement on-the-fly crypto & compression processing.
It requires a clear form of individual file transfer error handling. Have to determine that form.https://gitlab.ow2.org/accord/accord/-/issues/17Make sure that intermediate files generated by processors are deleted2018-09-21T20:38:56ZRafael MarinsMake sure that intermediate files generated by processors are deletedhttps://gitlab.ow2.org/accord/accord/-/issues/19Add file transfer event listener test cases2018-09-21T20:38:56ZRafael MarinsAdd file transfer event listener test caseshttps://gitlab.ow2.org/accord/accord/-/issues/20Identify and enhance Oftplet & Client API behavior on protocol exception2018-09-21T20:38:56ZRafael MarinsIdentify and enhance Oftplet & Client API behavior on protocol exceptionAlso add more topics to errors handling chapter as in #16.Also add more topics to errors handling chapter as in #16.https://gitlab.ow2.org/accord/accord/-/issues/21Complete the OdetteFtpClientFactory and exemplify its use on docs2018-09-21T20:38:56ZRafael MarinsComplete the OdetteFtpClientFactory and exemplify its use on docshttps://gitlab.ow2.org/accord/accord/-/issues/27Configure oftp api release mechanism2018-09-21T20:38:56ZRafael MarinsConfigure oftp api release mechanismBy the means of maven release plugin.By the means of maven release plugin.https://gitlab.ow2.org/accord/accord/-/issues/30Rework client ProcessorFactoryBuilder after removing Commons Discovery depend...2018-09-21T20:38:56ZRafael MarinsRework client ProcessorFactoryBuilder after removing Commons Discovery dependencyMethod returns null.Method returns null.https://gitlab.ow2.org/accord/accord/-/issues/31Add SecureEmbeddedTestTemplate option to enable Secure Authentication on serv...2018-09-21T20:38:56ZRafael MarinsAdd SecureEmbeddedTestTemplate option to enable Secure Authentication on server sideThe embedded server (and its Oftplet impl) should receive a kind of session parameters to setup during Oftplet.init() method.The embedded server (and its Oftplet impl) should receive a kind of session parameters to setup during Oftplet.init() method.https://gitlab.ow2.org/accord/accord/-/issues/40Add event listeners in the core OFTP api2018-09-21T20:38:57ZRafael MarinsAdd event listeners in the core OFTP apiUse kind of incoming request file transfer to handle the file receiving, in accepting or rejecting it. Other important feature is provide the file transfer progress event on every data block exchanged. It may replace the purpose of Oftpl...Use kind of incoming request file transfer to handle the file receiving, in accepting or rejecting it. Other important feature is provide the file transfer progress event on every data block exchanged. It may replace the purpose of Oftplet if directly implemented in protocol handlers.https://gitlab.ow2.org/accord/accord/-/issues/55Generated Virtual File Time stamp does not follow the specs2018-09-21T20:38:57ZPatrick DessalleGenerated Virtual File Time stamp does not follow the specsThe Virtual File Time stamp currently not generated according to the specs.
The specs (RFC 5024) say that HHMMSSccc means :
HH : hours
MM : minutes
SS : seconds
cccc : counter (0001-9999) which gives higher resolution.
Currently, the co...The Virtual File Time stamp currently not generated according to the specs.
The specs (RFC 5024) say that HHMMSSccc means :
HH : hours
MM : minutes
SS : seconds
cccc : counter (0001-9999) which gives higher resolution.
Currently, the code is generating/parsing the cccc as milliseconds which by definition are limited to 3 digits (so the last c is always 0 and/or is not taken into account). This also means that the counter generates a unique counter number (limiting the protocol to 9999 messages per seconds).
So currently, the code could generate 2 messages with the same counter number if the messages are sent at the exact same millisecond (improbable but not impossible). And also technically the counter should be sequential (but nobody will care I think).
I currently need this counter to be correct to match the message that is sent and the EERP/NERP that is received.
I've set this to a minor priority. I believe that this should not be too complex to implement with a mutex for the counter but it shouldn't be an issue unless someone uses the system with some really heavy load (more than 999 messages a second or two at the same millisecond).oftp-1.2.0.RC1https://gitlab.ow2.org/accord/accord/-/issues/56Improper parsing of SFIDSIGN2018-09-21T20:38:57ZPatrick DessalleImproper parsing of SFIDSIGNThe SFIDSIGN is not properly parsed. It does an Boolean.parseBoolean() while the value is 'Y' or 'N'.
However, Boolean.parseBoolean() only considers "true" as being "true" (with case insensitivity)
Find in attachment a patch.The SFIDSIGN is not properly parsed. It does an Boolean.parseBoolean() while the value is 'Y' or 'N'.
However, Boolean.parseBoolean() only considers "true" as being "true" (with case insensitivity)
Find in attachment a patch.oftp-1.2.0.RC1https://gitlab.ow2.org/accord/accord/-/issues/57Impossible to sign an EERP2010-10-11T18:16:12ZPatrick DessalleImpossible to sign an EERPThe code to generate the signature of the EERP is not correct. It actually fails trying to find an unexisting EERPCREA field. The specs say this is actually an EERPHSH.The code to generate the signature of the EERP is not correct. It actually fails trying to find an unexisting EERPCREA field. The specs say this is actually an EERPHSH.oftp-1.2.0.RC1https://gitlab.ow2.org/accord/accord/-/issues/59EERP Originator and Destination are inverted2010-10-14T14:57:22ZPatrick DessalleEERP Originator and Destination are invertedAccording to the specs (RFC 5024, page 60):
EERPDEST : Originator of the Virtual File
EERPORIG : Final Recipient of the Virtual File
The setNotifBasicInfo() in Odette FTP is not correct as it sets the originator as the vf.getOriginator(...According to the specs (RFC 5024, page 60):
EERPDEST : Originator of the Virtual File
EERPORIG : Final Recipient of the Virtual File
The setNotifBasicInfo() in Odette FTP is not correct as it sets the originator as the vf.getOriginator() and the destination as the vf.getDestination().
Here is a patch to invert this.https://gitlab.ow2.org/accord/accord/-/issues/61Allow to configure session parameters upon responder authentication2010-10-20T13:19:02ZRafael MarinsAllow to configure session parameters upon responder authenticationTo have mailbox specific session parameters set in an Server, we need to develop an use case where upon a responder authentication the session object is available for configuring or an additional callback method is called on the Oftplet ...To have mailbox specific session parameters set in an Server, we need to develop an use case where upon a responder authentication the session object is available for configuring or an additional callback method is called on the Oftplet interface to configure the session parameters before the server replies back with the SSID.
oftp-1.2.0.RC1https://gitlab.ow2.org/accord/accord/-/issues/62Use optional PasswordAuthenticationCallback in client mode2010-10-20T02:40:52ZRafael MarinsUse optional PasswordAuthenticationCallback in client modeWhen coding an app as the Initiator the API is not allowing to check the server OID & Password using the security callbacks, but only setting the server OID in a session variable.
The PasswordAuthenticationCallback must be used in this ...When coding an app as the Initiator the API is not allowing to check the server OID & Password using the security callbacks, but only setting the server OID in a session variable.
The PasswordAuthenticationCallback must be used in this case, but without any further consequences to the protocol logic if it was not provided, as it can continue working without it and it is not mandatory.oftp-1.2.0.RC1https://gitlab.ow2.org/accord/accord/-/issues/63Matching sending Virtual File with the returning EERP/NERP2010-10-20T13:27:22ZRafael MarinsMatching sending Virtual File with the returning EERP/NERPFrom the issue #55 the sentence below has arose this problem. The object passed in the {{OftpletSpeaker}}'s sending file methods ({{onSendFileXxxxx()}}) is not the same instance provided by the {{OftpletSpeaker#nextOftpObjectToSend()}} m...From the issue #55 the sentence below has arose this problem. The object passed in the {{OftpletSpeaker}}'s sending file methods ({{onSendFileXxxxx()}}) is not the same instance provided by the {{OftpletSpeaker#nextOftpObjectToSend()}} method. The reason is that the framework needs to normalize the Virtual File with protocol's specification range of possible values before transmitting.
??"I currently need this counter to be correct to match the message that is sent and the EERP/NERP that is received."??
This is only possible because, internally, the API framework use the {{NormalizedVirtualFile}} interface to keep the *{{OriginalVirtualFile}}* reference. Instead of passing the original Virtual File on {{OftpletSpeaker}}'s sending file methods the change proposed is to use the {{NormalizedVirtualFile}} instance. So, users will be allowed to cast the {{VirtualFile}} into {{NormalizedVirtualFile}} and retrieve the original Virtual File when necessary.
An obvious example of the matching problem against the sent {{VirtualFile}} and the returning EERP/NERP is the {{VirtualFile#getTicker()}} property advised to be set automatically by the API's framework.oftp-1.2.0.RC1