dxFeed Blog
Market Pulse
Delayed daily chart for last 90 days.
See disclaimer.
Powered by dxFeed JavaScript API.
Turkish Market Data

Entries in dxFeed API (14)


dxFeed/QDS Release Notes 3.240-3.254

Delivery version: 3.254 
Base version: 3.240 
QD-127: dxFeed API: Custom user-defined events
QD-385: dxFeed API: Introduce getEventTime
QD-386: Configure DXFeedScheme to include or exclude optional fields
QD-548: Tools: Provide API for multiplexor tool to install user-defined authentication handler
QD-674: QD Core API shall provide QDCollector.Builder interface to define extensible list of collector attributes on creation
QD-675: QD Core shall have ability to store and transmit event time stamps
QD-677: Tools shall support collectors with eventTime
QD-833: RMI Invoke tool shall supported targeted requests
QD-834: BUG FIX: Tools: FileWriter is not working after failure
QD-839: dxFeed API for "storeEverything" mode
QD-840: QDS "tape" connector
QD-847: dxFeed API: Introduce nanoTime in key market events
QD-860: Support authorization in QDS connectors
QD-863: DXFeed API for OnDemand: Shall provide eventTime
QD-864: dxFeed API: Improve support for custom record mappings
QD-872: RecordBuffer shall reset cursors on clear/compact for better safety
QD-876: Support custom login handlers in QDS connectors
QD-878: dxlib: Services shall understand hash-comments in services files
QD-879: Misc QD filter performance optimizations
QD-880: dxFeed JS API: Access to Greeks event does not work
QD-881: QD Core: improve performance of stream contract
QD-882: QD Core: improve performance on signalling socket writing thread
QD-883: dxlib: Do not pool ObjectInputStream instances of large size
QD-884: Leaked instances of DXFeedImpl via ThreadLocal
QD-885: QD Core: make striping consistent for cipher and symbol
QD-887: QD Core: Safe flushing during examine does not always work as expected
QD-888: QTP binary parser fails to parse binary data with event time fields unless explicitly configured to
QD-889: Switch to Java 8 source code level
QD-890: QD Core: connection filters are not properly transmitted to other side
QD-892: Removal of events from history using SNAPSHOT_XXX flags does not update "storage" stats properly
QD-893: QD History fails on assertion when loading data with storeEverything mode without subscription
QD-894: Update time-test to version 1.1
QD-895: Turn on history snapshot mode on any event with new SNAPSHOT_MODE flag to facilitate snapshot data upload with qds post
QD-896: QD History enters into invalid "TX_PENDING" state in storeEverything mode
QD-897: DXEndpoint.awaitNotConnected/closeAndAwaitTermination does not always guarantee that all data was processed
QD-898: dxFeed API: OrderSource now can use up to 4 alphanumeric characters
QD-900: dxFeed API: Normalize Flags and EventFlags representation
QD-902: Fix javadoc link problems
QD-903: Fix javadoc style for Java 8 javadoc tool
QD-905: dxFeed API: Add tick direction to Trade and TradeETH events
QD-906: Tools: Implement dxFeed Plotter Tool
QD-907: dxFeed API: Create accessor to flags constants and normalize flags operations
QD-908: RMI-subject is not forwarded through intermediate nodes
QD-909: dxFeed API: Add DayTurnover to Trade and TradeETH events
QD-910: dxFeed API: Add Sequence to Trade and TradeETH events
QD-911: Striped QD collector does not correctly implement agent's snapshot provider
QD-912: Undeprecate DataRecord.getMapping() method
QD-913: dxlib: Make TypedMap thread-safe
QD-915: QD RMI: RMIServiceMethod annotation with support for proxy-based OneWay invocations
QD-916: Potential NPE in AgentAdapter.prepareProtocolDescriptor
QD-917: QD RMI Leaks closed RMITaskImpl instances in certain cases
QD-918: Legacy custom authentication Sample code is broken
QD-919: Improve speed of tests with RMI
QD-920: Proxy invocation handler must log requests which complete exceptionally
QD-921: Add MDD's TimeReplacer functionality into FileConnector
QD-925: BUG FIX: Striped QD collector does not work
QD-926: ConsoleLoginHandler asks to enter login/password for each connection without the need
QD-929: LoginManager invokes QDLoginHandler.login() more often than necessary
QD-930: MessageComposer сompletes the request with the wrong type of timeout
QD-932: RMI: Potential delay of QD messages due to lost "more messages flag"
QD-933: RMICommontTest.connect should not burn 100% CPU while waiting for "CONNECTED" status on server socket
QD-935: RMICommonTest.testWithTLSAndCustomTrustManager does not work on Linux
QD-936: ServerSocketConnector does not notify listeners on its CONNECTED state when it starts accepting connections
QD-937: Move promise package into a separate "dxfeed-promise" module
QD-938: qd-auth: migrate to Promise
QD-939: Change default NIO select timeout to 100ms
QD-940: Move core auth classes to com.devexperts.auth package
QD-942: Fix infinite loops in RMI Tests and resource allocations
QD-944: When the Multiplexor is closed, some threads are not closed
QD-945: SSLConnectionFactory creates ServiceExecutor which never shuts down
QD-947: RMI: NPE in MessageProcessor
QD-948: AuthManager does not always cancel authentication request on close
QD-949: Multiple RMI Channel executions may block RMI execution pool
QD-952: dxlib: Remove class from TypedKey constructor
QD-954: RMIChannelTest is highly timing dependent
QD-955: Split RMICommonTest into two test suites
QD-957: Tools: Connect doesn't work with subscription-mirroring and Stream collector
QD-958: QD Core: distribution of very large data sources via History fails
QD-959: dxlib: Introduce TraceLogging as a unified approach for finding concurrency bugs during tests
QD-960: RMI sends advertisement messages before protocol descriptor
QD-963: Broken support for 4 letters order sources
QD-966: Use parametrized tests in all RMIxxx tests for regular and channel-testing variants
QD-970: ParallelWriter should exit correctly when its thread is interrupted
QD-972: MessageDescriptor should contain actual message type id after parsing
QD-973: IPFFilter update check does not authenticate properly
QD-974: RMIChannelTest.testIntermediateResultChannel is not stable
QD-977: dxlib: QD Core: add methods and classes to allow faster sorting of RecordBuffer
QD-978: Increase default cache size in Schedule and Timing to 25000
QD-980: RMI: Fix RMIEndpoint.setAttachedMessageAdapterFactory to support legacy factories
QD-981: dxFeed API: Parsing events from file sporatically fails
QD-982: RMIChannelTest.testProgressDisconnect fails sporadically
QD-983: SymbolSetFilter.valueOf should return dynamic filter in case of given dynamic ipf-filter
QD-985: History transaction sporadically hangs in TX_PENDING state
QD-987: DXPublisherTest sporadically fails
QD-990: Optimize QTP composer for "spurious return" of data/sub provider
QD-991: RMIMessageAdapter does not honor contract for time-based aggregation which leads to data loss/delay
QD-994: FileWriter writes invalid eventTime for ""long" and "text" time formats
QD-995: Prepare QD for delivering to GitHub
QD-997: QDHistory does not properly store nor transmit event time sequences
QD-998: Add FreeFloat field to Profile record
QD-999: dxlib: Add specific factory methods to IndexedSet
QD-1001: QD unable to recover after I/O error
QD-1004: OnDemand stops replaying events at data block boundary
QD-1005: Investigate enforcing specific version of TLS (TLS 2.1) programmatically in QD RMI
QD-1007: Improve CPU usage of idle SocketReader
QD-1008: Schedule: Update Turkey holidays for 2017-2019 to
QD-1011: History does not use subscription filter which is specified as service
QD-1013: dxlib: Add toString() to TypedMap and TypedKey
QD-1014: JDK1.8.0_121 does't support javascript in documentation comment
QD-1015: [dxFeedViewer] Change default ipf-address protocol from http to https
QD-1016: BUG FIX: Incorrect translation of close price from OnDemand to Summary record
QD-1017: BUG FIX: Spurious ULP formatting in IPF
QD-1018: BUGFIX: SubscriptionProcessor stops working after exception
QD-1019: BUGFIX: NullPointerException in NotIPF filter
QD-1020: dxFeed webservice: Migrate to cometd 3.1.1
QD-1021: dxlib: Allow Log4j2 as logging implementation
QD-1023: BUG FIX: Schedule: Bad format leads to unrecoverable errors
QD-1024: Tools do not accept several ipfs as source of symbols
QD-1025: dxFeed API: Add Buyer and Seller optional fields to TimeAndSale events
QD-1026: dxFeedAPI: Add regional TimeAndSale events

