You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by "Mark Latimer (JIRA)" <ji...@apache.org> on 2015/04/20 17:39:58 UTC
[jira] [Created] (NIFI-526) GetHTTP may not release writeLock
Mark Latimer created NIFI-526:
---------------------------------
Summary: GetHTTP may not release writeLock
Key: NIFI-526
URL: https://issues.apache.org/jira/browse/NIFI-526
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Affects Versions: 0.0.2
Reporter: Mark Latimer
Priority: Minor
GetHTTP onTrigger process contains a path that will obtain and not release the writeLock.
This happens if enough time elapses between the first and second check of timeToPersist.
Also the readLock locked and unlocked with no meaningful work in between.
if ((etag != null || lastModified != null) && readLock.tryLock()) {
try {
//first check of timeToPersist against current time
if (timeToPersist < System.currentTimeMillis()) {
readLock.unlock();
//obtain writeLock
writeLock.lock();
//check time to persist again, this result may be different
//if the result is different because enough time has elapsed the lock is not released
if (timeToPersist < System.currentTimeMillis()) {
try {
...
} finally {
readLock.lock();
//release writeLock only if the second check of timeToPresist is before now.
writeLock.unlock();
}
}
}
} finally {
readLock.unlock();
}
}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)