[
https://issues.apache.org/jira/browse/NIFI-526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14509531#comment-14509531
]
Michael Moser commented on NIFI-526:
------------------------------------
+1 to this patch from [~MarkLat] Thank you!
> GetHTTP may not release writeLock
> ---------------------------------
>
> Key: NIFI-526
> URL: https://issues.apache.org/jira/browse/NIFI-526
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Affects Versions: 0.0.2
> Reporter: Mark Latimer
> Priority: Minor
> Labels: beginner, newbie
> Fix For: 0.1.0
>
> Attachments:
> 0001-NIFI-526-move-check-into-try-so-writeLock-is-release.patch
>
>
> 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.
> {code:title=GetHTTP.java|borderStyle=solid}
> 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();
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)