From 66992b1284744a1fb0fb30220fd0966b6a26ff3b Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr>
Date: Wed, 19 Jun 2024 10:07:45 +0200
Subject: [PATCH] Solving bug on avatar drawing null pointer exception

---
 src/main/java/ui/AvatarPanelDrawer.java | 40 ++++++++++++++-----------
 1 file changed, 22 insertions(+), 18 deletions(-)

diff --git a/src/main/java/ui/AvatarPanelDrawer.java b/src/main/java/ui/AvatarPanelDrawer.java
index 176e17608a..f395369557 100644
--- a/src/main/java/ui/AvatarPanelDrawer.java
+++ b/src/main/java/ui/AvatarPanelDrawer.java
@@ -227,19 +227,21 @@ public class AvatarPanelDrawer {
 
 				TGConnectingPoint p1 = null, p2 = null;
 
-				if ((ar.getReferenceObject() instanceof AvatarBDPortConnector) && (ar.getOtherReferenceObjects().size() > 1)) {
-					//TraceManager.addDev("*----* Found reference objects before / after port connector");
-					AvatarBDPortConnector connOld = (AvatarBDPortConnector) (ar.getReferenceObject());
-					if ((ar.getOtherReferenceObjects().get(0) instanceof TGComponent) && (ar.getOtherReferenceObjects().get(1) instanceof TGComponent)) {
-						TGComponent tgc1 = (TGComponent) (ar.getOtherReferenceObjects().get(0));
-						TGComponent tgc2 = (TGComponent) (ar.getOtherReferenceObjects().get(1));
-
-						int index1 = tgc1.getIndexOfTGConnectingPoint(connOld.getTGConnectingPointP1());
-						int index2 = tgc2.getIndexOfTGConnectingPoint(connOld.getTGConnectingPointP2());
-
-						if ((index1 != -1) && (index2 != -1)) {
-							p1 = b1.getFreeTGConnectingPoint(index1);
-							p2 = b2.getFreeTGConnectingPoint(index2);
+				if (ar.getOtherReferenceObjects() != null) {
+					if ((ar.getReferenceObject() instanceof AvatarBDPortConnector) && (ar.getOtherReferenceObjects().size() > 1)) {
+						//TraceManager.addDev("*----* Found reference objects before / after port connector");
+						AvatarBDPortConnector connOld = (AvatarBDPortConnector) (ar.getReferenceObject());
+						if ((ar.getOtherReferenceObjects().get(0) instanceof TGComponent) && (ar.getOtherReferenceObjects().get(1) instanceof TGComponent)) {
+							TGComponent tgc1 = (TGComponent) (ar.getOtherReferenceObjects().get(0));
+							TGComponent tgc2 = (TGComponent) (ar.getOtherReferenceObjects().get(1));
+
+							int index1 = tgc1.getIndexOfTGConnectingPoint(connOld.getTGConnectingPointP1());
+							int index2 = tgc2.getIndexOfTGConnectingPoint(connOld.getTGConnectingPointP2());
+
+							if ((index1 != -1) && (index2 != -1)) {
+								p1 = b1.getFreeTGConnectingPoint(index1);
+								p2 = b2.getFreeTGConnectingPoint(index2);
+							}
 						}
 					}
 				}
@@ -260,11 +262,13 @@ public class AvatarPanelDrawer {
                         points.add(p);
                     }*/
 
-					for (int i = 0; i < ar.getOtherReferenceObjects().size(); i++) {
-						Object o = ar.getOtherReferenceObjects().get(i);
-						if (o instanceof TGCPointOfConnector) {
-							TGCPointOfConnector op = (TGCPointOfConnector) o;
-							points.add(new Point(op.getX(), op.getY()));
+					if (ar.getOtherReferenceObjects() != null) {
+						for (int i = 0; i < ar.getOtherReferenceObjects().size(); i++) {
+							Object o = ar.getOtherReferenceObjects().get(i);
+							if (o instanceof TGCPointOfConnector) {
+								TGCPointOfConnector op = (TGCPointOfConnector) o;
+								points.add(new Point(op.getX(), op.getY()));
+							}
 						}
 					}
 
-- 
GitLab