dxFeed/QDS API release notes 3.203-3.240

Release Notes - QD - Version 3.240
** Change Request
QD-856: RecordBuffer may contain non-zero values beyond limit
QD-875: dxFeed API: add method DXEndpoint.disconnectAndClear
** Defect Report
QD-874: ExecutionManager must be removed from HashMap, when the RMIChannel is closed
Release Notes - QD - Version 3.239
** Change Request
QD-871: dxFeedScheme: MarketMaker shall contain counts of individual orders
** Defect Report
QD-862: DXFeed API Ignores exceptions thrown from DXFeedEventListener.eventsReceived
QD-866: Logged agent must log subscription going through addSubscriptionPart
QD-868: Agent aggregation period does not work properly with socket connectors
QD-869: NoSuchElementException in ClientSocketSource.getLocalAddresses(), local-address priority fails silently
QD-870: dxFeed API: IPF: Error reading empty lines in some cases.
** Improvement
QD-867: TextQTPParser shall understand date-only time specification history subscription
Release Notes - QD - Version 3.238
** Change Request
QD-832: QD RMI Shall have ability to limit default Java Serialization to a white-list of classes
QD-857: dxFeedScheme: OpenInterest field in Fundamental record shall be limited to composite only
** Defect Report
QD-861: Deadlock between QDEndpoint$Lock in RMIEndpointImpl.getRMILoadBalancerFactory and ClientSideServices lock in RMIClientImpl.removeConnection
Release Notes - QD - Version 3.237
** Change Request
QD-848: dxFeed API: Add and update rounding methods in PriceIncrements
QD-849: Tools: Instrument tool performance option shall work for read option.
QD-850: Schedule: add system property to control cache limit
QD-852: dxFeed API: Summary shall contain PrevDayVolume (composite only) and OpenInterest shall be limited to composite only.
QD-854: dxFeed API: Order shall contain count of individual orders
** Defect Report
QD-843: ConcurrentModificationException in MARSScheduler.cancel
QD-851: BUG FIX: current message shall be properly aborted upon error or session reset
QD-853: RMI: Deadlock between ClientSideServices and QDEndpoint$Lock
Release Notes - QD - Version 3.236
** Change Request
QD-605: RMI Channels
QD-771: Tools: FileWriter shall release completed files as time passes
QD-811: dxFeedViewer: Refactor and commit latest changes in dxfeed-viewer
QD-818: dxFeed API: Support TOS-specific data fields
QD-828: dxFeed API: IPF: Improve performance of reading IPF from file
QD-842: Schedule: update holidays and short days
** Defect Report
QD-535: FileConnector repeatedly tries to read a file that is already deleted or corrupted
QD-825: dxFeed API shall support integer Candle.Count fields in scheme
QD-836: Redundant libs in and dxfeed-webservice.war
QD-838: dxFeed API: OrderBookModel incorrectly processes change of lot size
Release Notes - QD - Version 3.235
** Change Request
QD-809: Dgen: move to DXLIB project group
QD-824: dxFeed API: Make Greeks a TimeSeriesEvent with Time and Sequence.
** Defect Report
QD-823: BUG FIX: IPF: InstrumentProfileConnection does not read instruments from old services.
Release Notes - QD - Version 3.234
** Defect Report
QD-816: Event flags are not sent over the network connection
** Improvement
QD-817: DXFeed API: make all executor threads "daemon"
Release Notes - QD - Version 3.233
** Change Request
QD-779: Dgen: Javac plugin for automated generation of Description annotations from Javadocs
QD-815: Schedule: update holidays and short days
** Improvement
QD-807: Redirect tests output to separate files on maven build
Release Notes - QD - Version 3.231
** Defect Report
QD-782: BUG FIX: Minor memory leak in OrderBookModel
Release Notes - QD - Version 3.207
** Defect Report
QD-804: Dynamic IPF filter: ipf changes were not applied
QD-820: QD Connectors shall throw exception when ')' is missing in address
QD-822: BUG FIX: dxFeed API: Symbol attributes mishandled for regional symbols.
Release Notes - QD - Version 3.206
** Defect Report
QD-812: Post tool does not wait for protocol descriptors (event flags are not sent immediately after connection establishment)
QD-813: Writing objects to BYTE_ARRAY fields fails
QD-814: Some dxFeed samples are failing when trying to addEventListener
Release Notes - QD - Version 3.205
** Change Request
QD-801: QDS API: Introduce RecordCursor.Owner.setAs(RecordCursor) method
QD-802: QDS Message connectors shall report "connectors_closed" rate to MARS
** Defect Report
QD-808: Event flags are not sent immediately after connection establishment (random effect)
Release Notes - QD - Version 3.204
** Change Request
QD-709: NIO Connector: Better internal statistics
QD-787: dxFeed REST API: Support requests with timeout=0
QD-788: dxFeed API: Introduce DXFeed.getXXXIfSubscribed methods
QD-791: dxFeed API: Throw IllegalStateException when trying to addEventListener on non-empty and attached DXFeedSubscription
** Defect Report
QD-664: dxFeed API: ConcurrentModificationException during DXEndpoint.close().
QD-775: dxFeed REST API: Memory leak on timed-out events resource request
QD-789: dxFeed API: Subscription change notification for publisher should not be conflated on fast subscription remove/add
QD-792: NPE and connection reset when subscriber use older QD (same scheme)
** Improvement
QD-776: dxFeed REST API shall log "events" requests and responses
QD-794: Use while-guarded LockSupport.park in HistorySnapshotMTStressTest



