If the log handler (called when the code attempts to log anything) that depends on Timber acquires a lock before continuing we might get a deadlock with the NIO libraries; the locks are normally acquired by log handler and then the NIO libs used by Timber but if there are exceptions in the NIO libs we'll get a callback with the lock in the NIO libraries already acquired. When we are logging the exception we will get a deadlock if another logging operation is running since we are acquiring locks in the oppsite order.
* Implemented closedListeners in Archiver. * Added some descriptions to timber.proto. * Logserver will not attempt to send "sync" messages to it's handlers. These should be ignored. * MetadataHandler no longer writes a new file on startup, but will according to design only append if the file exists. * TimberClientPipelineFactory now holds only one instance of TimberClientHandler, so shutdown is called on the same instance which is started.
…ed creation of directory structure to MetadataHandler.
…lerTest. Replaced the dependency with the org.cloudname.idgen.
Note: This has the potential to slow down the log server since it introduces flushing for each metadata entry that gets written, however I don't think we have any actual choice in the matter: we have to flush. If performance issues arise we might have to add cleverness to this.
…utdown, and adding ChannelGroup for shutdown of all open channels on server
… push log messages into it without opening a socket. * added dispatch() method to Server class * allow channel in LogEventQueueEntry to be null so that we can dispatch log messages that did NOT originate over a channel. * modify dispatcher to deal with internally dispatched messages
* Fixed defective equals method in Coordinate * Added comment to Util to prevent people from listening to the warning from sonar where it would do no good. * Fixed loggcat bug that will always skip the first log message of a log file. BONEHEADED mistake by yours truly. * Removed error handling code in Slot that cannot possibly be triggered ever. (findNextSlotFile will never return null) * Removed an assertion that can never fire in ReconnectDelayManager * Made sure we close the InputStreamReader in testtools/Http