diff --git a/pom.xml b/pom.xml
index 0e278ef6..70c3d145 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.rarchives.ripme
ripme
jar
- 1.0.23
+ 1.0.24
ripme
http://rip.rarchives.com
diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java
index 22c91916..01b363f3 100644
--- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java
+++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java
@@ -419,6 +419,9 @@ public class MainWindow implements Runnable, RipStatusHandler {
historyList.clearSelection();
historyList.setSelectedIndex(i);
Thread t = ripAlbum( (String) historyListModel.get(i) );
+ if (t == null) {
+ continue;
+ }
try {
synchronized (t) {
t.wait();
@@ -562,7 +565,9 @@ public class MainWindow implements Runnable, RipStatusHandler {
StyleConstants.setForeground(sas, color);
StyledDocument sd = logText.getStyledDocument();
try {
- sd.insertString(sd.getLength(), text + "\n", sas);
+ synchronized (this) {
+ sd.insertString(sd.getLength(), text + "\n", sas);
+ }
} catch (BadLocationException e) { }
logText.setCaretPosition(sd.getLength());
@@ -579,7 +584,7 @@ public class MainWindow implements Runnable, RipStatusHandler {
}
private Thread ripAlbum(String urlString) {
- shutdownCleanup();
+ //shutdownCleanup();
if (!logPanel.isVisible()) {
optionLog.doClick();
}
@@ -603,7 +608,9 @@ public class MainWindow implements Runnable, RipStatusHandler {
statusProgress.setValue(100);
openButton.setVisible(false);
statusLabel.setVisible(true);
- mainFrame.pack();
+ synchronized (this) {
+ mainFrame.pack();
+ }
boolean failed = false;
try {
ripper = AbstractRipper.getRipper(url);
@@ -664,7 +671,7 @@ public class MainWindow implements Runnable, RipStatusHandler {
}
}
- private void handleEvent(StatusEvent evt) {
+ private synchronized void handleEvent(StatusEvent evt) {
if (ripper.isStopped()) {
return;
}
diff --git a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java
index 8d935ae4..3773a653 100644
--- a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java
+++ b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java
@@ -19,7 +19,7 @@ import org.jsoup.nodes.Document;
public class UpdateUtils {
private static final Logger logger = Logger.getLogger(UpdateUtils.class);
- private static final String DEFAULT_VERSION = "1.0.23";
+ private static final String DEFAULT_VERSION = "1.0.24";
private static final String updateJsonURL = "http://rarchives.com/ripme.json";
private static final String updateJarURL = "http://rarchives.com/ripme.jar";
private static final String mainFileName = "ripme.jar";
diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java
index c45383e2..77ef6e59 100644
--- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java
+++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java
@@ -16,6 +16,7 @@ public class InstagramRipperTest extends RippersTest {
testURLs.put(new URL("http://instagram.com/Test_User"), "Test_User");
testURLs.put(new URL("http://instagram.com/_test_user_"), "_test_user_");
testURLs.put(new URL("http://instagram.com/-test-user-"), "-test-user-");
+ testURLs.put(new URL("http://statigr.am/username"), "username");
for (URL url : testURLs.keySet()) {
InstagramRipper ripper = new InstagramRipper(url);
assertEquals(testURLs.get(url), ripper.getGID(ripper.getURL()));