From 89a3c6e7a8780d1056556a725183d29da89baf78 Mon Sep 17 00:00:00 2001
From: gwen-soleil <gwenaelle.abeille@gmail.com>
Date: Mon, 25 Apr 2022 10:15:46 +0200
Subject: [PATCH] add an check on constructor input size.

---
 .../fr/soleil/archiving/snap/api/tools/SnapContext.java    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/main/java/fr/soleil/archiving/snap/api/tools/SnapContext.java b/src/main/java/fr/soleil/archiving/snap/api/tools/SnapContext.java
index 2f4c88c..71ae6fc 100644
--- a/src/main/java/fr/soleil/archiving/snap/api/tools/SnapContext.java
+++ b/src/main/java/fr/soleil/archiving/snap/api/tools/SnapContext.java
@@ -33,6 +33,7 @@
 package fr.soleil.archiving.snap.api.tools;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -171,13 +172,17 @@ public class SnapContext {
      *            identifier, creation date, reason, description and, the
      *            <I>list of attributes</I> that are included in the context.
      */
-    public SnapContext(final String[] argin) {
+    public SnapContext(final String[] argin) throws SnapshotingException {
+        if(argin.length < 6){
+            throw new SnapshotingException("argin size must be at least 6: "+ Arrays.toString(argin));
+        }
         setAuthor_name(argin[0]);
         setName(argin[1]);
         setId(Integer.parseInt(argin[2]));
         setCreation_date(java.sql.Date.valueOf(argin[3]));
         setReason(argin[4]);
         setDescription(argin[5]);
+
         // Attribute list construction
         for (int i = 6; i < argin.length; i++) {
 			attributeList.add(new AttributeLight(argin[i]));
-- 
GitLab