diff --git a/pp.A4-HandOverHandLocking/src/main/java/pp/Main.java b/pp.A4-HandOverHandLocking/src/main/java/pp/Main.java index b1a13c4..b3e8df7 100644 --- a/pp.A4-HandOverHandLocking/src/main/java/pp/Main.java +++ b/pp.A4-HandOverHandLocking/src/main/java/pp/Main.java @@ -13,7 +13,8 @@ public class Main { if (sum != expected) { System.out.println("Fehler in " + Thread.currentThread().getName() + ": " + sum); - } + }else + System.out.println("Kein Fehler in " + Thread.currentThread().getName() + ": " + sum); }; } diff --git a/pp.A4-HandOverHandLocking/src/main/java/pp/SimplifiedList.java b/pp.A4-HandOverHandLocking/src/main/java/pp/SimplifiedList.java index dd9f1a1..d2c7718 100644 --- a/pp.A4-HandOverHandLocking/src/main/java/pp/SimplifiedList.java +++ b/pp.A4-HandOverHandLocking/src/main/java/pp/SimplifiedList.java @@ -7,6 +7,7 @@ public interface SimplifiedList { * * @param index index of the element to return * @return the element at the specified position in this list + * @throws Exception */ public T get(int index); @@ -28,6 +29,7 @@ public interface SimplifiedList { * @param index index of the element to replace * @param element element to be stored at the specified position * @return the element previously at the specified position + * @throws Exception */ public T set(int index, T element); diff --git a/pp.A4-HandOverHandLocking/src/main/java/pp/ThreadsafeSimplifiedList.java b/pp.A4-HandOverHandLocking/src/main/java/pp/ThreadsafeSimplifiedList.java index f9bb9dc..f3f1394 100644 --- a/pp.A4-HandOverHandLocking/src/main/java/pp/ThreadsafeSimplifiedList.java +++ b/pp.A4-HandOverHandLocking/src/main/java/pp/ThreadsafeSimplifiedList.java @@ -29,8 +29,13 @@ public class ThreadsafeSimplifiedList * @return the element at the specified position in this list */ @Override - public T get(int index) { + public T get(int index){ this.listLock.lock(); + if (this.head == null) { + this.listLock.unlock(); + throw new IndexOutOfBoundsException("The list is empty"); + } + var ptr = this.head; ptr.nodeLock.lock(); this.listLock.unlock(); @@ -91,6 +96,10 @@ public class ThreadsafeSimplifiedList @Override public T set(int index, T element) { this.listLock.lock(); + if (this.head == null) { + this.listLock.unlock(); + throw new IndexOutOfBoundsException("The list is empty"); + } var ptr = this.head; ptr.nodeLock.lock(); this.listLock.unlock();