dxFeed/QDS 3.203 has been released

dxFeed/QDS 3.203 has been released to public.
Available at:

Build 3.203 introduces a number of changes since the last public build 3.200, in preparation to the upcoming 3.230+ public releases.

Summary of changes in build 3.203: 

** Defect Report

QD-714 History snapshot mode is not activated when initial data was without snapshot begin flag
QD-718 NullPointerException in AbstractIndexedEventModel
QD-721 QDS Post Tool does not support event flags
QD-727 BUG FIX: IllegalArgumentException in CheckedTreeSimpleTest
QD-730 RecordBuffer maxObFields tracking optimization is broken
QD-737 dxFeedAPI OrderBookModel hang/NPE in CheckedTreeList
QD-738 dxFeed REST API shall support comma-separated as well as repeated query parameters
QD-740 Tools: Sending data via pipe to post tool fails.
QD-750 Dynamic IPF filters: memory leak
QD-758 RecordBuffer.compact does not always properly cleans up
QD-765 Cannot receive data when connecting using 3rd party scheme to dxFeed scheme
QD-767 dxFeed REST API eventSource fails to create session sometimes
QD-769 Tools: Instruments tool shall fill TRADING_HOURS field for created products.
** Change Request
QD-387 Use record description from receiving data distributor to send only fields that are present in the scheme on the receiving side
QD-679 dxFeed REST API shall have auto-generated human-readable documentation
QD-681 dxFeed REST service demo shall provide links to event documentation
QD-713 dxlib: update gzip mime type and move utility classes to public package
QD-716 Support specifying time when subscription is set with dxfeed.qd.subscribe.history
QD-717 Transforms shall warn on use of undeclared variables
QD-720 History Snapshot protocol shall include SNAPSHOT_SNIP flag for compatibility with HistorySubscriptionFilter
QD-724 Tools: Instruments tool shall support transheader command in scripts
QD-725 Add methods to transform single InstrumentProfile
QD-726 Tools: Instruments tool shall support multi-line transforms command in scripts
QD-729 Tools: Instruments tool shall support transform performance option.
QD-731 Support ":" character in qd symbol patterns without additional escaping
QD-733 Tools: Collector option in tools shall support storeEverything mode for history contract.
QD-734 IPF: New transform functions to quickly check symbol category.
QD-735 dxFeed REST API shall support Server-Sent Events EventSource
QD-741 IPF: Support multiple labels in switch statement.
QD-742 Introduce RecordSource.VOID constant
QD-746 dxFeed REST API shall have option to create a session and change its subscription
QD-748 IPF: Support IPF files in in and notin expressions.
QD-749 OrderBookModel shall work correctly with tape files without SNAPSHOT_END flags
QD-751 dxFeed API: Introduce OrderBookModel.addListener, clean up flags, and improve JavaDoc
QD-752 dxFeed API: Add HighLimitPrice and LowLimitPrice to Profile event and record.
QD-753 Support wildcard pattern in any place of symbol filter
QD-756 dxFeed API CandleSymbol shall include documentation on its string representation
QD-757 CollectorMXBean shall print eventFlags in reportData, introduce reportSubscription, and support wildcard
QD-759 Schedule: add last modification date to default properties
QD-764 Synchronize iterations on the results of System.getProperties
** Improvement
QD-732 dxFeed webservice: Migrate to CometD 3.0.4, works with Servlet 3.0+JSR 356 containers (Jetty 9, Tomcat 8)
QD-755 IPF: Add COMPLETED state to InstrumentProfileConnection



