Changeset ec0c678c


Ignore:
Timestamp:
Oct 2, 2010 3:43:56 PM (10 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
53847dc3
Parents:
b83184e
Message:
  • i2psnark:
    • Add link to finished torrent in message box
    • Don't let one bad torrent prevent others from starting or stopping
Location:
apps/i2psnark/java/src/org/klomp/snark
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/Snark.java

    rb83184e rec0c678c  
    438438                ioee.printStackTrace();
    439439            }
    440             fatal("Could not create storage", ioe);
     440            fatal("Could not check or create storage", ioe);
    441441          }
    442442      }
  • apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java

    rb83184e rec0c678c  
    440440    }
    441441
     442    /** @throws RuntimeException via Snark.fatal() */
    442443    public void addTorrent(String filename) { addTorrent(filename, false); }
     444
     445    /** @throws RuntimeException via Snark.fatal() */
    443446    public void addTorrent(String filename, boolean dontAutoStart) {
    444447        if ((!dontAutoStart) && !_util.connected()) {
     
    725728    /** two listeners */
    726729    public void torrentComplete(Snark snark) {
    727         File f = new File(snark.torrent);
     730        StringBuilder buf = new StringBuilder(256);
     731        buf.append("<a href=\"/i2psnark/").append(snark.storage.getBaseName());
     732        if (snark.meta.getFiles() != null)
     733            buf.append('/');
     734        buf.append("\">").append(snark.storage.getBaseName()).append("</a>");
    728735        long len = snark.meta.getTotalLength();
    729         addMessage(_("Download finished: \"{0}\"", f.getName()) + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')');
     736        addMessage(_("Download finished: {0}", buf.toString()) + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')');
    730737        updateStatus(snark);
    731738    }
     
    737744    private void monitorTorrents(File dir) {
    738745        String fileNames[] = dir.list(TorrentFilenameFilter.instance());
    739         List foundNames = new ArrayList(0);
     746        List<String> foundNames = new ArrayList(0);
    740747        if (fileNames != null) {
    741748            for (int i = 0; i < fileNames.length; i++) {
     
    748755        }
    749756       
    750         Set existingNames = listTorrentFiles();
     757        Set<String> existingNames = listTorrentFiles();
    751758        // lets find new ones first...
    752759        for (int i = 0; i < foundNames.size(); i++) {
     
    756763                if (shouldAutoStart() && !_util.connect())
    757764                    addMessage(_("Unable to connect to I2P!"));
    758                 addTorrent((String)foundNames.get(i), !shouldAutoStart());
     765                try {
     766                    // Snark.fatal() throws a RuntimeException
     767                    // don't let one bad torrent kill the whole loop
     768                    addTorrent(foundNames.get(i), !shouldAutoStart());
     769                } catch (Exception e) {
     770                    addMessage(_("Unable to add {0}", foundNames.get(i)) + ": " + e);
     771                }
    759772            }
    760773        }
     
    766779            } else {
    767780                // known, but removed.  drop it
    768                 stopTorrent(name, true);
     781                try {
     782                    // Snark.fatal() throws a RuntimeException
     783                    // don't let one bad torrent kill the whole loop
     784                    stopTorrent(name, true);
     785                } catch (Exception e) {
     786                    // don't bother with message
     787                }
    769788            }
    770789        }
Note: See TracChangeset for help on using the changeset viewer.