
FIX Antenna Java 2.22.0
September 11, 2020
New Features and Improvements
- Extended acceptor ports management.
- A listening port for incoming FIX connections can be defined in the acceptor configuration (read more).
- SSL configuration per FIX session.
- A FIX session configuration includes options for SSL connection configuration (read more).
Critical bugs and fixes
- CRITICAL. Java 11 compatibility issues.
- Problem description: Some functionality, such as a FIX message validation functionality, memory-mapped files based storage(MMFStorageFactory), and Chronicle Queue based storage(ChronicleStorageFactory), didn't work with Java 11.
- Solution: code was updated to conform to Java 11 API.
- CRITICAL. A FIX Session with Chronicle Queue based storage(ChronicleStorageFactory) failed to handle ResendRequest(2) incoming requests.
- Problem description: FIX Session with Chronicle Queue based storage hung on the processing of incoming ResendRequest(2) due to deadlock.
- Solution: Deadlock in code was resolved.
- The acceptor session always used blocking NIO transport.
- Problem description: The acceptor session ignored the combination of configuration options useJavaNIO=true and blockingNIOSocket=false and always used blocking NIO transport.
- Solution: FIX server and acceptor session initialization code was fixed.
- The benchmark sample SendMarkedDataWithSlowClientsBM failed after its restarts.
- Problem description: Restart of the sample without cleaning logs failed with an error.
- Solution: The sample was fixed.
- FIX Antenna incorrectly processed invalid values range for maxMessageSize.
- Problem description: If the value for maxMessageSize is greater then Integer.MAX_INT, FIX Antenna uses -1 value instead of the default.
- Solution: Parsing was fixed, the default value in 1Mb is applied if the invalid value is defined for maxMessageSize property.
- Optimized memory usage by FIXFieldList
- Problem description: FIXFieldList could produce some garbage during its reusing (if the FIXFieldList object is taken from the pool): it didn’t release memory for some removed tags.
- Solution: Tag removing operation was fixed.
FIX Antenna Java 2.21.1
December 02, 2019
New Features and Improvements
- Custom dictionaries for FIX session.
- Custom dictionaries for FIX sessions can now be defined in FIX Antenna Java configuration file, assigned their own "ID". Read more.
- Handling of JMS adapter when its internal outgoing queue is full.
- The default behavior is improved: JMS Adapter waits for some reasonable and configurable time and if it still can't put a message into the queue it throws QueueIsFullException exception.
Critical bugs and fixes
- Rejected FIX session waits for a Logout(5) answer.
- Problem description: FIX session sent Logout(5) message on invalid incoming Logon(A) message or during the session' reject procedure and waited for an answer, which isn't necessary in this case by FIX protocol. It led to further failed tries of reconnecting.
- Solution: FIX session sends Logout and doesn't wait for an answer.
- Parsing of the boundary integer values in FIX messages and configuration files was fixed.
- FIX session with sync_noqueue mode sends a Heartbeat(0) message before Logon(A) on connect.
- Problem description: FIX Antenna may send a Heartbeat(0) message before Logon(A) for a new FIX session.
- Solution: The problem was related to FIX session initialization. FIX session behavior is fixed.
FIX Antenna Java 2.21.0
September 04, 2019
New Features and Improvements
- Added mechanism for customization of outgoing Logon and Logout messages.
- FIXSession interface is extended with a method addOutSessionLevelMessageListener() for registering interceptors of outgoing session-level messages.
- Added mechanism for monitoring LastMsgSeqNumProcessed(369) tag in incoming messages.
- New implementations of global user handlers are added into the package (read more about LastMsgSeqNumProcessed(369) processing):
- LastProcessedSlowConsumerCheckerMessageHandler controls a gap between outgoing sequences and received LastMsgSeqNumProcessed(369) tag value and report about the slow consumer in case of exceeding the threshold.
- LastProcessedSequenceSyncMessageHandler can be used to automatically synchronize sequences based on tag 369 on incoming Logout. This implementation should be used carefully because it can lead to loss of outgoing messages.
- Secure FIX server with scheduler is included into the package.
- Implementation of ScheduledSSLFIXServer, which accepts secure SSL/TLS connection and supports timetables for FIX sessions is available out of the box.
-
Critical bugs and fixes
- FIX session with no-queue sending mode might send a bunch of messages with higher than expected MsgSeqNum(34) right after reconnect.
- Problem description: FIX session with no-queue sending mode didn't wait for the finish of sequences synchronization procedure and started to send application messages immediately after Logon message. It might lead to sending a bunch of messages with sequence numbers higher than expected and receiving o lot of ResendRequests(2) from others side.
- Solution: Awaiting for an answer from the other side after reconnect during some reasonable period was introduced.
FIX Antenna Java 2.20.2
August 15, 2019
New Features and Improvements
- Don't print exception stack traces in case of logging level “INFO”, “WARN” or “ERROR”.
- Changed messages with meaningful problem descriptions. Exception stack traces still can be accessed with DEBUG and TRACE logging levels.
Critical bugs and fixes
- CRITICAL. Incorrect serialization of messages, which was taken from the internal message pool.
- Problem description: Application, which uses prepared messages, under certain circumstances corrupted messages in the pool. It led to the error and broke the connection.
- Solution: Logic for management of messages in the pool was fixed.
- Problem with parsing iLink Session Access Secret Key file, which is used for CME Secure Logon support.
- Problem description: File with access keys for iLink created via CME's website was missing "Environment" entry. Such file caused an error when the adapter was parsing it.
- Solution: Parsing the iLink Session Access Secret Key was improved and made "Environment" entry optional in this file.
- FIX Engine sends redundant Logout(5) messages if there is no answer for TestRequest(1) during some reasonable time.
- Problem description: If the application has not received any data for (HeartBtInt(108) + “some reasonable transmission time”) seconds, it should transmit a TestRequest(1) message. If there is still no Heartbeat(0) message answer received then the connection should be considered lost and the session should be closed. There is no reason to send Logout(5) message for such FIX session.
- Solution: Recovery logic was improved and sending the redundant Logout(5) message was removed.
- FIX engine sends Heartbeat(0) message right after FIX session reconnect.
- Problem description: FIX engine sent Heartbeat(0) message as a first message instead of Logon(A) message. It led to error on the other side and unexpected closing of the FIX session.
- Solution: FIX Antenna Java support message queuing for outgoing messages. Session-level messages, normally, should be sent out of turn. Such queue may contain session-level messages, like Heartbeat(0) or TestRequest(1), at the moment of a broken connection. After the reconnect they are outdated but they are still in a queue and in front of new Logon(A) message. To solve this issue, additional cleaning of such outdated out-of-turn messages was added right before session connect.
- FIX engine doesn't generate a warning message if receives SequenceReset(4) (Reset) message with NewSeqNo(36) value which is equal to the expected sequence number.
- Problem description: According to FIX specification, when FIX engine receives SequenceReset(4) (Reset) message with NewSeqNo(36) = to the expected sequence number, it has to accept such reset but "generate a "warning" condition in test output". Otherwise, FIX engine doesn't write such working messages in some cases.
- Solution: Printing a warning message to engine log was added for such cases.
- FIX engine increments the expected sequence when process SequenceReset(4) (Reset) message with NewSeqNo(36) that is less than the expected sequence number.
- FIX engine accepts duplicates of SequenceReset(4) (Gap Fill) message with MsgSeqNum(34) that is less than the expected sequence number.
- Some of JMS and Kafka samples could not be started in Linus.
- Problem description: Scripts for start samples didn't work due to syntax errors.
- Solution: Bash scripts for running samples were fixed.
FIX Antenna Java 2.20.1
April 16, 2019
New Features and Improvements
- New methods for sequence management were introduced.
- FIX session extended with a set of methods for separate set and get session' sequences:
- FIXSession.setInSeqNum(long)
- FIXSession.getInSeqNum()
- FIXSession.setOutSeqNum(long)
- FIXSession.getOutSeqNum()
- Improved notification about delivering messages to Kafka in Kafka Adaptor.
- New implementation notifies about successful delivery only when Kafka confirms such operation.
FIX Antenna Java 2.20.0
March 06, 2019
New Features and Improvements
- Added JMX interface for FIX session management.
- Implemented JMX interface allows managing FIX session with standard Java mechanism. JMX interface provides the same volume of operation for FIX Antenna as FIXICC has.
- Added Kafka adapter.
- The new adapter for communication with Kafka is added. It provides pub/sub mechanism for Kafka topics. Package includes samples, which help to route FIX messages from FIX Session to Kafka.
- Default engine logging mechanism migrated to Log4j2 implementation.
- Log4j2 is a low-garbage solution with a better logging performance than Log4j 1.x, better support and it has more abilities for managing the logging output.
FIX Antenna Java 2.19.7
December 18, 2019
New Features and Improvements
- The sample for CME iLink adapter was updated.
- CME iLink sample was update to provide easier interaction with CME Autocert+ certification platform.
Critical bugs and fixes
- CRITICAL. The setting of double type may corrupt the FIX message.
- Problem description: The problem was reproduced in parsing of prepared messages when setting double type.
1) the sum of size of an integer part and fractional part (precision parameter) exceed the reserved space for this tag in a message;
2) the fractional part of double values might be rounded. - Solution: Serialization of doubles to internal message' buffers was fixed.
- FIXSession.setSequenceNumbers() method doesn't change sequence number after the FIX session was disconnect.
- Problem description: FIX Session had an issue with updating its persistent state and, therefore, in disconnected state setSequenceNumbers() method didn't provide the correct result.
- Solution: the session state updating logic was fixed.
- Scheduled session uses invalid TimeZone if FIX session has to start during initialization.
- Problem description: Scheduled session may be configured to used custom TimeZone for scheduling session' start/stop actions.But, due to the bug, scheduled session always used default local TimeZone if the session should be started during its initialization.if the session should be started during its initialization.
- Solution: Scheduled session initialization logic was fixed to use correct TimeZone.
- FIX session with sync_noqueue mode sends application message before Logon(A) on connect.
- Problem description: There were cases when a new connection is established FIX Antenna sent application message, which wasn't successfully sent during the previous connection session, before Logon(A) message.
- Solution: Initialization of FIX sessions with sync_noqueue mode was fixed. User's sending threads will be blocked till the engine successfully sends Logon(A) message.
- ignoreResetSeqNumFlagOnReset setting did not work at session start for Acceptor.
- Problem description: Even if ignoreResetSeqNumFlagOnReset was set to true, acceptor FIX session still sent ResetSeqNumFlag(141=Y) in answer to counterparty.
- Solution: Processing of ignoreResetSeqNumFlagOnReset by acceptor was fixed.
- FIX Antenna ignores incoming TestRequest(1) with higher sequence number than expected.
- Problem description: FIX Antenna ignored incoming TestRequest(1) with a higher sequence number than expected. As a result, counterparty never receives an answer for TestRequest(1) and can break the connection.
- Solution: The order of session' handlers, which process the incoming message, was changed to process TestRequest(1) before the engine marks it as an out-of-order message.
- FIX Antenna writes incorrect timestamp into storage files.
- Problem description: FIX Antenna wrote incorrect timestamp for incoming messages when option markIncomingMessageTime is enabled.
- Solution: The bug with timestamp calculation was fixed.
FIX Antenna Java 2.19.4
November 12, 2018
New Features and Improvements
- A new fan-out sample is added to the package.
- A sample, which demonstrates the principles from the article How to implement fan-out case, is added into the benchmark subfolder of the distribution package.
- Accuracy of timestamps in incoming FIX transactions logs is improved.
- If the option markIncomingMessageTime is enabled, incoming log stores a timestamp of the moment FIX message was read from the socket. The default behavior takes timestamp of writing message to log file (after it was processed by an application).
Critical bugs and fixes
FIX Antenna Java 2.19.3
August 22, 2018
New Features and Improvements
Critical bugs and fixes
FIX Antenna Java 2.19.2
June 29, 2018
New Features and Improvements
- Optimized serialization of FIX messages.
- Implemented lightweight MsgType(35) validation in message serialization process without extracting its tag value.
Critical bugs and fixes
FIX Antenna Java 2.19.1
May 22, 2018
New Features and Improvements
- Optimized memory usage by FIXFieldList.
- Added API for TCP transport customization.
- Added SocketContextFactory interface for customization sockets of initiator and acceptor sessions. Implementation of this interface may be introduced for FIX Antenna as socketContextFactory configuration option.
Critical bugs and fixes
FIX Antenna Java 2.19.0
April 26, 2018
New Features and Improvements
- CME Secure logon API support.
- Getting BigDecimal from FIXFieldList.
- Method getTagValueAsBigDecimal has been added in FIXFieldList. It is used for getting decimal numbers with high precision.
FIX Antenna Java 2.18.3
April 18, 2018
Critical bugs and fixes
FIX Antenna Java 2.18.2
March 28, 2018
Critical bugs and fixes
FIX Antenna Java 2.18.1
March 23, 2018
New Features and Improvements
Slow consumer detection and notification is implemented.
- FIXSessionSlowConsumerListener callback for FIXSession was implemented and several configuration's options to control notifications about slow consumers were added.
Throttling controller is implemented for FIXSession.
- With enabled throttling option engine counts a number of messages for a given message with defined message type (e.g. NewOrder) during a specified period of time and disconnects session with the reason THROTTLING if the set threshold is exceeded.
Chronicle Queue bases storage for FIX Session.
- Implemented new type of persistent message storage for FIX Session (ChronicleStorageFactory), which is based on OpenHFT Chronicle Queue (https://github.com/OpenHFT/Chronicle-Queue) implementation. Chronicle Queue is a project which aims to build a persisted low-latency GC-free solutions for high performance and critical applications.
Implemented new synchronous sending algorithm - sync_noqueue.
The current sending mechanism (sync), used by default in FIX antenna, is designed for low latency and consistency operations. It attempts to send messages synchronously most of the time.
It also allows queueing messages if the session is disconnected and it can be switched to asynchronous message sending mode to handle messages in the queue.
The new sync_noqueue mode provides a strict synchronous mechanism as an option. If this sending mode is enabled, the session sends messages only synchronously, in the same thread. This mode does not support queuing(e.g., it will be impossible to pass messages to the disconnected session)
Round-robin reconnect option to multiple backup destinations for an initiator session has been added.
- Option to switch to a backup destination, selecting from the list of available servers in round-robin fashion has been added to session initiator.
Added new API to create Acceptor session in a declarative form
- Using this API an acceptor session will be created and later on initialized when a connection arrives (#createAcceptorSession())
Missed sequence reset detection was implemented in this version.
- FIX Antenna can automatically handle cases when counterparty ignores sequence reset and continues to send old sequence numbers. Such behavior (when FIX Antenna resets its sequences but counterparty does not) in general can lead to requesting a lot of old messages due to gap detection in sequences.This feature was added to mitigate these cases. (check resetThreshold configuration option for details)
Notification about sequence synchronization was extended.
Optionally ignore compID validation for FIX messages.
- Implemented optional switching off validation of SenderCompId(49) and TargetCompID(56) fields in FIX message's header. This feature may be used for message routing purposes. (check senderTargetIdConsistencyCheck configuration option for details)
Updated MMF storage implementation to conform Java 8 codebase.
- Deprecated SDK calls inside MMF storage implementation were updated with a more flexible solution.
Critical bugs and fixes
FIX Antenna Java 2.17.11
February 14, 2018
Critical bugs and fixes
FIX Antenna Java 2.17.10
February 08, 2018
New Features and Improvements
Critical bugs and fixes
Fixed deadlock in an object pool for RG API objects.
Fixed problem with sending Logout message in response to receiving Logon message with lower than expected sequence number.
Fixed clone method in SessionParameter class.
FIX Antenna Java 2.17.9
January 18, 2018
Critical bugs and fixes
FIX Antenna Java 2.17.8
December 28, 2017
New Features and Improvements
Critical bugs and fixes
FIX Antenna Java 2.17.7
December 13, 2017
New Features and Improvements
Critical bugs and fixes
FIX Antenna Java 2.17.6
November 28, 2017
Critical bugs and fixes
FIX Antenna Java 2.17.5
November 24, 2017
Critical bugs and fixes
FIX Antenna Java 2.17.4
November 15, 2017
Critical bugs and fixes
Fixed high-precision timestamps in storages.
Fixed serialization of FIX messages when using FIXSession#sendWithChanges() method.
Improved processing of TestReques(1) messages.
Problem description: If counterparty sends no messages during heartbeat interval, FIX engine, according to FIX protocol, sends TestRequest(1). Then it waits for another heartbeat interval for response (Hearbeat(0) message with TestReqId(112) tag). If response is not received, engine closes session unconditionally, even if communication is restored and counterparty starts sending other messages.
- Solution: Strict condition for waiting TestRequest(1) response was updated and any incoming message cancels countdown counter now.
- Restored processing of NextExpectedSeqNum(789) tag in Logon.
FIX Antenna Java 2.17.3
November 2, 2017
Critical bugs and fixes
FIX Antenna Java 2.17.2
October 26, 2017
Critical bugs and fixes
FIX Antenna Java 2.17.1
September 13, 2017
Critical bugs and fixes
FIX Antenna Java 2.17.0
September 1, 2017
New Features and Improvements
Critical bugs and fixes
FIX Antenna Java 2.16.5
January 10, 2018
Critical bugs and fixes
FIX Antenna Java 2.16.4
August 18, 2017
New Features and Improvements
Critical bugs and fixes
FIX Antenna Java 2.16.3
August 4, 2017
New Features and Improvements
Scripts for installing FIXAJ libraries into client’s local repository has been added to package
- Added Maven build configuration script for deploying FIX Antenna libraries into client’s local repository
- Added description for maven dependency section with FIX Antenna libraries (can be copied to client’s project configuration after importing artifacts)
Round trip benchmark has been added
- The new benchmark samples, which used for measuring latest results, were added to package
An ability to leverage Java 8 notation for functional interface to load handlers for message processing in FIX sessions
- FIXAJ used only java reflection to load messages handlers. Such strategy was a problem to link custom client’s handlers with other application infrastructure (Spring integration for example). Custom loader, for example, allows to extract the existing handler from application context.
Critical bugs and fixes
FIX Antenna Java 2.16.2
July 20, 2017
Critical bugs and fixes
FIX Antenna Java 2.16.1
July 11, 2017
Critical bugs and fixes
FIX Antenna Java 2.16.0
July 5, 2017
MIFID II support
- Timestamps with increased precision can be validated in incoming messages (in UTCTimestamp, UTCTimeOnly, TZTimestamp, TZTimeOnly)
- Timestamps in SendingTime (52), OrigSendingTime (122) are filled with configurable precision (timestampsPrecisionInTags option)
- Public API is extended to operate timestamps with additional precision
- Timestamps in message storages are filled with configurable precision (timestampsPrecisionInLogs, backupTimestampsPrecision options)
For more MIFID II compliance details see https://www.b2bits.com/regulatory/mifid-ii.html.
Migrated source code to Java 8
- Now FIXAJ libraries are built with Java 8. Previous version of JRE may not be supported.
FIX Message API and RG API improvements
- Allowed to parse RG with custom dictionaries
- Public API is extended to use FIXVersionContainer as well as FIXVersion for indexing repeating groups inside the message
- Optimized prepared messages
- Problem description: Prepared messages didn’t handle string values in optimal way – it splitted internal buffer for every string tag
- Solution: Leave internal buffer unsplitted till the new string values length is smaller than reserved in buffer and fill the string end with spaces
- Allowed to get the FIX version for read message
- Added fixVersion property to FIXFielList class. This property is filled with session’s FIX version to allow indexing repeating groups with correct dictionary
Logging improvements
- Improve warn message logging
- Updated logged license description (contacts)
- Changed IgnoreMessageHandler to warn rejected messages
- Changed the logging level for duplicated incoming sessions from ERROR to WARN
JMS Adapter
- Fixed JMS Adaptor reconnection
- Changed ILinkRejectMessageHandler to warn rejected messages
Other improvements
- Updated internal security (license) mechanism
- FIX dictionaries were updated to 1.5.48
- Allow to throw IOException by initiator for FIXSession.connect()
- Problem description: Autoreconnect initiator session not always notify called about connection problems
- Solution: Fixed connect logic – now all IOException will be thrown up to caller
- Initialization of InMemoryStorageFactory was fixed
- Problem description: Warning was printed to log during InMemoryStorageFactory initialization. Engine tries to initialize storage with constructor and pass its configuration as a parameter to constructor. If storage doesn’t have parametrized constructor, the warning is printed to log.
- Solution: Parametrized constructor as added to InMemoryStorageFactory class.
- Made FIXFieldListWithTypeFactory visible and able to use
- Problem description: Reusing of Queue implementations sometimes requires access to FIXFieldListWithTypeFactory
- Solution: Removed obfuscation for FIXFieldListWithTypeFactory class
- Suppress sending session qualifier tag in Logon(A) message
- Problem description: SessionParameters.sessionQualifier property sent in Logon(A) message if defined as 9012 tag by default (logonMessageSessionQualifierTag property).
- Solution: New 'suppressSessionQualifierTagInLogonMessage' property as added to suppress sending session qualifier tag in Logon(A) message if this property set to true.
- Improved processing of connection abrupt during sending message
- Problem description: When connection abrupt during sending message, this message may be lost.
- Solution: In case of connection abruption during sending message, engine throws TransportMessagesNotSentException with message content to notify caller about the possible problems.
- Added possibility to process sequence gap open/close events and ResendRequest processing events
- FIXSessionOutOfSyncListener was added to ExtendedFIXSession API
- Allowed to prevent sending of ResetSeqNumFlag(141) in Logon(A) message after resetting sequences
- Added new configuration option IGNORE_RESET_SEQ_NUM_FLAG_ON_RESET
FIX Message API and RG API bugfixes
- Fixed problem with RG API after adding/removing tags before RG
- Problem description: Accessing to RG entries throwed IllegalArgumentException after removing or adding tags before RG.
- Solution: Fixed operations with internal RG index.
- Fixed NPE in RG API
- Problem description: NPE occurred during reusing the instance of FIXFieldList.
- Solution: Fixed initialization procedure for internal RG index
- Fixed message deep copy operation
- Problem description: There was NPE during accessing RG in cloned message with indexed repeating groups
- Problem description: There was NPE during cloning message with invalidated RG index
- Solution: Fixed deep copy operation for FIX message
- Fixed FIXFieldList reinitialization
- Problem description: Sometimes after reusing of FIXFieldList instance, it contained wrong RG index.
- Solution: Fixed FIXFieldList.clear() method to clean RG index too
- Fixed parsing and validating RG with nested groups
- Problem description: There was exception during indexing RGs with nested groups
- Solution: Indexing of nested repeating groups was fixed
- Fixed removing tags from repeating groups
- Fixed problems in FIXFieldList with creating/removing RG
- Problem description: There was exception during removing just added empty repeating group
- Problem description: There was exception with adding again just removed empty repeating group
- Solution: Fixed internal RG index
- Fixed problem with caching FIXField instances within FIXFieldList
- Problem description: There was invalid FIXField objects for removed tags after removing whole repeating group via RG API
- Solution: Fixed removing tags operations to update the FIXFied cache
Scheduller bugfixes
- Fixed session’s scheduler to use correct time zone
- Problem description: Scheduler always used default Time Zone for its tasks.
- Solution: Fixed scheduler to use Time Zone from ScheduledSessionParameters.
- Added method for closing scheduller
- Problem description: ScheduledFIXServer.stop() didn’t stop the scheduler thread
- Solution: ScheduledFIXServer.stop() has been updated to stop the scheduler too
Oher critical bugs and fixes
- Fix messages serialization with ChangesType.UPDATE_SMH_AND_SMT_EXCEPT_COMPIDS
- Added EncryptMethod(98) for Logon(A)
- Fixed BodyLength (9) value
- Fixed garbled messages parsing
- Problem description: Extra garbage character after FIX message in stream led to IOException and invalid reader state
- Solution: Fixed parser to skip extra chanracters as a garbage
- Problem description: Empty MsgSeqNum(34) tag value in incoming Logon(A) message led to unexpected exception.
- Solution: Added validation for empty value and marking such message as garbled
- Fixed reinit sequence numbers after session's initialization
- Fixed transport closing on session's abnormal disconnect
- Problem description: During abnormal disconnect due to error, session’s transport was left opened and this led to writing queued message to it by pumper thread and to losing them.
- Solution: Added closing transport on abnormal disconnect
- Fixed to ignore buffered messages with lower seq numbers after resend request fill gap
- Problem description: In case of processing sequence gap for incoming messages, new messages may be buffered by message reader. In case of processing several gaps one-by-one, answer for ResendRequest may include buffered messages and such messages in buffer should be skipped from further processing.
- Solution: Added extra condition for processing buffered messages in message reader to skip processed messages
- Fixed NPE in TCPTransport
- Problem description: NPE is thrown when case when accessing address and port properties for closed transport
- Solution: Updated methods to return configured host and port instead the runtime socket parameters
FIX Antenna Java 2.12.29
FIX Antenna Java 2.12.29 released on 2 June, 2015.
Bugfixes
Potential conflict causing duplication sequence numbers (if reset defined for session in configuration and called explicitly) was resolved.
Solution: Internal flag was added for control and prevent second sequence reset.
Issue with sending corrupted messages was fixed.
1 2 3 4 5 6 7 8 9 10 | FIXFieldList orderMsg = new FIXFieldList();
orderMsg.addTag( 11 , "123456789" );
orderMsg.addTag( 55 , "IBM" );
orderMsg.set( 11 , "123456789" );
FIXFieldList copy = orderMsg.deepClone( true , false );
|
Solution: Internal message structure was fixed and new verification test was added.
Obfuscation from QuietLogonModeHandler was removed.
Solution: This class was excluded from obfuscation procedure.
FIX Antenna Java 2.12.28
FIX Antenna Java 2.12.29 released on 15 May, 2015.
Bugfixes
- Backup file overwriting issue was fixed.
Problem description: Backup file name contains timestamp with seconds. If the backup procedure processed twice at the same second, it may lead to overwriting of existing backup file (same name with the same timestamp). For example, duplicate call for reset sequences within the same second may lead to overwriting of new backup file.
Solution: Verification for uniqueness of file name during creating backup. New unique index to backup file name in case of duplication was added.
- Issue with unnecessary backup file creation in some specific cases was fixed.
Problem description: If the backup procedure was called for session at the moment when storage files are empty (there were no stored messages yet), then empty files will be backuped. For example, duplicate sequence reset call within short period of time may lead to copying of empty files.
Solution: Check for the file size during backup of storage files was added.