dxFeed/QDS 3.200 released

dxFeed/QDS 3.200 has been released to public.
Available at:

Build 3.200 introduces a number of changes since the last public build 3.154, including implementation of new transaction mechanism for historical snapshots and book delivery, a lot of changes in RMI and order source support for blended full order depth order books.

Summary of changes in internal builds 3.160-3.200: 

Release Notes - QD - Version 3.200
** Change Request
QD-678: dxFeed API shall have consistent properties documentation for all event types
QD-680: dxFeed API shall use enum types in Order and TimeAndSale events
QD-687: dxFeed API: Default doubles values in event objects shall be Double.NaN
QD-699: dxFeed API: Expose Short Sale Restriction flag in Profile
QD-701: dxFeed API: OrderBookModel sort order
QD-703: QD Core: Add sequence to Order records and events
QD-708: dxFeed API: Undeprecate Promise.whenDoneAsync method
QD-710: dxFeed REST API JSON serialization must be similar to results of dxFeed JS API
QD-711: dxlib: enable sync flush for ZIP compression
** Defect Report
QD-694: Tools: Dump doesn't support filtering anymore
QD-702: NullPointerException in AgentChannel/AgentAdapter
QD-704: dxViewer: Application stops updating after any exception
QD-707: NullPointerException in OrderBookModel
QD-712: History snapshot flags do not pass through when using striping
** Improvement
QD-705: DXFeed API: Optimize QDCore usage when DXFeedSubscription.addSymbols is used with new string reference
QD-706: DXFeed API: Optimize DXFeedSubscription.addSymbols for a case of one symbol that is already in subscription set
Release Notes - QD - Version 3.199
** Change Request
QD-685: Introduce OrderSource for DirectEdge BATS One Market Depth Feed
** Defect Report
QD-671: String representation of built-in filters like "feed" should not be expanded to a list of records
QD-690: BUG FIX: Writing data with restricted event flags breaks data format.
QD-691: BUG FIX: History collector shall ignore incoming records which has no time.
QD-695: NullPointerException at AgentQueue.retrieveSnapshotForHistory
QD-696: BUG FIX: NullPointerException in FeedFileHandler.writeFile
QD-697: BUG FIX: stats overflow
Release Notes - QD - Version 3.198
** Change Request
QD-663: dxFeed API: Support subscription and publishing of indexed events from a specific source
QD-665: dxFeed API: Support getIndexedEventsPromise and getTimeSeriesPromise with snapshots
QD-666: dxFeed API: Deprecate Promise.whenDoneAsync method
QD-667: dxFeed API: Optimize Promise for a case of a single PromiseHandler
QD-668: dxFeed REST API for time series and indexed events
QD-669: dxlib: TimeFormatTest shall support parsing and formatting of full ISO6801 (like in XML)
QD-670: dxFeed API: Provide DailyCandle event with impVolatility and openInterest
Release Notes - QD - Version 3.197
** Change Request
QD-476: Support storeEverything mode in History
QD-642: dxFeed API: IndexedEventModel should not extend List, but provide getEventsList method
QD-643: QD History shall set transaction flags in examineData() method
QD-644: QD Core: Update QDCollector.remove method and support it in History
QD-645: Tools: Multiplexor shall write DESCRIBE_PROTOCOL header to its snapshot file and support flags
** Defect Report
QD-611: QD Core: Examine Data from History shall avoid holding global lock while flushing data to disk.
Release Notes - QD - Version 3.196
** Change Request
QD-320: dxFeed API: Add support for Complex Orders (e.g. ISE Spread Book / Complex Order feed)
QD-335: dxFeed API: Implement IndexedEventModel and TimeSeriesEventModel
QD-549: History snapshots and cleanups
QD-625: dxFeed API: support for snapshots and transactions on indexed events and time series events
Release Notes - QD - Version 3.169
** Change Request
QD-640: RMI: Introduce BasicSubject with user+password and use it when there is no explicitly set subject
QD-693: Schedule: add new holiday calendar for TR
** Improvement
QD-684: Use JSR-305 annotations for nullability, GuardedBy, etc
Release Notes - QD - Version 3.168
** Change Request
QD-595: IPF filter: ability to specify user/pass and escape special symbols in URL
QD-612: QD Core: Support dynamic filters on agent (data provider) side without connection reset
QD-649: dxlib: Introduce explicit Marshalled.NULL constant with the result of Marshalled.forObject(null)
QD-652: RMI: Support remote interface methods with Promise<T> as their declared return type
QD-654: Common configuration framework for application protocols and agent adapters
QD-655: QD AgentAdapter shall support channels configuration properties
QD-656: RMI: More mechanisms to fail-fast when client code is using suspend/resume improperly
QD-659: RMI: RMIServiceInterface annotation
QD-660: Tools: "-s|--stat" shall be specified for each tool when running multiple tools using "+" option
** Defect Report
QD-530: Tools: Connect and compare "-f|--fields" option does not understand property names (new field names)
QD-620: RMI: Tests are highly unreliable, time-depended, and fail randomly
QD-647: Tools: Compare does not work (IllegalArgumentException) again
QD-648: Marshalled, which supports Null Object incorrectly deserialized
QD-657: RMI: When task is cancelled before it has started execution error type is TASK_CANCEL_LISTENER_NOT_SET
QD-658: RMI: Unknown subject identifier
QD-662: dxFeed API methods shall operate silently without exception on closed endpoint
** Improvement
QD-650: Improve user-perceived latency of QD History snapshot retrieval
QD-651: RMI: Improve memory footprint of some RMI client-side and server-side data structures
QD-661: Do not use DXEndpoint.close() in sample code to make it fool-proof
Release Notes - QD - Version 3.166
** Change Request
QD-513: RMI: Support request continuations (suspend/resume) for convenient asynchronous calls that do not consume executor thread
QD-635: dxFeed API: Enable safe and convenient use of xxxModel classes in multi-threaded backend application via setExecutor
QD-637: TDP: Analyze and show true stack trace trees in thread dump parser
** Defect Report
QD-627: RMI: A race in abort of incoming request on close of RMIEndpoint that may lead to non-aborted requests on a closed connection
** Improvement
QD-629: RMI: Shall log local request processing errors of all type (with the only exception of checked application exceptions)
QD-638: Agent channels shall buffer subscription requests in chunks filled up to buffer capacity
Release Notes - QD - Version 3.165
** Defect Report
QD-615: Different monitored QD endpoints in the same JVM are in conflict when publishing their stats under the same MARS node
QD-636: MARS Connectors log with "ERROR" level
Release Notes - QD - Version 3.164
** Defect Report
QD-634: NullPointerException at AgentAdapter.prepareProtocolDescriptor
Release Notes - QD - Version 3.163
** Change Request
QD-598: dxFeed API and RMI: Default executors shall log unhandled exceptions
** Defect Report
QD-628: dxFeed API: Missing logging of uncaught errors in event listener
** Improvement
QD-630: Agent channels shall filter subscription before submitting it to QD core to increase throughput
QD-631: QD Core shall support REMOVE_SYMBOL event flag in addSubscription invocation to combine add/remove sub under one lock
QD-632: NIOConnector shall have better configuration and monitoring of reader/writer thread pools
Release Notes - QD - Version 3.162
** Defect Report
QD-621: RMI: Task that is cancelled before it had a chance to run in executor throws IllegalStateException
QD-622: ThreadDumpParser does not recognize "eliminated" locks in stack trace
QD-626: AddressSyntaxException when trying to use filter with DXEndpoint
** Improvement
QD-623: ThreadDumpParser shall print consistent percents (vs number of dumps) and sort depth by the number of occurrences (descending)
QD-624: ThreadDumpParser shall not count recursive methods multiple times
Release Notes - QD - Version 3.161
** Defect Report
QD-613: ArrayIndexOutOfBoundsException in TransformContext
QD-618: IndexOutOfBoundsException in History
QD-619: Copying data between RecordBuffers in different modes does not correctly transfer extra stuff
** Improvement
QD-606: RMI: RMIRequest shall be an abstract class that is extended by RMIRequestImpl
QD-610: Improve speed of RMI tests
Release Notes - QD - Version 3.160
** Change Request
QD-88: RMI: Explicit class-loader support
QD-250: RMI: Should not require ExecutorService implementation, should work with Executor
QD-313: RMI: Support basic forwarding of requests from one endpoint to another
QD-388: Tools: Multiplexor shall support RMI request forwarding
QD-408: QD Core: Retrieve first incoming data record on subscription separately as snapshot, prioritize its processing and network transfer
QD-506: RMI: Asynchronous server-side task API
QD-510: Schedule: update RussellTick
QD-511: RMI: Expose RMIServiceImplementation class and simplify a set of RMIServer.export methods
QD-512: Tools: Forward: RMI request forwarding tool
QD-523: RMI: add getPromise methods to RMIRequest
QD-524: RMI: Provide client-side executor for notification 
QD-533: RMI: Introduce RMIEndpoint.Side enum
QD-592: dxFeed API: Integrate news API via RMI
QD-594: QD Core: Support linking of records in RecordBuffer
QD-596: MessageConnectors shall support special characters in password and other properties
QD-599: dxlib: Provide additional utility methods in SystemProperties class for use in class-local static magic constants
QD-600: Timing: Add US holidays for 2015-2023 to Timing.
QD-603: RMI: Shall do nothing when connect is called with the same address 
QD-604: RMI: Provide public QD-level API integrate arbitrary QDCollectors with RMI
** Defect Report
QD-525: RMI: Non-public exported class does not work
QD-607: DXFeed API: User and password set via DXEndpoint methods are not sent with SSL
QD-608: RMI: Race condition can get RMIRequest stuck queued on closed connection
QD-609: QD Core: IllegalStateException when using Ticker.examineData, OnDemand in DXFeed API does not work
** Improvement
QD-79: RMI: Local toString handling in RMIInvocationHandler when toString is not explicitly declared in remote interface
QD-473: RMI: Provide separate RMIClient and RMIServer for RMIEndpoint
QD-475: RMI: Support internally-marshalled representation of RMIOperation
QD-481: RMI: Extract immutable marshalled RMIxxxMessage classes
QD-521: RMI: Make sure that the order of calls to RMIRequest.send and RMIRequest.setListener does not matter
QD-541: RMI: Should work when connect method is invoked on an attached DXEndpoint
QD-552: RMI: Proxy invocation handler shall have a local cache of operations
QD-597: RMI: Ensure that RMIRequest is fully thread-safe

dxFeed/QDS 3.154 released

Important bugfix:

[QD-593] dxFeed API: getLastEventPromise(..).cancel() does not work