import java.util.Calendar;\r
import java.util.Date;\r
import java.util.GregorianCalendar;\r
+import java.util.HashMap;\r
import java.util.List;\r
import java.util.TreeSet;\r
import java.util.Vector;\r
private final TreeSet<String> ignoreTags;\r
private final TreeSet<String> ignoreNotebooks;\r
private final TreeSet<String> ignoreLinkedNotebooks;\r
+ private HashMap<String,String> badTagSync;\r
\r
\r
\r
\r
int sequence;\r
\r
+ if (badTagSync == null)\r
+ badTagSync = new HashMap<String,String>();\r
+ else\r
+ badTagSync.clear();\r
+ \r
Tag enTag = findNextTag();\r
while(enTag!=null) {\r
if (authRefreshNeeded)\r
updateSequenceNumber = sequence;\r
conn.getSyncTable().setUpdateSequenceNumber(updateSequenceNumber);\r
} catch (EDAMUserException e) {\r
- logger.log(logger.LOW, "*** EDAM User Excepton syncLocalTags");\r
- logger.log(logger.LOW, e.toString()); \r
+ logger.log(logger.LOW, "*** EDAM User Excepton syncLocalTags: " +enTag.getName());\r
+ logger.log(logger.LOW, e.toString());\r
+ badTagSync.put(enTag.getGuid(),null);\r
error = true;\r
} catch (EDAMSystemException e) {\r
- logger.log(logger.LOW, "** EDAM System Excepton syncLocalTags");\r
+ logger.log(logger.LOW, "** EDAM System Excepton syncLocalTags: " +enTag.getName());\r
logger.log(logger.LOW, e.toString()); \r
+ badTagSync.put(enTag.getGuid(),null);\r
error = true;\r
} catch (EDAMNotFoundException e) {\r
- logger.log(logger.LOW, "*** EDAM Not Found Excepton syncLocalTags");\r
- logger.log(logger.LOW, e.toString()); \r
+ logger.log(logger.LOW, "*** EDAM Not Found Excepton syncLocalTags: " +enTag.getName());\r
+ logger.log(logger.LOW, e.toString());\r
+ badTagSync.put(enTag.getGuid(),null);\r
error = true;\r
} catch (TException e) {\r
- logger.log(logger.LOW, "*** EDAM TExcepton syncLocalTags");\r
- logger.log(logger.LOW, e.toString()); \r
+ logger.log(logger.LOW, "*** EDAM TExcepton syncLocalTags: " +enTag.getName());\r
+ logger.log(logger.LOW, e.toString());\r
+ badTagSync.put(enTag.getGuid(),null);\r
error = true;\r
} \r
\r
// Find the parent. If the parent has a sequence > 0 then it is a good\r
// parent.\r
for (int i=0; i<tags.size() && keepRunning; i++) {\r
- if (tags.get(i).getParentGuid() == null) {\r
- logger.log(logger.HIGH, "Leaving SyncRunner.findNextTag - tag found without parent");\r
- return tags.get(i);\r
- }\r
- Tag parentTag = conn.getTagTable().getTag(tags.get(i).getParentGuid());\r
- if (parentTag.getUpdateSequenceNum() > 0) {\r
- logger.log(logger.HIGH, "Leaving SyncRunner.findNextTag - tag found");\r
- return tags.get(i);\r
+ if (!badTagSync.containsKey(tags.get(i).getGuid())) {\r
+ if (tags.get(i).getParentGuid() == null) {\r
+ logger.log(logger.HIGH, "Leaving SyncRunner.findNextTag - tag found without parent");\r
+ return tags.get(i);\r
+ }\r
+ Tag parentTag = conn.getTagTable().getTag(tags.get(i).getParentGuid());\r
+ if (parentTag.getUpdateSequenceNum() > 0) {\r
+ logger.log(logger.HIGH, "Leaving SyncRunner.findNextTag - tag found");\r
+ return tags.get(i);\r
+ }\r
}\r
}\r
\r