You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RrdEntry.count is an integer which is read or written without synchronization, and decisions are taken with the value of this integer. Calling requestRrdDb and release RrdDb could result in unexpected result. Operations on requestRrdDb and releaseRrdDb should probably be synchronized on the RrdEntry
Moreover, the method RrdDbPool.getOpenFiles() could fail with an NPE : it's possible to have on the pool an RrdEntry with a null rrdDb (because it's initializing in another thread by example)
RrdDbPool doesn't seem to be really threadsafe :
RrdEntry.count is an integer which is read or written without synchronization, and decisions are taken with the value of this integer. Calling requestRrdDb and release RrdDb could result in unexpected result. Operations on requestRrdDb and releaseRrdDb should probably be synchronized on the RrdEntry
Moreover, the method RrdDbPool.getOpenFiles() could fail with an NPE : it's possible to have on the pool an RrdEntry with a null rrdDb (because it's initializing in another thread by example)