iplayer/java-lib — pull request #30 by tuncayok01 (2014-03-28 14:46:04+00:00)
Title: Intermittent missing sections on feeds 

Adding callback functions to a future is not reliable as the objects may be built before the callback function is called.

Also, when the MoreFutures.aggregate method is called, any threads that fail will be silently consumed (we'll never know about). We need to log these failures.

Lastly, the transform function that is passed into the Futures.transform method may throw RuntimeExceptions which again means that the thread fails silently. Again we need to log these failures.

I have added CheckedCallable and CheckedFunction classes and refactored our code to use these classes to ensure that thread failures and function failures are logged.

Testing Notes: We need to carry out performance testing and check that the log sizes do not increase too drastically.