diff --git a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java
index 1a9236248..9584b0d9d 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java
@@ -50,6 +50,8 @@ public class BEncoder
public static void bencode(Object o, OutputStream out)
throws IOException, IllegalArgumentException
{
+ if (o == null)
+ throw new NullPointerException("Cannot bencode null");
if (o instanceof String)
bencode((String)o, out);
else if (o instanceof byte[])
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index 61c9c8e57..bd08dc46d 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -35,6 +35,7 @@ import net.i2p.util.I2PAppThread;
import net.i2p.util.Log;
import net.i2p.util.SecureFileOutputStream;
+import org.klomp.snark.I2PSnarkUtil;
import org.klomp.snark.MetaInfo;
import org.klomp.snark.Peer;
import org.klomp.snark.Snark;
@@ -1389,7 +1390,7 @@ public class I2PSnarkServlet extends Default {
_manager.addMessage(_("Invalid info hash in magnet URL {0}", url));
return;
}
- _manager.addMagnet(name, ih);
+ _manager.addMagnet(name, ih, true);
}
/** copied from ConfigTunnelsHelper */
@@ -1574,7 +1575,7 @@ public class I2PSnarkServlet extends Default {
}
buf.append("
").append(_("Pieces")).append(": ").append(pieces);
buf.append("
").append(_("Piece size")).append(": ").append(formatSize(snark.getPieceLength(0)));
- String hex = toHex(snark.getInfoHash());
+ String hex = I2PSnarkUtil.toHex(snark.getInfoHash());
buf.append("
").append(_("Magnet link")).append(": ")
.append(MAGNET).append(hex).append("");
// We don't have the hash of the torrent file
@@ -1799,21 +1800,6 @@ public class I2PSnarkServlet extends Default {
return "
";
}
- /**
- * Like DataHelper.toHexString but ensures no loss of leading zero bytes
- * @since 0.8.4
- */
- private static String toHex(byte[] b) {
- StringBuilder buf = new StringBuilder(40);
- for (int i = 0; i < b.length; i++) {
- int bi = b[i] & 0xff;
- if (bi < 16)
- buf.append('0');
- buf.append(Integer.toHexString(bi));
- }
- return buf.toString();
- }
-
/** @since 0.8.1 */
private void savePriorities(Snark snark, Map postParams) {
Storage storage = snark.getStorage();