handle response of HookChangesetProvider should be synchronized

This commit is contained in:
Sebastian Sdorra
2013-07-27 15:47:26 +02:00
parent a5bc2d2087
commit 07871b9cdb
3 changed files with 25 additions and 13 deletions

View File

@@ -75,7 +75,8 @@ public class GitHookChangesetProvider implements HookChangesetProvider
* @return * @return
*/ */
@Override @Override
public HookChangesetResponse handleRequest(HookChangesetRequest request) public synchronized HookChangesetResponse handleRequest(
HookChangesetRequest request)
{ {
if (response == null) if (response == null)
{ {

View File

@@ -95,7 +95,7 @@ public class HgHookChangesetProvider implements HookChangesetProvider
* @return * @return
*/ */
@Override @Override
public HookChangesetResponse handleRequest(HookChangesetRequest request) public synchronized HookChangesetResponse handleRequest(HookChangesetRequest request)
{ {
if (response == null) if (response == null)
{ {

View File

@@ -77,20 +77,31 @@ public abstract class AbstractSvnHookChangesetProvider
* @return * @return
*/ */
@Override @Override
public HookChangesetResponse handleRequest(HookChangesetRequest request) public synchronized HookChangesetResponse handleRequest(
HookChangesetRequest request)
{ {
Changeset c = fetchChangeset(); if (response == null)
Iterable<Changeset> iterable; {
Changeset c = fetchChangeset();
Iterable<Changeset> iterable;
if (c == null) if (c == null)
{ {
iterable = Collections.EMPTY_SET; iterable = Collections.EMPTY_SET;
} }
else else
{ {
iterable = ImmutableSet.of(c); iterable = ImmutableSet.of(c);
}
response = new HookChangesetResponse(iterable);
} }
return new HookChangesetResponse(iterable); return response;
} }
//~--- fields ---------------------------------------------------------------
/** Field description */
private HookChangesetResponse response;
} }