summaryrefslogtreecommitdiff
path: root/sources/protocols/implementations/OnePhaseCommitProtocol.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-26 22:14:52 +0000
committerPaul Buetow <paul@buetow.org>2008-05-26 22:14:52 +0000
commit923b0503c91aa4a9c0bc94489caddf9ac94c5ad8 (patch)
tree74bf4a51494085c9ecb107d3facc31bb585669b4 /sources/protocols/implementations/OnePhaseCommitProtocol.java
parentfaee8241ff7972ceeb622e0793c655f301ef0bd0 (diff)
Two phase commit protocol works.
Diffstat (limited to 'sources/protocols/implementations/OnePhaseCommitProtocol.java')
-rw-r--r--sources/protocols/implementations/OnePhaseCommitProtocol.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/sources/protocols/implementations/OnePhaseCommitProtocol.java b/sources/protocols/implementations/OnePhaseCommitProtocol.java
index a8d8d75..bc42c38 100644
--- a/sources/protocols/implementations/OnePhaseCommitProtocol.java
+++ b/sources/protocols/implementations/OnePhaseCommitProtocol.java
@@ -47,8 +47,10 @@ public class OnePhaseCommitProtocol extends VSAbstractProtocol {
* @see protocols.VSAbstractProtocol#onClientReset()
*/
protected void onClientReset() {
- pids.clear();
- pids.addAll(getVector("pids"));
+ if (pids != null) {
+ pids.clear();
+ pids.addAll(getVector("pids"));
+ }
}
/* (non-Javadoc)
@@ -58,7 +60,6 @@ public class OnePhaseCommitProtocol extends VSAbstractProtocol {
if (pids == null) {
pids = new ArrayList<Integer>();
pids.addAll(getVector("pids"));
-
}
if (pids.size() != 0) {
@@ -82,6 +83,8 @@ public class OnePhaseCommitProtocol extends VSAbstractProtocol {
Integer pid = recvMessage.getIntegerObj("pid");
if (pids.contains(pid))
pids.remove(pid);
+ else
+ return;
logg("ACK von Prozess " + pid + " erhalten!");