diff --git a/src/main/java/it/inaf/oats/vospace/parent/exchange/ArchiveEntryDescriptor.java b/src/main/java/it/inaf/oats/vospace/parent/exchange/ArchiveEntryDescriptor.java
index a19a643d5632c8191760173b66fff34edd7543b0..044956699bec6ecc651c1d7b7d630b7f91e12b08 100644
--- a/src/main/java/it/inaf/oats/vospace/parent/exchange/ArchiveEntryDescriptor.java
+++ b/src/main/java/it/inaf/oats/vospace/parent/exchange/ArchiveEntryDescriptor.java
@@ -5,18 +5,24 @@
  */
 package it.inaf.oats.vospace.parent.exchange;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.beans.Transient;
+
 public class ArchiveEntryDescriptor {
 
     private final String vosPath;
     private final String targetNodeVosPath;
 
-    public ArchiveEntryDescriptor(String vosPath, String targetNodeVosPath) {
+    @JsonCreator
+    public ArchiveEntryDescriptor(@JsonProperty("vosPath")String vosPath, 
+            @JsonProperty("targetNodeVosPath") String targetNodeVosPath) {
         this.vosPath = vosPath;
         this.targetNodeVosPath = targetNodeVosPath;
     }
 
     public ArchiveEntryDescriptor(String vosPath) {
-        this(vosPath, null);
+        this(vosPath, vosPath);
     }
 
     public String getVosPath() {
@@ -24,16 +30,12 @@ public class ArchiveEntryDescriptor {
     }
 
     public String getTargetNodeVosPath() {
-        if (targetNodeVosPath == null) {
-            return vosPath;
-        } else {
-            return targetNodeVosPath;
-        }
+        return targetNodeVosPath;
     }
-    
+
+    @Transient
     public boolean isPointingToAnotherNode() {
-        return (targetNodeVosPath != null && 
-                !targetNodeVosPath.equals(vosPath));
+        return !targetNodeVosPath.equals(vosPath);
     }
 
 }