| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -40,9 +40,7 @@ | |||
| 40 | 40 | import java.beans.PropertyChangeListener; | |
| 41 | 41 | import java.io.*; | |
| 42 | 42 | import java.util.ArrayList; | |
| 43 | - import java.util.HashSet; | ||
| 44 | 43 | import java.util.List; | |
| 45 | - import java.util.Set; | ||
| 46 | 44 | import java.util.concurrent.atomic.AtomicBoolean; | |
| 47 | 45 | ||
| 48 | 46 | import javax.swing.*; | |
@@ -93,6 +91,8 @@ public class Sketch { | |||
| 93 | 91 | /** Moved out of Editor and into here for cleaner access. */ | |
| 94 | 92 | private boolean untitled; | |
| 95 | 93 | ||
| 94 | + /** true if we've posted a "sketch disappeared" warning */ | ||
| 95 | + private boolean disappearedWarning; | ||
| 96 | 96 | ||
| 97 | 97 | /** | |
| 98 | 98 | * Used by the command-line version to create a sketch object. | |
@@ -125,6 +125,7 @@ protected void load(String path) { | |||
| 125 | 125 | int suffixLength = mode.getDefaultExtension().length() + 1; | |
| 126 | 126 | name = mainFilename.substring(0, mainFilename.length() - suffixLength); | |
| 127 | 127 | folder = new File(new File(path).getParent()); | |
| 128 | + disappearedWarning = false; | ||
| 128 | 129 | load(); | |
| 129 | 130 | } | |
| 130 | 131 | ||
@@ -1199,6 +1200,7 @@ protected void updateInternal(String sketchName, File sketchFolder) { | |||
| 1199 | 1200 | ||
| 1200 | 1201 | name = sketchName; | |
| 1201 | 1202 | folder = sketchFolder; | |
| 1203 | + disappearedWarning = false; | ||
| 1202 | 1204 | codeFolder = new File(folder, "code"); | |
| 1203 | 1205 | dataFolder = new File(folder, "data"); | |
| 1204 | 1206 | ||
@@ -1499,8 +1501,6 @@ public void prepareBuild(File targetFolder) throws SketchException { | |||
| 1499 | 1501 | */ | |
| 1500 | 1502 | ||
| 1501 | 1503 | ||
| 1502 | - private Set<File> existenceWarnings = new HashSet<>(); | ||
| 1503 | - | ||
| 1504 | 1504 | /** | |
| 1505 | 1505 | * Make sure the sketch hasn't been moved or deleted by a nefarious user. | |
| 1506 | 1506 | * If they did, try to re-create it and save. Only checks whether the | |
@@ -1510,8 +1510,8 @@ public void ensureExistence() { | |||
| 1510 | 1510 | if (!folder.exists()) { | |
| 1511 | 1511 | // Avoid an infinite loop if we've already warned about this | |
| 1512 | 1512 | // https://github.com/processing/processing/issues/4805 | |
| 1513 | - if (!existenceWarnings.contains(folder)) { | ||
| 1514 | - existenceWarnings.add(folder); | ||
| 1513 | + if (!disappearedWarning) { | ||
| 1514 | + disappearedWarning = true; | ||
| 1515 | 1515 | ||
| 1516 | 1516 | // Disaster recovery, try to salvage what's there already. | |
| 1517 | 1517 | Messages.showWarning(Language.text("ensure_exist.messages.missing_sketch"), | |
@@ -1526,6 +1526,7 @@ public void ensureExistence() { | |||
| 1526 | 1526 | calcModified(); | |
| 1527 | 1527 | ||
| 1528 | 1528 | } catch (Exception e) { | |
| 1529 | + // disappearedWarning prevents infinite loop in this scenario | ||
| 1529 | 1530 | Messages.showWarning(Language.text("ensure_exist.messages.unrecoverable"), | |
| 1530 | 1531 | Language.text("ensure_exist.messages.unrecoverable.description"), e); | |
| 1531 | 1532 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments