fixed getObject(VorbaId) lookup in vamsas-client
authorjprocter <Jim Procter>
Fri, 18 May 2007 15:45:58 +0000 (15:45 +0000)
committerjprocter <Jim Procter>
Fri, 18 May 2007 15:45:58 +0000 (15:45 +0000)
lib/vamsas-client.jar
src/jalview/io/VamsasAppDatastore.java

index 14c7b33..f78c82f 100644 (file)
Binary files a/lib/vamsas-client.jar and b/lib/vamsas-client.jar differ
index 519713e..3c6e441 100644 (file)
@@ -96,6 +96,10 @@ public class VamsasAppDatastore
     {
       return cdoc.getObject( (VorbaId) jv2vobj.get(jvobj));
     }
+    if (Cache.log.isDebugEnabled())
+    {
+      Cache.log.debug("Returning null VorbaID binding for jalview object "+jvobj);
+    }
     return null;
   }
 
@@ -127,7 +131,7 @@ public class VamsasAppDatastore
     if (id == null)
     {
       id = cdoc.registerObject(vobj);
-      if (id == null || vobj.getVorbaId() == null)
+      if (id == null || vobj.getVorbaId() == null || cdoc.getObject(id)!=vobj)
       {
         Cache.log.error("Failed to get id for " +
                         (vobj.isRegisterable() ? "registerable" :
@@ -152,6 +156,7 @@ public class VamsasAppDatastore
     /* Cache.log.error("Attempt to make conflicting object binding! "+vobj+" id " +vobj.getVorbaId()+" already bound to "+getvObj2jv(vobj)+" and "+jvobj+" already bound to "+getjv2vObj(jvobj),new Exception("Excessive call to bindjvvobj"));
          }*/
     // we just update the hash's regardless!
+    Cache.log.debug("Binding "+vobj.getVorbaId()+" to "+jvobj);
     vobj2jv.put(vobj.getVorbaId(), jvobj);
     // JBPNote - better implementing a hybrid invertible hash.
     jv2vobj.put(jvobj, vobj.getVorbaId());
@@ -330,6 +335,10 @@ public class VamsasAppDatastore
           alseq.setName(jal.getSequenceAt(i).getName());
           alseq.setStart(jal.getSequenceAt(i).getStart());
           alseq.setEnd(jal.getSequenceAt(i).getEnd());
+          if (getjv2vObj(jal.getSequenceAt(i).getDatasetSequence())==null)
+          {
+            Cache.log.warn("Serious. Unbound dataset sequence in alignment: "+jal.getSequenceAt(i).getDatasetSequence());
+          }
           alseq.setRefid(getjv2vObj(jal.getSequenceAt(i).getDatasetSequence()));
           alignment.addAlignmentSequence(alseq);
           bindjvvobj(jal.getSequenceAt(i), alseq);