prevent dbref->map->to->datasetsequence->dbref-> type cycles
[jalview.git] / src / jalview / io / vamsas / Dbref.java
index c27bc9a..5698228 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
+ * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -106,15 +106,18 @@ public class Dbref extends Rangetype
     {
       if (mp.getTo().getDatasetSequence() == null)
       {
-        // sync the dataset sequence, if it hasn't been done already.
-        Datasetsequence dssync = new Datasetsequence(
+        if (!dsReg.isInvolvedInDsitem(mp.getTo()))
+        {
+          // sync the dataset sequence, if it hasn't been done already.
+          Datasetsequence dssync = new Datasetsequence(
                 datastore, mp.getTo(),
                 (mp.getMappedWidth() == mp.getWidth()) ? sequence
                         .getDictionary()
                         : ((mp.getMappedWidth() == 3) ? uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA
                                 : uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA),
                 ds);
-        // add a mapping between new dataset sequence and sequence associated with the database reference
+          // add a mapping between new dataset sequence and sequence associated with the database reference
+        }
         
       } else {
         log.debug("Ignoring non-dataset sequence mapping.");