diff --git a/apps/i2psnark/java/src/org/klomp/snark/BWLimits.java b/apps/i2psnark/java/src/org/klomp/snark/BWLimits.java index eb157cb5e..368215119 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/BWLimits.java +++ b/apps/i2psnark/java/src/org/klomp/snark/BWLimits.java @@ -7,7 +7,6 @@ package org.klomp.snark; import java.util.Arrays; import java.util.Properties; -import net.i2p.I2PAppContext; import net.i2p.client.I2PSessionException; import net.i2p.client.I2PClient; import net.i2p.client.I2PSession; diff --git a/apps/i2psnark/java/src/org/klomp/snark/BitField.java b/apps/i2psnark/java/src/org/klomp/snark/BitField.java index 876a39159..4fb6b2815 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/BitField.java +++ b/apps/i2psnark/java/src/org/klomp/snark/BitField.java @@ -137,6 +137,7 @@ public class BitField return count >= size; } + @Override public String toString() { // Not very efficient diff --git a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java index 1a43514de..aca5fb69e 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java +++ b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java @@ -46,7 +46,7 @@ public class I2PSnarkUtil { private Map _opts; private I2PSocketManager _manager; private boolean _configured; - private Set _shitlist; + private final Set _shitlist; private int _maxUploaders; private int _maxUpBW; private int _maxConnections; diff --git a/apps/i2psnark/java/src/org/klomp/snark/Message.java b/apps/i2psnark/java/src/org/klomp/snark/Message.java index 091353293..a91e5ca23 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Message.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Message.java @@ -110,6 +110,7 @@ class Message dos.write(data, off, len); } + @Override public String toString() { switch (type) diff --git a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java index 77f07d299..04d5b30c8 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java +++ b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java @@ -345,6 +345,7 @@ public class MetaInfo return length; } + @Override public String toString() { return "MetaInfo[info_hash='" + hexencode(info_hash) diff --git a/apps/i2psnark/java/src/org/klomp/snark/Peer.java b/apps/i2psnark/java/src/org/klomp/snark/Peer.java index 6e76965e8..a1b2c1039 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Peer.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Peer.java @@ -106,6 +106,7 @@ public class Peer implements Comparable /** * Returns the String representation of the peerID. */ + @Override public String toString() { if (peerID != null) @@ -125,6 +126,7 @@ public class Peer implements Comparable /** * The hash code of a Peer is the hash code of the peerID. */ + @Override public int hashCode() { return peerID.hashCode() ^ (2 << _id); @@ -134,6 +136,7 @@ public class Peer implements Comparable * Two Peers are equal when they have the same PeerID. * All other properties are ignored. */ + @Override public boolean equals(Object o) { if (o instanceof Peer) diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java b/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java index 1a53c342f..1a7f8e4d6 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java @@ -41,7 +41,7 @@ class PeerConnectionOut implements Runnable private boolean quit; // Contains Messages. - private List sendQueue = new ArrayList(); + private final List sendQueue = new ArrayList(); private static long __id = 0; private long _id; diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinatorSet.java b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinatorSet.java index 23fe09803..de367c4d4 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinatorSet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinatorSet.java @@ -12,7 +12,7 @@ import java.util.Set; * from it there too) */ public class PeerCoordinatorSet { - private Set _coordinators; + private final Set _coordinators; public PeerCoordinatorSet() { _coordinators = new HashSet(); diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerID.java b/apps/i2psnark/java/src/org/klomp/snark/PeerID.java index 0a998af3d..c4a4e9194 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerID.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerID.java @@ -107,6 +107,7 @@ public class PeerID implements Comparable /** * The hash code of a PeerID is the exclusive or of all id bytes. */ + @Override public int hashCode() { return hash; @@ -127,6 +128,7 @@ public class PeerID implements Comparable /** * Two PeerIDs are equal when they have the same id, address and port. */ + @Override public boolean equals(Object o) { if (o instanceof PeerID) @@ -171,6 +173,7 @@ public class PeerID implements Comparable * and address is the base64 dest (was the base64 hash of the dest) which * should match what the bytemonsoon tracker reports on its web pages. */ + @Override public String toString() { int nonZero = 0; diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerListener.java b/apps/i2psnark/java/src/org/klomp/snark/PeerListener.java index f505a4118..2cbd34bb5 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerListener.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerListener.java @@ -151,7 +151,7 @@ public interface PeerListener * * @param state the PeerState for the peer */ - void savePeerPartial(PeerState state); + void savePeerPartial(PeerState state); /* FIXME Exporting non-public type through public API FIXME */ /** * Called when a peer has connected and there may be a partially @@ -161,7 +161,7 @@ public interface PeerListener * * @return request (contains the partial data and valid length) */ - Request getPeerPartial(BitField havePieces); + Request getPeerPartial(BitField havePieces); /* FIXME Exporting non-public type through public API FIXME */ /** Mark a peer's requested pieces unrequested when it is disconnected * This prevents premature end game diff --git a/apps/i2psnark/java/src/org/klomp/snark/Piece.java b/apps/i2psnark/java/src/org/klomp/snark/Piece.java index 0c153262a..b08ea3476 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Piece.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Piece.java @@ -20,13 +20,24 @@ public class Piece implements Comparable { return this.peers.size() - ((Piece)o).peers.size(); } + @Override public boolean equals(Object o) { - if (o == null) return false; - try { - return this.id == ((Piece)o).id; - } catch (ClassCastException cce) { - return false; + if (o instanceof Piece) { + if (o == null) return false; + try { + return this.id == ((Piece)o).id; + } catch (ClassCastException cce) { + return false; + } } + return false; + } + + @Override + public int hashCode() { + int hash = 5; + hash = 31 * hash + this.id; + return hash; } public int getId() { return this.id; } @@ -36,6 +47,7 @@ public class Piece implements Comparable { public boolean isRequested() { return this.requested; } public void setRequested(boolean requested) { this.requested = requested; } + @Override public String toString() { return String.valueOf(id); } diff --git a/apps/i2psnark/java/src/org/klomp/snark/Request.java b/apps/i2psnark/java/src/org/klomp/snark/Request.java index 2560b761d..cc8600b13 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Request.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Request.java @@ -51,11 +51,13 @@ class Request throw new IndexOutOfBoundsException("Illegal Request " + toString()); } + @Override public int hashCode() { return piece ^ off ^ len; } + @Override public boolean equals(Object o) { if (o instanceof Request) @@ -67,6 +69,7 @@ class Request return false; } + @Override public String toString() { return "(" + piece + "," + off + "," + len + ")"; diff --git a/apps/i2psnark/java/src/org/klomp/snark/Snark.java b/apps/i2psnark/java/src/org/klomp/snark/Snark.java index 53c42dfad..217cc00a7 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Snark.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Snark.java @@ -28,7 +28,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.Iterator; import java.util.List; -import java.util.Map; import java.util.Properties; import java.util.Random; import java.util.StringTokenizer; diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java index ff507dc87..950f2e827 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java +++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java @@ -29,13 +29,13 @@ public class SnarkManager implements Snark.CompleteListener { public static SnarkManager instance() { return _instance; } /** map of (canonical) filename to Snark instance (unsynchronized) */ - private Map _snarks; - private Object _addSnarkLock; - private File _configFile; + private final Map _snarks; + private final Object _addSnarkLock; + private /* FIXME final FIXME */ File _configFile; private Properties _config; private I2PAppContext _context; private Log _log; - private List _messages; + private final List _messages; private I2PSnarkUtil _util; private PeerCoordinatorSet _peerCoordinatorSet; private ConnectionAcceptor _connectionAcceptor; @@ -747,6 +747,7 @@ public class SnarkManager implements Snark.CompleteListener { } public class SnarkManagerShutdown extends I2PAppThread { + @Override public void run() { Set names = listTorrentFiles(); for (Iterator iter = names.iterator(); iter.hasNext(); ) { diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkShutdown.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkShutdown.java index 376d17fa5..f41fc5c3a 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/SnarkShutdown.java +++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkShutdown.java @@ -36,6 +36,7 @@ public class SnarkShutdown extends I2PAppThread private final ShutdownListener listener; + /* FIXME Exporting non-public type through public API FIXME */ public SnarkShutdown(Storage storage, PeerCoordinator coordinator, ConnectionAcceptor acceptor, @@ -49,6 +50,7 @@ public class SnarkShutdown extends I2PAppThread this.listener = listener; } + @Override public void run() { //Snark.debug("Shutting down...", Snark.NOTICE); diff --git a/apps/i2psnark/java/src/org/klomp/snark/Storage.java b/apps/i2psnark/java/src/org/klomp/snark/Storage.java index a6ca56583..85a470f44 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Storage.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Storage.java @@ -46,7 +46,7 @@ public class Storage private final StorageListener listener; private I2PSnarkUtil _util; - private BitField bitfield; // BitField to represent the pieces + private /* FIXME final FIXME */ BitField bitfield; // BitField to represent the pieces private int needed; // Number of pieces needed private boolean _probablyComplete; // use this to decide whether to open files RO diff --git a/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java b/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java index da317998a..c9087bc7e 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java +++ b/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java @@ -81,6 +81,7 @@ public class TrackerClient extends I2PAppThread started = false; } + @Override public void start() { if (stop) throw new RuntimeException("Dont rerun me, create a copy"); super.start(); @@ -109,6 +110,7 @@ public class TrackerClient extends I2PAppThread return !stop && _util.connected(); } + @Override public void run() { String infoHash = urlencode(meta.getInfoHash()); @@ -162,7 +164,7 @@ public class TrackerClient extends I2PAppThread try { if (!verifyConnected()) return; - boolean started = false; + boolean runStarted = false; boolean firstTime = true; int consecutiveFails = 0; Random r = new Random(); @@ -178,7 +180,7 @@ public class TrackerClient extends I2PAppThread if (firstTime) { delay = r.nextInt(30*1000); firstTime = false; - } else if (completed && started) + } else if (completed && runStarted) delay = 3*SLEEP*60*1000 + random; else if (coordinator.trackerProblems != null && ++consecutiveFails < MAX_CONSEC_FAILS) delay = INITIAL_SLEEP; @@ -221,7 +223,7 @@ public class TrackerClient extends I2PAppThread Tracker tr = (Tracker)iter.next(); if ((!stop) && (!tr.stop) && (completed || coordinator.needPeers()) && - (event == COMPLETED_EVENT || System.currentTimeMillis() > tr.lastRequestTime + tr.interval)) + (event.equals(COMPLETED_EVENT) || System.currentTimeMillis() > tr.lastRequestTime + tr.interval)) { try { @@ -237,7 +239,7 @@ public class TrackerClient extends I2PAppThread tr.consecutiveFails = 0; if (tr.isPrimary) consecutiveFails = 0; - started = true; + runStarted = true; tr.started = true; Set peers = info.getPeers(); @@ -296,7 +298,7 @@ public class TrackerClient extends I2PAppThread // we could try and total the unique peers but that's too hard for now coordinator.trackerSeenPeers = maxSeenPeers; - if (!started) + if (!runStarted) _util.debug(" Retrying in one minute...", Snark.DEBUG); } // *** end of while loop } // try @@ -338,7 +340,7 @@ public class TrackerClient extends I2PAppThread + "&uploaded=" + uploaded + "&downloaded=" + downloaded + "&left=" + left - + ((event != NO_EVENT) ? ("&event=" + event) : ""); + + ((! event.equals(NO_EVENT)) ? ("&event=" + event) : ""); _util.debug("Sending TrackerClient request: " + s, Snark.INFO); tr.lastRequestTime = System.currentTimeMillis(); diff --git a/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java b/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java index 51472f6dd..c2a287270 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java +++ b/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java @@ -125,6 +125,7 @@ public class TrackerInfo return interval; } + @Override public String toString() { if (failure_reason != null) diff --git a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEValue.java b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEValue.java index 47814df34..c32fa9e10 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEValue.java +++ b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEValue.java @@ -172,6 +172,7 @@ public class BEValue /** return the untyped value */ public Object getValue() { return value; } + @Override public String toString() { String valueString; 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 99b4c22ca..4a2740358 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -27,7 +27,6 @@ import net.i2p.util.FileUtil; import net.i2p.util.I2PAppThread; import net.i2p.util.Log; -import org.klomp.snark.I2PSnarkUtil; import org.klomp.snark.MetaInfo; import org.klomp.snark.Peer; import org.klomp.snark.Snark; @@ -46,6 +45,7 @@ public class I2PSnarkServlet extends HttpServlet { public static final String PROP_CONFIG_FILE = "i2psnark.configFile"; + @Override public void init(ServletConfig cfg) throws ServletException { super.init(cfg); _context = I2PAppContext.getGlobalContext(); @@ -59,6 +59,7 @@ public class I2PSnarkServlet extends HttpServlet { _manager.start(); } + @Override public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/BufferLogger.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/BufferLogger.java index 4c3da0898..80d1fd054 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/BufferLogger.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/BufferLogger.java @@ -14,7 +14,7 @@ import net.i2p.util.Log; */ class BufferLogger implements Logging { private final static Log _log = new Log(BufferLogger.class); - private ByteArrayOutputStream _baos; // should be final and use a factory. LINT + private ByteArrayOutputStream _baos; // FIXME should be final and use a factory. FIXME private boolean _ignore; /** diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java index 190a4a96d..946e40430 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java @@ -66,7 +66,7 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna // private Object conLock = new Object(); /** List of Socket for those accept()ed but not yet started up */ - private List _waitingSockets = new ArrayList(); // should be final and use a factory. LINT + private List _waitingSockets = new ArrayList(); // FIXME should be final and use a factory. FIXME /** How many connections will we allow to be in the process of being built at once? */ private int _numConnectionBuilders; /** How long will we allow sockets to sit in the _waitingSockets map before killing them? */ diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java index 65941f3ba..28484a57a 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java @@ -153,6 +153,7 @@ public class I2PTunnelConnectClient extends I2PTunnelClientBase implements Runna * create the default options (using the default timeout, etc) * */ + @Override protected I2PSocketOptions getDefaultOptions() { Properties defaultOpts = getTunnel().getClientOptions(); if (!defaultOpts.contains(I2PSocketOptions.PROP_READ_TIMEOUT)) @@ -259,8 +260,8 @@ public class I2PTunnelConnectClient extends I2PTunnelClientBase implements Runna return; } - Destination dest = I2PTunnel.destFromName(destination); - if (dest == null) { + Destination clientDest = I2PTunnel.destFromName(destination); + if (clientDest == null) { String str; byte[] header; if (usingWWWProxy) @@ -276,7 +277,7 @@ public class I2PTunnelConnectClient extends I2PTunnelClientBase implements Runna return; } - I2PSocket i2ps = createI2PSocket(dest, getDefaultOptions()); + I2PSocket i2ps = createI2PSocket(clientDest, getDefaultOptions()); byte[] data = null; byte[] response = null; if (usingWWWProxy) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java index fc8d5b76a..59169a18c 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java @@ -191,6 +191,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable * create the default options (using the default timeout, etc) * unused? */ + @Override protected I2PSocketOptions getDefaultOptions() { Properties defaultOpts = getTunnel().getClientOptions(); if (!defaultOpts.contains(I2PSocketOptions.PROP_READ_TIMEOUT)) @@ -207,6 +208,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable * create the default options (using the default timeout, etc) * */ + @Override protected I2PSocketOptions getDefaultOptions(Properties overrides) { Properties defaultOpts = getTunnel().getClientOptions(); defaultOpts.putAll(overrides); @@ -561,8 +563,8 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable return; } - Destination dest = I2PTunnel.destFromName(destination); - if (dest == null) { + Destination clientDest = I2PTunnel.destFromName(destination); + if (clientDest == null) { //l.log("Could not resolve " + destination + "."); if (_log.shouldLog(Log.WARN)) _log.warn("Unable to resolve " + destination + " (proxy? " + usingWWWProxy + ", request: " + targetRequest); @@ -594,7 +596,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable // 1 == disconnect. see ConnectionOptions in the new streaming lib, which i // dont want to hard link to here //opts.setProperty("i2p.streaming.inactivityTimeoutAction", ""+1); - I2PSocket i2ps = createI2PSocket(dest, getDefaultOptions(opts)); + I2PSocket i2ps = createI2PSocket(clientDest, getDefaultOptions(opts)); byte[] data = newRequest.toString().getBytes("ISO-8859-1"); Runnable onTimeout = new OnTimeout(s, s.getOutputStream(), targetRequest, usingWWWProxy, currentProxy, requestId); I2PTunnelRunner runner = new I2PTunnelHTTPClientRunner(s, i2ps, sockLock, data, mySockets, onTimeout); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java index dd8c289d9..b194ab702 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java @@ -77,10 +77,10 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase implements Runnable protected void clientConnectionRun(Socket s) { if (_log.shouldLog(Log.DEBUG)) _log.debug("got a connection."); - Destination dest = pickDestination(); + Destination clientDest = pickDestination(); I2PSocket i2ps = null; try { - i2ps = createI2PSocket(dest); + i2ps = createI2PSocket(clientDest); i2ps.setReadTimeout(readTimeout); StringBuilder expectedPong = new StringBuilder(); Thread in = new I2PThread(new IrcInboundFilter(s,i2ps, expectedPong), "IRC Client " + __clientId + " in"); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/streamr/Pinger.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/streamr/Pinger.java index 29d1186c4..b1abd47e1 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/streamr/Pinger.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/streamr/Pinger.java @@ -54,6 +54,6 @@ public class Pinger implements Source, Runnable { protected Sink sink; protected Thread thread; - protected Object waitlock; // should be final and use a factory. LINT + protected Object waitlock; // FIXME should be final and use a factory. FIXME protected boolean running; } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSink.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSink.java index e08596af1..6d8737f48 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSink.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSink.java @@ -69,5 +69,5 @@ public class I2PSink implements Sink { protected boolean raw; protected I2PSession sess; protected Destination dest; - protected I2PDatagramMaker maker; // should be final and use a factory. LINT + protected I2PDatagramMaker maker; // FIXME should be final and use a factory. FIXME } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSinkAnywhere.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSinkAnywhere.java index 2da942a74..143422ce4 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSinkAnywhere.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/I2PSinkAnywhere.java @@ -67,5 +67,5 @@ public class I2PSinkAnywhere implements Sink { protected boolean raw; protected I2PSession sess; protected Destination dest; - protected I2PDatagramMaker maker; // should be final and use a factory. LINT + protected I2PDatagramMaker maker; // FIXME should be final and use a factory. FIXME } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udpTunnel/I2PTunnelUDPClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udpTunnel/I2PTunnelUDPClientBase.java index 14945c842..4cecc28c3 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udpTunnel/I2PTunnelUDPClientBase.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udpTunnel/I2PTunnelUDPClientBase.java @@ -60,7 +60,7 @@ import net.i2p.util.Log; private ServerSocket ss; - private Object startLock = new Object(); + private final Object startLock = new Object(); private boolean startRunning = false; private byte[] pubkey; diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java index dc7a48fd4..5f96f092d 100644 --- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java +++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java @@ -29,7 +29,7 @@ class I2PSocketImpl implements I2PSocket { private Destination remote; private String localID; private String remoteID; - private Object remoteIDWaiter = new Object(); + private final Object remoteIDWaiter = new Object(); private I2PInputStream in; private I2POutputStream out; private I2PSocket.SocketErrorListener _socketErrorListener; @@ -42,7 +42,7 @@ class I2PSocketImpl implements I2PSocket { private long _closedOn; private long _remoteIdSetTime; private I2PSocketOptions _options; - private Object flagLock = new Object(); + private final Object flagLock = new Object(); /** * Whether the I2P socket has already been closed. @@ -306,7 +306,7 @@ class I2PSocketImpl implements I2PSocket { //-------------------------------------------------- private class I2PInputStream extends InputStream { private String streamName; - private ByteCollector bc = new ByteCollector(); + private final ByteCollector bc = new ByteCollector(); private boolean inStreamClosed = false; private long readTimeout = -1; diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java index 0370ab16b..374ec35ce 100644 --- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java +++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerFactory.java @@ -13,7 +13,6 @@ import net.i2p.client.I2PClient; import net.i2p.client.I2PClientFactory; import net.i2p.client.I2PSession; import net.i2p.client.I2PSessionException; -import net.i2p.data.Destination; import net.i2p.util.Log; /** diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerImpl.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerImpl.java index 7015f0a9d..863c59cd5 100644 --- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerImpl.java +++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManagerImpl.java @@ -40,7 +40,7 @@ import net.i2p.util.Log; class I2PSocketManagerImpl implements I2PSocketManager, I2PSessionListener { private I2PAppContext _context; private Log _log; - private /* final */ I2PSession _session; + private /* FIXME final FIXME */ I2PSession _session; private I2PServerSocketImpl _serverSocket = null; private final Object lock = new Object(); // for locking socket lists private HashMap _outSockets; diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java index 13e18baff..140c6d6b9 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java @@ -62,7 +62,7 @@ public class ConnectionOptions extends I2PSocketOptionsImpl { private static final boolean DEFAULT_ANSWER_PINGS = true; // Syncronization fix, but doing it this way causes NPE... - // private final int _trend[] = new int[TREND_COUNT]; + // FIXME private final int _trend[] = new int[TREND_COUNT]; FIXME private int _trend[]; /** diff --git a/core/java/src/com/nettgryppa/security/HashCash.java b/core/java/src/com/nettgryppa/security/HashCash.java index 6cee4c935..56bc35861 100644 --- a/core/java/src/com/nettgryppa/security/HashCash.java +++ b/core/java/src/com/nettgryppa/security/HashCash.java @@ -212,6 +212,8 @@ public class HashCash implements Comparable { /** * Two objects are considered equal if they are both of type HashCash and have an identical string representation */ + /* FIXME missing hashCode() method FIXME */ + @Override public boolean equals(Object obj) { if(obj instanceof HashCash) return toString().equals(obj.toString()); @@ -222,6 +224,7 @@ public class HashCash implements Comparable { /** * Returns the canonical string representation of the HashCash */ + @Override public String toString() { return myToken; } diff --git a/core/java/src/freenet/support/CPUInformation/CPUID.java b/core/java/src/freenet/support/CPUInformation/CPUID.java index 378791ccf..e89fa80d2 100644 --- a/core/java/src/freenet/support/CPUInformation/CPUID.java +++ b/core/java/src/freenet/support/CPUInformation/CPUID.java @@ -167,6 +167,7 @@ public class CPUID { public boolean IsC3Compatible() { return false; } } protected static class VIAC3Impl extends CPUIDCPUInfo implements CPUInfo { + @Override public boolean IsC3Compatible() { return true; } public String getCPUModelString() { return "VIA C3"; } } diff --git a/core/java/src/gnu/crypto/hash/BaseHashStandalone.java b/core/java/src/gnu/crypto/hash/BaseHashStandalone.java index 6cfab4cc0..2ba779d32 100644 --- a/core/java/src/gnu/crypto/hash/BaseHashStandalone.java +++ b/core/java/src/gnu/crypto/hash/BaseHashStandalone.java @@ -164,6 +164,7 @@ public abstract class BaseHashStandalone implements IMessageDigestStandalone { // methods to be implemented by concrete subclasses ------------------------ + @Override public abstract Object clone(); public abstract boolean selfTest(); diff --git a/core/java/src/gnu/crypto/prng/AsyncFortunaStandalone.java b/core/java/src/gnu/crypto/prng/AsyncFortunaStandalone.java index 504b87d76..0b1f88765 100644 --- a/core/java/src/gnu/crypto/prng/AsyncFortunaStandalone.java +++ b/core/java/src/gnu/crypto/prng/AsyncFortunaStandalone.java @@ -47,6 +47,7 @@ public class AsyncFortunaStandalone extends FortunaStandalone implements Runnabl } /** the seed is only propogated once the prng is started with startup() */ + @Override public void seed(byte val[]) { Map props = new HashMap(1); props.put(SEED, (Object)val); @@ -54,6 +55,7 @@ public class AsyncFortunaStandalone extends FortunaStandalone implements Runnabl //fillBlock(); } + @Override protected void allocBuffer() {} /** @@ -133,6 +135,7 @@ public class AsyncFortunaStandalone extends FortunaStandalone implements Runnabl } } + @Override public void fillBlock() { rotateBuffer(); diff --git a/core/java/src/gnu/crypto/prng/BasePRNGStandalone.java b/core/java/src/gnu/crypto/prng/BasePRNGStandalone.java index f306c4578..e94f6bfc4 100644 --- a/core/java/src/gnu/crypto/prng/BasePRNGStandalone.java +++ b/core/java/src/gnu/crypto/prng/BasePRNGStandalone.java @@ -172,6 +172,7 @@ public abstract class BasePRNGStandalone implements IRandomStandalone { // abstract methods to implement by subclasses ----------------------------- + @Override public Object clone() throws CloneNotSupportedException { return super.clone(); diff --git a/core/java/src/gnu/crypto/prng/FortunaStandalone.java b/core/java/src/gnu/crypto/prng/FortunaStandalone.java index fbe6fdc27..0ba10c6ab 100644 --- a/core/java/src/gnu/crypto/prng/FortunaStandalone.java +++ b/core/java/src/gnu/crypto/prng/FortunaStandalone.java @@ -169,6 +169,7 @@ public class FortunaStandalone extends BasePRNGStandalone implements Serializabl System.out.println("Refilling " + (++refillCount) + " after " + diff + " for the PRNG took " + refillTime); } + @Override public void addRandomByte(byte b) { pools[pool].update(b); @@ -177,6 +178,7 @@ public class FortunaStandalone extends BasePRNGStandalone implements Serializabl pool = (pool + 1) % NUM_POOLS; } + @Override public void addRandomBytes(byte[] buf, int offset, int length) { pools[pool].update(buf, offset, length); @@ -244,6 +246,7 @@ public class FortunaStandalone extends BasePRNGStandalone implements Serializabl cryptixKeyBuf = CryptixAESKeyCache.createNew(); } + @Override public final byte nextByte() { byte[] b = new byte[1]; @@ -251,6 +254,7 @@ public class FortunaStandalone extends BasePRNGStandalone implements Serializabl return b[0]; } + @Override public final void nextBytes(byte[] out, int offset, int length) { if (!seeded) @@ -280,11 +284,13 @@ public class FortunaStandalone extends BasePRNGStandalone implements Serializabl ndx = 0; } + @Override public final void addRandomByte(byte b) { addRandomBytes(new byte[] { b }); } + @Override public final void addRandomBytes(byte[] seed, int offset, int length) { hash.update(key, 0, key.length); diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java index 5be6d2a6b..8fc308715 100644 --- a/core/java/src/net/i2p/client/I2PSessionImpl.java +++ b/core/java/src/net/i2p/client/I2PSessionImpl.java @@ -73,7 +73,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa /** reader that always searches for messages */ protected I2CPMessageReader _reader; /** where we pipe our messages */ - protected OutputStream _out; + protected /* FIXME final FIXME */OutputStream _out; /** who we send events to */ protected I2PSessionListener _sessionListener; diff --git a/core/java/src/net/i2p/client/I2PSessionImpl2.java b/core/java/src/net/i2p/client/I2PSessionImpl2.java index 9abce4b72..508057c2c 100644 --- a/core/java/src/net/i2p/client/I2PSessionImpl2.java +++ b/core/java/src/net/i2p/client/I2PSessionImpl2.java @@ -33,7 +33,7 @@ import net.i2p.util.Log; class I2PSessionImpl2 extends I2PSessionImpl { /** set of MessageState objects, representing all of the messages in the process of being sent */ - private Set _sendingStates; + private /* FIXME final FIXME */ Set _sendingStates; /** max # seconds to wait for confirmation of the message send */ private final static long SEND_TIMEOUT = 60 * 1000; // 60 seconds to send /** should we gzip each payload prior to sending it? */ diff --git a/core/java/src/net/i2p/client/I2PSimpleSession.java b/core/java/src/net/i2p/client/I2PSimpleSession.java index b417bd7f7..bdc384b44 100644 --- a/core/java/src/net/i2p/client/I2PSimpleSession.java +++ b/core/java/src/net/i2p/client/I2PSimpleSession.java @@ -7,14 +7,11 @@ package net.i2p.client; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Properties; -import java.util.Set; import net.i2p.I2PAppContext; -import net.i2p.data.DataHelper; import net.i2p.data.Destination; import net.i2p.data.Hash; import net.i2p.data.i2cp.BandwidthLimitsMessage; @@ -23,7 +20,6 @@ import net.i2p.data.i2cp.DestReplyMessage; import net.i2p.data.i2cp.GetBandwidthLimitsMessage; import net.i2p.data.i2cp.I2CPMessageReader; import net.i2p.util.I2PThread; -import net.i2p.util.Log; /** * Create a new session for doing naming and bandwidth queries only. Do not create a Destination. @@ -35,10 +31,10 @@ import net.i2p.util.Log; */ class I2PSimpleSession extends I2PSessionImpl2 { private boolean _destReceived; - private Object _destReceivedLock; + private /* FIXME final FIXME */ Object _destReceivedLock; private Destination _destination; private boolean _bwReceived; - private Object _bwReceivedLock; + private /* FIXME final FIXME */ Object _bwReceivedLock; private int[] _bwLimits; /** @@ -65,6 +61,7 @@ class I2PSimpleSession extends I2PSessionImpl2 { * @throws I2PSessionException if there is a configuration error or the router is * not reachable */ + @Override public void connect() throws I2PSessionException { _closed = false; _availabilityNotifier.stopNotifying(); @@ -109,6 +106,7 @@ class I2PSimpleSession extends I2PSessionImpl2 { } } + @Override public Destination lookupDest(Hash h) throws I2PSessionException { if (_closed) return null; @@ -125,6 +123,7 @@ class I2PSimpleSession extends I2PSessionImpl2 { return _destination; } + @Override public int[] bandwidthLimits() throws I2PSessionException { if (_closed) return null; diff --git a/core/java/src/net/i2p/client/MessageState.java b/core/java/src/net/i2p/client/MessageState.java index bae11d5fe..84ec9ad6a 100644 --- a/core/java/src/net/i2p/client/MessageState.java +++ b/core/java/src/net/i2p/client/MessageState.java @@ -21,7 +21,7 @@ class MessageState { private long _nonce; private String _prefix; private MessageId _id; - private Set _receivedStatus; + private final Set _receivedStatus; private SessionKey _key; private SessionKey _newKey; private Set _tags; diff --git a/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java b/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java index e662f6572..b9959573d 100644 --- a/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java +++ b/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java @@ -34,7 +34,7 @@ import net.i2p.util.Log; * @author jrandom */ class RequestLeaseSetMessageHandler extends HandlerImpl { - private Map _existingLeaseSets; + private final Map _existingLeaseSets; public RequestLeaseSetMessageHandler(I2PAppContext context) { super(context, RequestLeaseSetMessage.MESSAGE_TYPE); diff --git a/core/java/src/net/i2p/client/SessionIdleTimer.java b/core/java/src/net/i2p/client/SessionIdleTimer.java index f4661b73b..dad736d97 100644 --- a/core/java/src/net/i2p/client/SessionIdleTimer.java +++ b/core/java/src/net/i2p/client/SessionIdleTimer.java @@ -36,6 +36,7 @@ public class SessionIdleTimer implements SimpleTimer.TimedEvent { /** * reduce, shutdown, or both must be true */ + /* FIXME Exporting non-public type through public API FIXME */ public SessionIdleTimer(I2PAppContext context, I2PSessionImpl session, boolean reduce, boolean shutdown) { _context = context; _session = session; diff --git a/core/java/src/net/i2p/client/naming/LookupDest.java b/core/java/src/net/i2p/client/naming/LookupDest.java index 775ae6bcc..1a8a1632b 100644 --- a/core/java/src/net/i2p/client/naming/LookupDest.java +++ b/core/java/src/net/i2p/client/naming/LookupDest.java @@ -12,10 +12,8 @@ import net.i2p.client.I2PClient; import net.i2p.client.I2PSession; import net.i2p.client.I2PSimpleClient; import net.i2p.data.Base32; -import net.i2p.data.Base64; import net.i2p.data.Destination; import net.i2p.data.Hash; -import net.i2p.data.LeaseSet; /** * Connect via I2CP and ask the router to look up diff --git a/core/java/src/net/i2p/client/naming/NamingService.java b/core/java/src/net/i2p/client/naming/NamingService.java index ee02ec911..fd6277139 100644 --- a/core/java/src/net/i2p/client/naming/NamingService.java +++ b/core/java/src/net/i2p/client/naming/NamingService.java @@ -26,7 +26,7 @@ public abstract class NamingService { private final static Log _log = new Log(NamingService.class); protected I2PAppContext _context; - private HashMap _cache; + private /* FIXME final FIXME */ HashMap _cache; /** what classname should be used as the naming service impl? */ public static final String PROP_IMPL = "i2p.naming.impl"; diff --git a/core/java/src/net/i2p/client/naming/PetNameDB.java b/core/java/src/net/i2p/client/naming/PetNameDB.java index 0f6fc977f..efa96e5d0 100644 --- a/core/java/src/net/i2p/client/naming/PetNameDB.java +++ b/core/java/src/net/i2p/client/naming/PetNameDB.java @@ -23,7 +23,7 @@ import java.util.Set; */ public class PetNameDB { /** name (String) to PetName mapping */ - private Map _names; + private final Map _names; private String _path; public PetNameDB() { diff --git a/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java b/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java index 43513c188..6231261d3 100644 --- a/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java +++ b/core/java/src/net/i2p/crypto/CryptixAESKeyCache.java @@ -11,7 +11,7 @@ import java.util.List; * */ public final class CryptixAESKeyCache { - private List _availableKeys; + private final List _availableKeys; private static final int KEYSIZE = 32; // 256bit AES private static final int BLOCKSIZE = 16; diff --git a/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java b/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java index 1869f2323..d51e2366c 100644 --- a/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java +++ b/core/java/src/net/i2p/crypto/DHSessionKeyBuilder.java @@ -53,6 +53,7 @@ public class DHSessionKeyBuilder { private static int MIN_NUM_BUILDERS = -1; private static int MAX_NUM_BUILDERS = -1; private static int CALC_DELAY = -1; + /* FIXME this should be final if you syncronize FIXME */ private static volatile List _builders = new ArrayList(50); private static Thread _precalcThread = null; private BigInteger _myPrivateValue; diff --git a/core/java/src/net/i2p/crypto/HMACGenerator.java b/core/java/src/net/i2p/crypto/HMACGenerator.java index b549c8855..e37ec9202 100644 --- a/core/java/src/net/i2p/crypto/HMACGenerator.java +++ b/core/java/src/net/i2p/crypto/HMACGenerator.java @@ -22,9 +22,9 @@ import org.bouncycastle.crypto.macs.I2PHMac; public class HMACGenerator { private I2PAppContext _context; /** set of available HMAC instances for calculate */ - protected List _available; + protected final List _available; /** set of available byte[] buffers for verify */ - private List _availableTmp; + private final List _availableTmp; public HMACGenerator(I2PAppContext context) { _context = context; diff --git a/core/java/src/net/i2p/crypto/SHA256Generator.java b/core/java/src/net/i2p/crypto/SHA256Generator.java index d77ac84c6..e34f4fe91 100644 --- a/core/java/src/net/i2p/crypto/SHA256Generator.java +++ b/core/java/src/net/i2p/crypto/SHA256Generator.java @@ -16,7 +16,7 @@ import net.i2p.data.Hash; */ public final class SHA256Generator { private List _digests; - private List _digestsGnu; + private final List _digestsGnu; public SHA256Generator(I2PAppContext context) { _digests = new ArrayList(32); _digestsGnu = new ArrayList(32); diff --git a/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java b/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java index 15c149168..0b089775b 100644 --- a/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java +++ b/core/java/src/net/i2p/crypto/TransientSessionKeyManager.java @@ -36,9 +36,9 @@ import net.i2p.util.SimpleTimer; public class TransientSessionKeyManager extends SessionKeyManager { private Log _log; /** Map allowing us to go from the targeted PublicKey to the OutboundSession used */ - private Map _outboundSessions; + private final Map _outboundSessions; /** Map allowing us to go from a SessionTag to the containing TagSet */ - private Map _inboundTagSets; + private final Map _inboundTagSets; protected I2PAppContext _context; private volatile boolean _alive; @@ -81,6 +81,7 @@ public class TransientSessionKeyManager extends SessionKeyManager { } private TransientSessionKeyManager() { this(null); } + @Override public void shutdown() { _alive = false; synchronized (_inboundTagSets) { @@ -105,6 +106,7 @@ public class TransientSessionKeyManager extends SessionKeyManager { /** TagSet */ + /* FIXME Exporting non-public type through public API */ protected Set getInboundTagSets() { synchronized (_inboundTagSets) { return new HashSet(_inboundTagSets.values()); @@ -112,12 +114,14 @@ public class TransientSessionKeyManager extends SessionKeyManager { } /** OutboundSession */ + /* FIXME Exporting non-public type through public API */ protected Set getOutboundSessions() { synchronized (_outboundSessions) { return new HashSet(_outboundSessions.values()); } } + /* FIXME Exporting non-public type through public API */ protected void setData(Set inboundTagSets, Set outboundSessions) { if (_log.shouldLog(Log.INFO)) _log.info("Loading " + inboundTagSets.size() + " inbound tag sets, and " @@ -557,7 +561,7 @@ public class TransientSessionKeyManager extends SessionKeyManager { private SessionKey _currentKey; private long _established; private long _lastUsed; - private List _tagSets; + private /* FIXME final FIXME */ List _tagSets; public OutboundSession(PublicKey target) { this(target, null, _context.clock().now(), _context.clock().now(), new ArrayList()); diff --git a/core/java/src/net/i2p/crypto/TrustedUpdate.java b/core/java/src/net/i2p/crypto/TrustedUpdate.java index 102442156..22f7609d9 100644 --- a/core/java/src/net/i2p/crypto/TrustedUpdate.java +++ b/core/java/src/net/i2p/crypto/TrustedUpdate.java @@ -278,7 +278,7 @@ D8usM7Dxp5yrDrCYZ5AIijc= private static final void showVersionCLI(String signedFile) { String versionString = new TrustedUpdate().getVersionString(new File(signedFile)); - if (versionString == "") + if (versionString.equals("")) System.out.println("No version string found in file '" + signedFile + "'"); else System.out.println("Version: " + versionString); diff --git a/core/java/src/net/i2p/crypto/YKGenerator.java b/core/java/src/net/i2p/crypto/YKGenerator.java index e10b917f6..cc69fb5d8 100644 --- a/core/java/src/net/i2p/crypto/YKGenerator.java +++ b/core/java/src/net/i2p/crypto/YKGenerator.java @@ -43,6 +43,7 @@ class YKGenerator { private static int MIN_NUM_BUILDERS = -1; private static int MAX_NUM_BUILDERS = -1; private static int CALC_DELAY = -1; + /* FIXME final type if you are to syncronize FIXME */ private static volatile List _values = new ArrayList(50); // list of BigInteger[] values (y and k) private static Thread _precalcThread = null; diff --git a/core/java/src/net/i2p/data/Hash.java b/core/java/src/net/i2p/data/Hash.java index c04bc62c4..7dcce1ddb 100644 --- a/core/java/src/net/i2p/data/Hash.java +++ b/core/java/src/net/i2p/data/Hash.java @@ -31,7 +31,7 @@ public class Hash extends DataStructureImpl { private byte[] _data; private volatile String _stringified; private volatile String _base64ed; - private Map _xorCache; + private /* FIXME final FIXME */ Map _xorCache; public final static int HASH_LENGTH = 32; public final static Hash FAKE_HASH = new Hash(new byte[HASH_LENGTH]); diff --git a/core/java/src/net/i2p/data/PrivateKeyFile.java b/core/java/src/net/i2p/data/PrivateKeyFile.java index 7ba7f1b6a..c2c9d1c0a 100644 --- a/core/java/src/net/i2p/data/PrivateKeyFile.java +++ b/core/java/src/net/i2p/data/PrivateKeyFile.java @@ -262,6 +262,7 @@ public class PrivateKeyFile { out.close(); } + @Override public String toString() { StringBuilder s = new StringBuilder(128); s.append("Dest: "); diff --git a/core/java/src/net/i2p/data/RouterInfo.java b/core/java/src/net/i2p/data/RouterInfo.java index e22c033e1..f3e2f4899 100644 --- a/core/java/src/net/i2p/data/RouterInfo.java +++ b/core/java/src/net/i2p/data/RouterInfo.java @@ -36,9 +36,9 @@ public class RouterInfo extends DataStructureImpl { private final static Log _log = new Log(RouterInfo.class); private RouterIdentity _identity; private volatile long _published; - private Set _addresses; - private Set _peers; - private Properties _options; + private final Set _addresses; + private final Set _peers; + private /* FIXME final FIXME */ Properties _options; private volatile Signature _signature; private volatile Hash _currentRoutingKey; private volatile byte _routingKeyGenMod[]; diff --git a/core/java/src/net/i2p/data/i2cp/BandwidthLimitsMessage.java b/core/java/src/net/i2p/data/i2cp/BandwidthLimitsMessage.java index 888242d6b..02308c7b4 100644 --- a/core/java/src/net/i2p/data/i2cp/BandwidthLimitsMessage.java +++ b/core/java/src/net/i2p/data/i2cp/BandwidthLimitsMessage.java @@ -80,6 +80,7 @@ public class BandwidthLimitsMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof BandwidthLimitsMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/CreateLeaseSetMessage.java b/core/java/src/net/i2p/data/i2cp/CreateLeaseSetMessage.java index 5b22929e9..75818f483 100644 --- a/core/java/src/net/i2p/data/i2cp/CreateLeaseSetMessage.java +++ b/core/java/src/net/i2p/data/i2cp/CreateLeaseSetMessage.java @@ -113,6 +113,7 @@ public class CreateLeaseSetMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof CreateLeaseSetMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java b/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java index 909238625..1de5dfdbd 100644 --- a/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java +++ b/core/java/src/net/i2p/data/i2cp/CreateSessionMessage.java @@ -72,6 +72,7 @@ public class CreateSessionMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof CreateSessionMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/DestLookupMessage.java b/core/java/src/net/i2p/data/i2cp/DestLookupMessage.java index 09b405d6e..6ffea9567 100644 --- a/core/java/src/net/i2p/data/i2cp/DestLookupMessage.java +++ b/core/java/src/net/i2p/data/i2cp/DestLookupMessage.java @@ -58,6 +58,8 @@ public class DestLookupMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ + @Override public boolean equals(Object object) { if ((object != null) && (object instanceof DestLookupMessage)) { DestLookupMessage msg = (DestLookupMessage) object; @@ -66,6 +68,7 @@ public class DestLookupMessage extends I2CPMessageImpl { return false; } + @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[DestLookupMessage: "); diff --git a/core/java/src/net/i2p/data/i2cp/DestReplyMessage.java b/core/java/src/net/i2p/data/i2cp/DestReplyMessage.java index fbbb93c3d..d3b2df9e1 100644 --- a/core/java/src/net/i2p/data/i2cp/DestReplyMessage.java +++ b/core/java/src/net/i2p/data/i2cp/DestReplyMessage.java @@ -60,6 +60,8 @@ public class DestReplyMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ + @Override public boolean equals(Object object) { if ((object != null) && (object instanceof DestReplyMessage)) { DestReplyMessage msg = (DestReplyMessage) object; @@ -68,6 +70,7 @@ public class DestReplyMessage extends I2CPMessageImpl { return false; } + @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[DestReplyMessage: "); diff --git a/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java b/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java index 2c932c2b8..3cd535afe 100644 --- a/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java +++ b/core/java/src/net/i2p/data/i2cp/DestroySessionMessage.java @@ -78,6 +78,13 @@ public class DestroySessionMessage extends I2CPMessageImpl { return false; } + @Override + public int hashCode() { + int hash = 7; + hash = 11 * hash + (this._sessionId != null ? this._sessionId.hashCode() : 0); + return hash; + } + @Override public String toString() { StringBuilder buf = new StringBuilder(); diff --git a/core/java/src/net/i2p/data/i2cp/DisconnectMessage.java b/core/java/src/net/i2p/data/i2cp/DisconnectMessage.java index cdfa638cc..08f08f5e6 100644 --- a/core/java/src/net/i2p/data/i2cp/DisconnectMessage.java +++ b/core/java/src/net/i2p/data/i2cp/DisconnectMessage.java @@ -64,6 +64,7 @@ public class DisconnectMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof DisconnectMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/GetBandwidthLimitsMessage.java b/core/java/src/net/i2p/data/i2cp/GetBandwidthLimitsMessage.java index 67ad71dec..64a89824d 100644 --- a/core/java/src/net/i2p/data/i2cp/GetBandwidthLimitsMessage.java +++ b/core/java/src/net/i2p/data/i2cp/GetBandwidthLimitsMessage.java @@ -38,6 +38,7 @@ public class GetBandwidthLimitsMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof GetBandwidthLimitsMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/GetDateMessage.java b/core/java/src/net/i2p/data/i2cp/GetDateMessage.java index a928f1f68..76ee1a58f 100644 --- a/core/java/src/net/i2p/data/i2cp/GetDateMessage.java +++ b/core/java/src/net/i2p/data/i2cp/GetDateMessage.java @@ -41,6 +41,7 @@ public class GetDateMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof GetDateMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java b/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java index 3301b90d2..37b7828f9 100644 --- a/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java +++ b/core/java/src/net/i2p/data/i2cp/MessagePayloadMessage.java @@ -109,6 +109,7 @@ public class MessagePayloadMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof MessagePayloadMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java b/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java index 912b38b20..54ecad07c 100644 --- a/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java +++ b/core/java/src/net/i2p/data/i2cp/MessageStatusMessage.java @@ -154,6 +154,7 @@ public class MessageStatusMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof MessageStatusMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java b/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java index b942a7173..1b3a41655 100644 --- a/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java +++ b/core/java/src/net/i2p/data/i2cp/ReceiveMessageBeginMessage.java @@ -89,6 +89,7 @@ public class ReceiveMessageBeginMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof ReceiveMessageBeginMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java b/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java index f17298d0a..0ca0253e5 100644 --- a/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java +++ b/core/java/src/net/i2p/data/i2cp/ReceiveMessageEndMessage.java @@ -73,6 +73,7 @@ public class ReceiveMessageEndMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof ReceiveMessageEndMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java b/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java index 4e3eede84..5b5ad638c 100644 --- a/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java +++ b/core/java/src/net/i2p/data/i2cp/ReconfigureSessionMessage.java @@ -80,6 +80,7 @@ public class ReconfigureSessionMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof ReconfigureSessionMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/ReportAbuseMessage.java b/core/java/src/net/i2p/data/i2cp/ReportAbuseMessage.java index 2499610b6..fd11ec142 100644 --- a/core/java/src/net/i2p/data/i2cp/ReportAbuseMessage.java +++ b/core/java/src/net/i2p/data/i2cp/ReportAbuseMessage.java @@ -110,6 +110,7 @@ public class ReportAbuseMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof ReportAbuseMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java b/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java index f5a0557aa..46f62d264 100644 --- a/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java +++ b/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java @@ -126,6 +126,7 @@ public class RequestLeaseSetMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof RequestLeaseSetMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/SendMessageExpiresMessage.java b/core/java/src/net/i2p/data/i2cp/SendMessageExpiresMessage.java index fabd6e354..81271b150 100644 --- a/core/java/src/net/i2p/data/i2cp/SendMessageExpiresMessage.java +++ b/core/java/src/net/i2p/data/i2cp/SendMessageExpiresMessage.java @@ -27,6 +27,7 @@ import net.i2p.util.Log; */ public class SendMessageExpiresMessage extends SendMessageMessage { private final static Log _log = new Log(SendMessageExpiresMessage.class); + /* FIXME hides another field FIXME */ public final static int MESSAGE_TYPE = 36; private SessionId _sessionId; private Destination _destination; @@ -87,10 +88,12 @@ public class SendMessageExpiresMessage extends SendMessageMessage { } } + @Override public int getType() { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof SendMessageExpiresMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java b/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java index a9bb5fb58..9abd7f426 100644 --- a/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java +++ b/core/java/src/net/i2p/data/i2cp/SendMessageMessage.java @@ -135,6 +135,7 @@ public class SendMessageMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof SendMessageMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/SessionConfig.java b/core/java/src/net/i2p/data/i2cp/SessionConfig.java index 89d56c736..5b1eb6b16 100644 --- a/core/java/src/net/i2p/data/i2cp/SessionConfig.java +++ b/core/java/src/net/i2p/data/i2cp/SessionConfig.java @@ -203,6 +203,7 @@ public class SessionConfig extends DataStructureImpl { _signature.writeBytes(out); } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof SessionConfig)) { diff --git a/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java b/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java index 051bad504..d3775db0f 100644 --- a/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java +++ b/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java @@ -84,6 +84,7 @@ public class SessionStatusMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode method FIXME */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof SessionStatusMessage)) { diff --git a/core/java/src/net/i2p/data/i2cp/SetDateMessage.java b/core/java/src/net/i2p/data/i2cp/SetDateMessage.java index 174dea6d6..ff308c5d0 100644 --- a/core/java/src/net/i2p/data/i2cp/SetDateMessage.java +++ b/core/java/src/net/i2p/data/i2cp/SetDateMessage.java @@ -67,6 +67,7 @@ public class SetDateMessage extends I2CPMessageImpl { return MESSAGE_TYPE; } + /* FIXME missing hashCode() method */ @Override public boolean equals(Object object) { if ((object != null) && (object instanceof SetDateMessage)) { diff --git a/core/java/src/net/i2p/stat/BufferedStatLog.java b/core/java/src/net/i2p/stat/BufferedStatLog.java index ca016622f..d863ad59a 100644 --- a/core/java/src/net/i2p/stat/BufferedStatLog.java +++ b/core/java/src/net/i2p/stat/BufferedStatLog.java @@ -20,12 +20,12 @@ import net.i2p.util.Log; public class BufferedStatLog implements StatLog { private I2PAppContext _context; private Log _log; - private StatEvent _events[]; + private final StatEvent _events[]; private int _eventNext; private int _lastWrite; /** flush stat events to disk after this many events (or 30s)*/ private int _flushFrequency; - private List _statFilters; + private final List _statFilters; private String _lastFilters; private BufferedWriter _out; private String _outFile; @@ -125,7 +125,7 @@ public class BufferedStatLog implements StatLog { } private class StatLogWriter implements Runnable { - private SimpleDateFormat _fmt = new SimpleDateFormat("yyyyMMdd HH:mm:ss.SSS"); + private final SimpleDateFormat _fmt = new SimpleDateFormat("yyyyMMdd HH:mm:ss.SSS"); public void run() { int writeStart = -1; int writeEnd = -1; diff --git a/core/java/src/net/i2p/stat/Frequency.java b/core/java/src/net/i2p/stat/Frequency.java index 74a3407cb..16e4c8f4a 100644 --- a/core/java/src/net/i2p/stat/Frequency.java +++ b/core/java/src/net/i2p/stat/Frequency.java @@ -11,7 +11,7 @@ public class Frequency { private long _lastEvent; private long _start = now(); private long _count = 0; - private Object _lock = this; // new Object(); // in case we want to do fancy sync later + private final Object _lock = this; // new Object(); // in case we want to do fancy sync later public Frequency(long period) { setPeriod(period); diff --git a/core/java/src/net/i2p/stat/FrequencyStat.java b/core/java/src/net/i2p/stat/FrequencyStat.java index 4e01fc27d..994d26807 100644 --- a/core/java/src/net/i2p/stat/FrequencyStat.java +++ b/core/java/src/net/i2p/stat/FrequencyStat.java @@ -58,6 +58,8 @@ public class FrequencyStat { return null; } + /* FIXME missing equals() method FIXME */ + @Override public int hashCode() { return _statName.hashCode(); } diff --git a/core/java/src/net/i2p/stat/Rate.java b/core/java/src/net/i2p/stat/Rate.java index 03dc696a5..6983c6b6c 100644 --- a/core/java/src/net/i2p/stat/Rate.java +++ b/core/java/src/net/i2p/stat/Rate.java @@ -33,7 +33,7 @@ public class Rate { private long _period; /** locked during coalesce and addData */ - private Object _lock = new Object(); + private final Object _lock = new Object(); /** in the current (partial) period, what is the total value acrued through all events? */ public double getCurrentTotalValue() { @@ -452,6 +452,26 @@ public class Rate { && _lifetimeTotalEventTime == r.getLifetimeTotalEventTime(); } + @Override + public int hashCode() { + int hash = 5; + hash = 67 * hash + (int)(Double.doubleToLongBits(this._currentTotalValue) ^ (Double.doubleToLongBits(this._currentTotalValue) >>> 32)); + hash = 67 * hash + (int)(this._currentEventCount ^ (this._currentEventCount >>> 32)); + hash = 67 * hash + (int)(this._currentTotalEventTime ^ (this._currentTotalEventTime >>> 32)); + hash = 67 * hash + (int)(Double.doubleToLongBits(this._lastTotalValue) ^ (Double.doubleToLongBits(this._lastTotalValue) >>> 32)); + hash = 67 * hash + (int)(this._lastEventCount ^ (this._lastEventCount >>> 32)); + hash = 67 * hash + (int)(this._lastTotalEventTime ^ (this._lastTotalEventTime >>> 32)); + hash = 67 * hash + (int)(Double.doubleToLongBits(this._extremeTotalValue) ^ (Double.doubleToLongBits(this._extremeTotalValue) >>> 32)); + hash = 67 * hash + (int)(this._extremeEventCount ^ (this._extremeEventCount >>> 32)); + hash = 67 * hash + (int)(this._extremeTotalEventTime ^ (this._extremeTotalEventTime >>> 32)); + hash = 67 * hash + (int)(Double.doubleToLongBits(this._lifetimeTotalValue) ^ (Double.doubleToLongBits(this._lifetimeTotalValue) >>> 32)); + hash = 67 * hash + (int)(this._lifetimeEventCount ^ (this._lifetimeEventCount >>> 32)); + hash = 67 * hash + (int)(this._lifetimeTotalEventTime ^ (this._lifetimeTotalEventTime >>> 32)); + hash = 67 * hash + (int)(this._creationDate ^ (this._creationDate >>> 32)); + hash = 67 * hash + (int)(this._period ^ (this._period >>> 32)); + return hash; + } + @Override public String toString() { StringBuilder buf = new StringBuilder(2048); diff --git a/core/java/src/net/i2p/stat/StatManager.java b/core/java/src/net/i2p/stat/StatManager.java index e21f174d0..fbdbd453f 100644 --- a/core/java/src/net/i2p/stat/StatManager.java +++ b/core/java/src/net/i2p/stat/StatManager.java @@ -25,9 +25,9 @@ public class StatManager { private I2PAppContext _context; /** stat name to FrequencyStat */ - private Map _frequencyStats; + private final Map _frequencyStats; /** stat name to RateStat */ - private Map _rateStats; + private final Map _rateStats; private StatLog _statLog; public static final String PROP_STAT_FILTER = "stat.logFilters"; diff --git a/core/java/src/net/i2p/time/Timestamper.java b/core/java/src/net/i2p/time/Timestamper.java index 4692c8d53..e47ecd259 100644 --- a/core/java/src/net/i2p/time/Timestamper.java +++ b/core/java/src/net/i2p/time/Timestamper.java @@ -18,9 +18,9 @@ import net.i2p.util.Log; public class Timestamper implements Runnable { private I2PAppContext _context; private Log _log; - private List _servers; + private final List _servers; private List _priorityServers; - private List _listeners; + private final List _listeners; private int _queryFrequency; private int _concurringServers; private volatile boolean _disabled; @@ -52,6 +52,9 @@ public class Timestamper implements Runnable { this(ctx, lsnr, true); } public Timestamper(I2PAppContext ctx, UpdateListener lsnr, boolean daemon) { + // moved here to prevent problems with synchronized statements. + _servers = new ArrayList(3); + _listeners = new ArrayList(1); // Don't bother starting a thread if we are disabled. // This means we no longer check every 5 minutes to see if we got enabled, // so the property must be set at startup. @@ -65,8 +68,6 @@ public class Timestamper implements Runnable { _daemon = daemon; _initialized = false; _wellSynced = false; - _servers = new ArrayList(3); - _listeners = new ArrayList(1); if (lsnr != null) _listeners.add(lsnr); updateConfig(); diff --git a/core/java/src/net/i2p/util/ByteCache.java b/core/java/src/net/i2p/util/ByteCache.java index 4bd3da6ef..ac306cf89 100644 --- a/core/java/src/net/i2p/util/ByteCache.java +++ b/core/java/src/net/i2p/util/ByteCache.java @@ -15,7 +15,7 @@ import net.i2p.data.ByteArray; * */ public final class ByteCache { - private static Map _caches = new HashMap(16); + private final static Map _caches = new HashMap(16); /** * Get a cache responsible for objects of the given size * @@ -36,7 +36,7 @@ public final class ByteCache { } private Log _log; /** list of available and available entries */ - private List _available; + private final List _available; private int _maxCached; private int _entrySize; private long _lastOverflow; diff --git a/core/java/src/net/i2p/util/Clock.java b/core/java/src/net/i2p/util/Clock.java index 87cf9d639..a3b6a44a4 100644 --- a/core/java/src/net/i2p/util/Clock.java +++ b/core/java/src/net/i2p/util/Clock.java @@ -44,7 +44,7 @@ public class Clock implements Timestamper.UpdateListener { protected volatile long _offset; protected boolean _alreadyChanged; - private Set _listeners; + private final Set _listeners; /** if the clock is skewed by 3+ days, fuck 'em */ public final static long MAX_OFFSET = 3 * 24 * 60 * 60 * 1000; diff --git a/core/java/src/net/i2p/util/ConcurrentHashSet.java b/core/java/src/net/i2p/util/ConcurrentHashSet.java index 2db9e195e..3610c54b9 100644 --- a/core/java/src/net/i2p/util/ConcurrentHashSet.java +++ b/core/java/src/net/i2p/util/ConcurrentHashSet.java @@ -23,22 +23,27 @@ public class ConcurrentHashSet extends AbstractSet implements Set { _map = new ConcurrentHashMap(capacity); } + @Override public boolean add(E o) { return _map.put(o, DUMMY) == null; } + @Override public void clear() { _map.clear(); } + @Override public boolean contains(Object o) { return _map.containsKey(o); } + @Override public boolean isEmpty() { return _map.isEmpty(); } + @Override public boolean remove(Object o) { return _map.remove(o) != null; } @@ -51,6 +56,7 @@ public class ConcurrentHashSet extends AbstractSet implements Set { return _map.keySet().iterator(); } + @Override public boolean addAll(Collection c) { boolean rv = false; for (E e : c) diff --git a/core/java/src/net/i2p/util/EepGet.java b/core/java/src/net/i2p/util/EepGet.java index 9f2c373dc..0ab800cee 100644 --- a/core/java/src/net/i2p/util/EepGet.java +++ b/core/java/src/net/i2p/util/EepGet.java @@ -43,7 +43,7 @@ public class EepGet { protected String _actualURL; private String _postData; private boolean _allowCaching; - protected List _listeners; + protected final List _listeners; private boolean _keepFetching; private Socket _proxy; @@ -256,8 +256,8 @@ public class EepGet { private long _discarded; private long _lastComplete; private boolean _firstTime; - private DecimalFormat _pct = new DecimalFormat("00.0%"); - private DecimalFormat _kbps = new DecimalFormat("###,000.00"); + private final DecimalFormat _pct = new DecimalFormat("00.0%"); + private final DecimalFormat _kbps = new DecimalFormat("###,000.00"); public CLIStatusListener() { this(1024, 40); } diff --git a/core/java/src/net/i2p/util/EventDispatcherImpl.java b/core/java/src/net/i2p/util/EventDispatcherImpl.java index 1a67eef99..2600be7a8 100644 --- a/core/java/src/net/i2p/util/EventDispatcherImpl.java +++ b/core/java/src/net/i2p/util/EventDispatcherImpl.java @@ -35,8 +35,8 @@ public class EventDispatcherImpl implements EventDispatcher { private final static Log _log = new Log(EventDispatcherImpl.class); private boolean _ignore = false; - private HashMap _events = new HashMap(4); - private ArrayList _attached = new ArrayList(); + private /* FIXME final FIXME */ HashMap _events = new HashMap(4); + private final ArrayList _attached = new ArrayList(); public EventDispatcher getEventDispatcher() { return this; diff --git a/core/java/src/net/i2p/util/Executor.java b/core/java/src/net/i2p/util/Executor.java index fb8757f4f..5fa26ec74 100644 --- a/core/java/src/net/i2p/util/Executor.java +++ b/core/java/src/net/i2p/util/Executor.java @@ -7,7 +7,7 @@ import net.i2p.I2PAppContext; class Executor implements Runnable { private I2PAppContext _context; private Log _log; - private List _readyEvents; + private final List _readyEvents; private SimpleStore runn; public Executor(I2PAppContext ctx, Log log, List events, SimpleStore x) { diff --git a/core/java/src/net/i2p/util/I2PAppThread.java b/core/java/src/net/i2p/util/I2PAppThread.java index a4e12c8b1..a9f027cae 100644 --- a/core/java/src/net/i2p/util/I2PAppThread.java +++ b/core/java/src/net/i2p/util/I2PAppThread.java @@ -43,6 +43,7 @@ public class I2PAppThread extends I2PThread { super(r, name, isDaemon); } + @Override protected void fireOOM(OutOfMemoryError oom) { for (Iterator iter = _threadListeners.iterator(); iter.hasNext(); ) { OOMEventListener listener = (OOMEventListener)iter.next(); diff --git a/core/java/src/net/i2p/util/LogConsoleBuffer.java b/core/java/src/net/i2p/util/LogConsoleBuffer.java index e1d896d8e..a9aab2625 100644 --- a/core/java/src/net/i2p/util/LogConsoleBuffer.java +++ b/core/java/src/net/i2p/util/LogConsoleBuffer.java @@ -11,8 +11,8 @@ import net.i2p.I2PAppContext; */ public class LogConsoleBuffer { private I2PAppContext _context; - private List _buffer; - private List _critBuffer; + private final List _buffer; + private final List _critBuffer; public LogConsoleBuffer(I2PAppContext context) { _context = context; diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java index 054e79a22..ae6fbfc23 100644 --- a/core/java/src/net/i2p/util/LogManager.java +++ b/core/java/src/net/i2p/util/LogManager.java @@ -70,11 +70,11 @@ public class LogManager { /** the config file */ private File _locationFile; /** Ordered list of LogRecord elements that have not been written out yet */ - private List _records; + private /* FIXME final FIXME */ List _records; /** List of explicit overrides of log levels (LogLimit objects) */ - private List _limits; + private /* FIXME final FIXME */ List _limits; /** String (scope) to Log object */ - private Map _logs; + private /* FIXME final FIXME */ Map _logs; /** who clears and writes our records */ private LogWriter _writer; diff --git a/core/java/src/net/i2p/util/NativeBigInteger.java b/core/java/src/net/i2p/util/NativeBigInteger.java index 44101afd9..92be25414 100644 --- a/core/java/src/net/i2p/util/NativeBigInteger.java +++ b/core/java/src/net/i2p/util/NativeBigInteger.java @@ -24,8 +24,6 @@ import freenet.support.CPUInformation.IntelCPUInfo; import freenet.support.CPUInformation.UnknownCPUException; import net.i2p.I2PAppContext; -import net.i2p.util.FileUtil; -import net.i2p.util.Log; /** *

BigInteger that takes advantage of the jbigi library for the modPow operation, diff --git a/core/java/src/net/i2p/util/OrderedProperties.java b/core/java/src/net/i2p/util/OrderedProperties.java index 65d8f049a..3c10dcb92 100644 --- a/core/java/src/net/i2p/util/OrderedProperties.java +++ b/core/java/src/net/i2p/util/OrderedProperties.java @@ -40,7 +40,7 @@ public class OrderedProperties extends Properties { private Map _data; /** lock this before touching _order or _data */ - private Object _lock = new Object(); + private final Object _lock = new Object(); public OrderedProperties() { super(); @@ -269,6 +269,7 @@ public class OrderedProperties extends Properties { return -2; } + /* FIXME missing hashCode() method FIXME */ @Override public boolean equals(Object o) { if (o == null) return false; diff --git a/core/java/src/net/i2p/util/ResettableGZIPInputStream.java b/core/java/src/net/i2p/util/ResettableGZIPInputStream.java index 41e43407e..11432bd3e 100644 --- a/core/java/src/net/i2p/util/ResettableGZIPInputStream.java +++ b/core/java/src/net/i2p/util/ResettableGZIPInputStream.java @@ -169,16 +169,16 @@ public class ResettableGZIPInputStream extends InflaterInputStream { // handle flags... if (0 != (flags & (1<<5))) { // extra header, read and ignore - int len = 0; + int _len = 0; c = in.read(); if (c == -1) throw new IOException("EOF reading the extra header"); - len = c; + _len = c; c = in.read(); if (c == -1) throw new IOException("EOF reading the extra header"); - len += (c << 8); + _len += (c << 8); // now skip that data - for (int i = 0; i < len; i++) { + for (int i = 0; i < _len; i++) { c = in.read(); if (c == -1) throw new IOException("EOF reading the extra header's body"); } diff --git a/core/java/src/net/i2p/util/ReusableGZIPInputStream.java b/core/java/src/net/i2p/util/ReusableGZIPInputStream.java index d3dcb5261..a24ad1282 100644 --- a/core/java/src/net/i2p/util/ReusableGZIPInputStream.java +++ b/core/java/src/net/i2p/util/ReusableGZIPInputStream.java @@ -14,7 +14,7 @@ import net.i2p.data.DataHelper; * */ public class ReusableGZIPInputStream extends ResettableGZIPInputStream { - private static ArrayList _available = new ArrayList(8); + private final static ArrayList _available = new ArrayList(8); /** * Pull a cached instance */ diff --git a/core/java/src/net/i2p/util/ReusableGZIPOutputStream.java b/core/java/src/net/i2p/util/ReusableGZIPOutputStream.java index ad259c6d6..422979648 100644 --- a/core/java/src/net/i2p/util/ReusableGZIPOutputStream.java +++ b/core/java/src/net/i2p/util/ReusableGZIPOutputStream.java @@ -14,7 +14,7 @@ import net.i2p.data.DataHelper; * */ public class ReusableGZIPOutputStream extends ResettableGZIPOutputStream { - private static ArrayList _available = new ArrayList(16); + private static final ArrayList _available = new ArrayList(16); /** * Pull a cached instance */ diff --git a/core/java/src/net/i2p/util/ShellCommand.java b/core/java/src/net/i2p/util/ShellCommand.java index 80bdc32f6..d6fce0021 100644 --- a/core/java/src/net/i2p/util/ShellCommand.java +++ b/core/java/src/net/i2p/util/ShellCommand.java @@ -51,7 +51,7 @@ public class ShellCommand { */ private class CommandThread extends Thread { - Object caller; + final Object caller; boolean consumeOutput; String shellCommand; diff --git a/core/java/src/net/i2p/util/SimpleTimer.java b/core/java/src/net/i2p/util/SimpleTimer.java index bb0a2e67e..cf8e7e34b 100644 --- a/core/java/src/net/i2p/util/SimpleTimer.java +++ b/core/java/src/net/i2p/util/SimpleTimer.java @@ -21,10 +21,10 @@ public class SimpleTimer { private I2PAppContext _context; private Log _log; /** event time (Long) to event (TimedEvent) mapping */ - private TreeMap _events; + private final TreeMap _events; /** event (TimedEvent) to event time (Long) mapping */ private Map _eventTimes; - private List _readyEvents; + private final List _readyEvents; private SimpleStore runn; protected SimpleTimer() { this("SimpleTimer"); } diff --git a/core/java/src/org/bouncycastle/crypto/digests/MD5Digest.java b/core/java/src/org/bouncycastle/crypto/digests/MD5Digest.java index cd434b911..04ae6e1fd 100644 --- a/core/java/src/org/bouncycastle/crypto/digests/MD5Digest.java +++ b/core/java/src/org/bouncycastle/crypto/digests/MD5Digest.java @@ -104,6 +104,7 @@ public class MD5Digest /** * reset the chaining variables to the IV values. */ + @Override public void reset() { super.reset(); diff --git a/history.txt b/history.txt index 990e710eb..ceb9596b5 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,11 @@ +2009-08-11 sponge + * Code Janitor time! Many fixes and documenting fixes that should be + done in the future. for the most part, this is a general code cleanup. + * On smaller/embedded systems, the "final" keyword cleanups will have + more of an impact than on larger systems. + * Document missing hashCode() methods. + * Unhide more variables to make code easier to read. + 2009-08-11 zzz * Android: - Merge in the branch diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 217d41d54..3e5e8985d 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 11; + public final static long BUILD = 12; /** for example "-test" */ public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; diff --git a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java index a084bafce..90c7fe23b 100644 --- a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java +++ b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java @@ -18,7 +18,6 @@ import java.util.Map; import java.util.Set; import net.i2p.crypto.SessionKeyManager; -import net.i2p.crypto.TransientSessionKeyManager; import net.i2p.data.Destination; import net.i2p.data.Hash; import net.i2p.data.LeaseSet; @@ -114,7 +113,7 @@ public class ClientConnectionRunner { t.setDaemon(true); t.setPriority(I2PThread.MAX_PRIORITY); t.start(); - _out = _socket.getOutputStream(); // LINT -- OWCH! needs a better way so it can be final. + _out = _socket.getOutputStream(); // FIXME OWCH! needs a better way so it can be final. FIXME _reader.startReading(); } catch (IOException ioe) { _log.error("Error starting up the runner", ioe); diff --git a/router/java/src/net/i2p/router/client/LeaseRequestState.java b/router/java/src/net/i2p/router/client/LeaseRequestState.java index 8a6a1b1b0..b4cf4415a 100644 --- a/router/java/src/net/i2p/router/client/LeaseRequestState.java +++ b/router/java/src/net/i2p/router/client/LeaseRequestState.java @@ -60,6 +60,7 @@ class LeaseRequestState { public boolean getIsSuccessful() { return _successful; } public void setIsSuccessful(boolean is) { _successful = is; } + @Override public String toString() { return "leaseSet request asking for " + _requestedLeaseSet + " having received " + _grantedLeaseSet diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java index b4382f97e..5263a614e 100644 --- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java +++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java @@ -213,7 +213,7 @@ public class OutboundClientMessageOneShotJob extends JobImpl { * * Key the cache on the source+dest pair. */ - private static HashMap _leaseSetCache = new HashMap(); + private final static HashMap _leaseSetCache = new HashMap(); private LeaseSet getReplyLeaseSet(boolean force) { LeaseSet newLS = getContext().netDb().lookupLeaseSetLocally(_from.calculateHash()); if (newLS == null) @@ -313,7 +313,7 @@ public class OutboundClientMessageOneShotJob extends JobImpl { * lease). * */ - private static HashMap _leaseCache = new HashMap(); + private final static HashMap _leaseCache = new HashMap(); private boolean getNextLease() { _leaseSet = getContext().netDb().lookupLeaseSetLocally(_to.calculateHash()); if (_leaseSet == null) { @@ -453,7 +453,7 @@ public class OutboundClientMessageOneShotJob extends JobImpl { * before upper layers like streaming lib fail, even for low-bandwidth * connections like IRC. */ - private static HashMap _lastReplyRequestCache = new HashMap(); + private final static HashMap _lastReplyRequestCache = new HashMap(); /** * Send the message to the specified tunnel by creating a new garlic message containing @@ -752,7 +752,7 @@ public class OutboundClientMessageOneShotJob extends JobImpl { * Key the caches on the source+dest pair. * */ - private static HashMap _tunnelCache = new HashMap(); + private static final HashMap _tunnelCache = new HashMap(); private static HashMap _backloggedTunnelCache = new HashMap(); private TunnelInfo selectOutboundTunnel(Destination to) { TunnelInfo tunnel; @@ -918,6 +918,7 @@ public class OutboundClientMessageOneShotJob extends JobImpl { } } + @Override public String toString() { return "sending " + _toString + " waiting for token " + _pendingToken + " for cloveId " + _cloveId; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/ExpireRoutersJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/ExpireRoutersJob.java index 25ac1c200..1d7de0138 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/ExpireRoutersJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/ExpireRoutersJob.java @@ -9,8 +9,6 @@ package net.i2p.router.networkdb.kademlia; */ import java.util.Collections; -import java.util.Date; -import java.util.HashSet; import java.util.Iterator; import java.util.Set; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java index e368b4567..d31ece223 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java @@ -5,8 +5,6 @@ import java.util.List; import net.i2p.data.DataStructure; import net.i2p.data.Hash; -import net.i2p.data.LeaseSet; -import net.i2p.data.RouterInfo; import net.i2p.data.i2np.DatabaseLookupMessage; import net.i2p.data.i2np.DatabaseSearchReplyMessage; import net.i2p.data.i2np.DatabaseStoreMessage; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index 14fb279a5..fe3a2f867 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; -import java.util.TreeMap; import java.util.TreeSet; import net.i2p.data.DataHelper; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/PeerSelector.java b/router/java/src/net/i2p/router/networkdb/kademlia/PeerSelector.java index acf533bf7..328691b99 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/PeerSelector.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/PeerSelector.java @@ -42,6 +42,7 @@ public class PeerSelector { * * @return ordered list of Hash objects */ + /* FIXME Exporting non-public type through public API FIXME */ public List selectMostReliablePeers(Hash key, int numClosest, Set alreadyChecked, KBucketSet kbuckets) {// LINT -- Exporting non-public type through public API // get the peers closest to the key List nearest = selectNearestExplicit(key, numClosest, alreadyChecked, kbuckets); @@ -55,6 +56,7 @@ public class PeerSelector { * * @return List of Hash for the peers selected, ordered by bucket (but intra bucket order is not defined) */ + /* FIXME Exporting non-public type through public API FIXME */ public List selectNearestExplicit(Hash key, int maxNumRouters, Set peersToIgnore, KBucketSet kbuckets) {// LINT -- Exporting non-public type through public API if (true) return selectNearestExplicitThin(key, maxNumRouters, peersToIgnore, kbuckets); @@ -91,6 +93,7 @@ public class PeerSelector { * * @return List of Hash for the peers selected, ordered by bucket (but intra bucket order is not defined) */ + /* FIXME Exporting non-public type through public API FIXME */ public List selectNearestExplicitThin(Hash key, int maxNumRouters, Set peersToIgnore, KBucketSet kbuckets) { // LINT -- Exporting non-public type through public API if (peersToIgnore == null) peersToIgnore = new HashSet(1); @@ -195,6 +198,7 @@ public class PeerSelector { * * @return List of Hash for the peers selected, ordered by bucket (but intra bucket order is not defined) */ + /* FIXME Exporting non-public type through public API FIXME */ public List selectNearest(Hash key, int maxNumRouters, Set peersToIgnore, KBucketSet kbuckets) { // LINT -- Exporting non-public type through public API // sure, this may not be exactly correct per kademlia (peers on the border of a kbucket in strict kademlia // would behave differently) but I can see no reason to keep around an /additional/ more complicated algorithm. diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java index d80a3248b..5df6972d5 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java @@ -63,6 +63,7 @@ class PersistentDataStore extends TransientDataStore { writer.start(); } + @Override public boolean isInitialized() { return _initialized; } // this doesn't stop the read job or the writer, maybe it should? @@ -78,6 +79,7 @@ class PersistentDataStore extends TransientDataStore { _dbDir = _facade.getDbDir(); } + @Override public void rescan() { if (_initialized) _readJob.wakeup(); @@ -176,7 +178,7 @@ class PersistentDataStore extends TransientDataStore { */ private class Writer implements Runnable { private final Map_keys; - private Object _waitLock; + private final Object _waitLock; private volatile boolean _quit; public Writer() { diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java index d26ac1a5e..029fbd613 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java @@ -27,7 +27,6 @@ import net.i2p.router.Job; import net.i2p.router.JobImpl; import net.i2p.router.RouterContext; import net.i2p.router.TunnelInfo; -import net.i2p.router.message.SendMessageDirectJob; import net.i2p.util.Log; /** diff --git a/router/java/src/net/i2p/router/peermanager/PeerTestJob.java b/router/java/src/net/i2p/router/peermanager/PeerTestJob.java index 58ad94b24..11e8cacb8 100644 --- a/router/java/src/net/i2p/router/peermanager/PeerTestJob.java +++ b/router/java/src/net/i2p/router/peermanager/PeerTestJob.java @@ -50,7 +50,8 @@ public class PeerTestJob extends JobImpl { /** number of peers to test each round */ private int getTestConcurrency() { return 1; } - public void startTesting(PeerManager manager) { // LINT -- Exporting non-public type through public API + // FIXME Exporting non-public type through public API FIXME + public void startTesting(PeerManager manager) { _manager = manager; _keepTesting = true; this.getTiming().setStartAfter(getContext().clock().now() + DEFAULT_PEER_TEST_DELAY); diff --git a/router/java/src/net/i2p/router/startup/WorkingDir.java b/router/java/src/net/i2p/router/startup/WorkingDir.java index e124727d9..50833de73 100644 --- a/router/java/src/net/i2p/router/startup/WorkingDir.java +++ b/router/java/src/net/i2p/router/startup/WorkingDir.java @@ -6,7 +6,6 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; import java.util.Properties; diff --git a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java index 188eb75c3..ebbe205b4 100644 --- a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java +++ b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java @@ -152,6 +152,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade { return _manager.wasUnreachable(dest); } + @Override public byte[] getIP(Hash dest) { return _manager.getIP(dest); } @@ -416,6 +417,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade { } } + @Override public void queueLookup(byte[] ip) { _geoIP.add(ip); } @@ -426,6 +428,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade { * * @return two-letter lower-case country code or null */ + @Override public String getCountry(Hash peer) { byte[] ip = TransportImpl.getIP(peer); if (ip != null) @@ -452,6 +455,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade { } /** full name for a country code, or the code if we don't know the name */ + @Override public String getCountryName(String c) { if (_geoIP == null) return c; @@ -462,6 +466,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade { } /** Provide a consistent "look" for displaying router IDs in the console */ + @Override public String renderPeerHTML(Hash peer) { String h = peer.toBase64().substring(0, 4); StringBuilder buf = new StringBuilder(128); diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java index 29318bb60..6b65b627c 100644 --- a/router/java/src/net/i2p/router/transport/TransportImpl.java +++ b/router/java/src/net/i2p/router/transport/TransportImpl.java @@ -28,7 +28,6 @@ import net.i2p.data.RouterInfo; import net.i2p.data.i2np.I2NPMessage; import net.i2p.router.CommSystemFacade; import net.i2p.router.Job; -import net.i2p.router.JobImpl; import net.i2p.router.MessageSelector; import net.i2p.router.OutNetMessage; import net.i2p.router.Router; diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java index 98158054f..3643d010a 100644 --- a/router/java/src/net/i2p/router/transport/TransportManager.java +++ b/router/java/src/net/i2p/router/transport/TransportManager.java @@ -13,7 +13,6 @@ import java.io.Writer; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -403,6 +402,7 @@ public class TransportManager implements TransportEventListener { return rv; } + @SuppressWarnings("static-access") public TransportBid getNextBid(OutNetMessage msg) { int unreachableTransports = 0; Hash peer = msg.getTarget().getIdentity().calculateHash(); @@ -427,6 +427,7 @@ public class TransportManager implements TransportEventListener { // to us via TCP, send via TCP) TransportBid bid = t.bid(msg.getTarget(), msg.getMessageSize()); if (bid != null) { + /* FIXME Accessing static field "TRANSIENT_FAIL" FIXME */ if (bid.getLatencyMs() == bid.TRANSIENT_FAIL) // this keeps GetBids() from shitlisting for "no common transports" msg.transportFailed(t.getStyle()); diff --git a/router/java/src/net/i2p/router/transport/UPnP.java b/router/java/src/net/i2p/router/transport/UPnP.java index 841121f75..523b5795e 100644 --- a/router/java/src/net/i2p/router/transport/UPnP.java +++ b/router/java/src/net/i2p/router/transport/UPnP.java @@ -14,16 +14,12 @@ import net.i2p.util.Log; import net.i2p.I2PAppContext; import org.cybergarage.upnp.Action; -import org.cybergarage.upnp.ActionList; -import org.cybergarage.upnp.Argument; import org.cybergarage.upnp.ArgumentList; import org.cybergarage.upnp.ControlPoint; import org.cybergarage.upnp.Device; import org.cybergarage.upnp.DeviceList; import org.cybergarage.upnp.Service; import org.cybergarage.upnp.ServiceList; -import org.cybergarage.upnp.ServiceStateTable; -import org.cybergarage.upnp.StateVariable; import org.cybergarage.upnp.device.DeviceChangeListener; import org.cybergarage.upnp.event.EventListener; import org.freenetproject.DetectedIP; @@ -373,7 +369,7 @@ public class UPnP extends ControlPoint implements DeviceChangeListener, EventLis private String _lastAction; private Service _lastService; private ArgumentList _lastArgumentList; - private Object toStringLock = new Object(); + private final Object toStringLock = new Object(); private String toString(String action, String arg, Service serv) { synchronized(toStringLock) { if ((!action.equals(_lastAction)) || diff --git a/router/java/src/net/i2p/router/transport/UPnPManager.java b/router/java/src/net/i2p/router/transport/UPnPManager.java index ff96abd38..e38ee62fa 100644 --- a/router/java/src/net/i2p/router/transport/UPnPManager.java +++ b/router/java/src/net/i2p/router/transport/UPnPManager.java @@ -9,7 +9,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import net.i2p.data.RouterAddress; import net.i2p.router.RouterContext; import net.i2p.util.Log; diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java index e30783768..e9046db39 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java @@ -6,14 +6,12 @@ import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.SocketChannel; import java.util.ArrayList; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.zip.Adler32; import net.i2p.data.Base64; import net.i2p.data.DataHelper; -import net.i2p.data.Hash; import net.i2p.data.RouterIdentity; import net.i2p.data.RouterInfo; import net.i2p.data.SessionKey; @@ -24,7 +22,6 @@ import net.i2p.data.i2np.I2NPMessageHandler; import net.i2p.router.OutNetMessage; import net.i2p.router.Router; import net.i2p.router.RouterContext; -import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade; import net.i2p.router.transport.FIFOBandwidthLimiter; import net.i2p.util.Log; diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java index b21156f1c..18fa3346f 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java @@ -555,6 +555,7 @@ public class NTCPTransport extends TransportImpl { * to decide whether to enable inbound NTCP. SSU will have CSFI build a new * NTCP address when it transitions to OK. */ + @Override public void forwardPortStatus(int port, boolean success, String reason) { if (_log.shouldLog(Log.WARN)) { if (success) @@ -564,6 +565,7 @@ public class NTCPTransport extends TransportImpl { } } + @Override public int getRequestedPort() { // would be nice to do this here but we can't easily get to the UDP transport.getRequested_Port() // from here, so we do it in TransportManager. @@ -581,6 +583,7 @@ public class NTCPTransport extends TransportImpl { * We have to be careful here because much of the router console code assumes * that the reachability status is really just the UDP status. */ + @Override public short getReachabilityStatus() { if (isAlive() && _myAddress != null) { synchronized (_conLock) { diff --git a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java index de14dba5b..3b5938918 100644 --- a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java +++ b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java @@ -674,7 +674,8 @@ public class EstablishmentManager { } } - public void receiveRelayResponse(RemoteHostId bob, UDPPacketReader reader) {// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public void receiveRelayResponse(RemoteHostId bob, UDPPacketReader reader) { long nonce = reader.getRelayResponseReader().readNonce(); OutboundEstablishState state = null; synchronized (_liveIntroductions) { diff --git a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java index 7b2bce4b0..fab4ce550 100644 --- a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java +++ b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java @@ -210,7 +210,8 @@ public class InboundEstablishState { public synchronized void setNextSendTime(long when) { _nextSend = when; } /** RemoteHostId, uniquely identifies an attempt */ - public RemoteHostId getRemoteHostId() { return _remoteHostId; }// LINT -- Exporting non-public type through public API + // FIXME Exporting non-public type through public API FIXME + public RemoteHostId getRemoteHostId() { return _remoteHostId; } public synchronized void receiveSessionConfirmed(UDPPacketReader.SessionConfirmedReader conf) { if (_receivedIdentity == null) diff --git a/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java b/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java index 8d20a43c1..20db8a066 100644 --- a/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java +++ b/router/java/src/net/i2p/router/transport/udp/IntroductionManager.java @@ -157,7 +157,8 @@ public class IntroductionManager { return found; } - public void receiveRelayIntro(RemoteHostId bob, UDPPacketReader reader) {// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public void receiveRelayIntro(RemoteHostId bob, UDPPacketReader reader) { if (_context.router().isHidden()) return; if (_log.shouldLog(Log.INFO)) @@ -166,7 +167,8 @@ public class IntroductionManager { _transport.send(_builder.buildHolePunch(reader)); } - public void receiveRelayRequest(RemoteHostId alice, UDPPacketReader reader) {// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public void receiveRelayRequest(RemoteHostId alice, UDPPacketReader reader) { if (_context.router().isHidden()) return; long tag = reader.getRelayRequestReader().readTag(); diff --git a/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java b/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java index a5c732e08..13a9b277f 100644 --- a/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java +++ b/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState.java @@ -413,7 +413,8 @@ public class OutboundEstablishState { } /** uniquely identifies an attempt */ - public RemoteHostId getRemoteHostId() { return _remoteHostId; }// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public RemoteHostId getRemoteHostId() { return _remoteHostId; } /** we have received a real data packet, so we're done establishing */ public synchronized void dataReceived() { diff --git a/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java b/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java index d00f6f9b2..8b09dab41 100644 --- a/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java +++ b/router/java/src/net/i2p/router/transport/udp/PacketBuilder.java @@ -879,7 +879,8 @@ public class PacketBuilder { */ private static final byte PEER_RELAY_INTRO_FLAG_BYTE = (UDPPacket.PAYLOAD_TYPE_RELAY_INTRO << 4); - public UDPPacket buildRelayIntro(RemoteHostId alice, PeerState charlie, UDPPacketReader.RelayRequestReader request) {// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public UDPPacket buildRelayIntro(RemoteHostId alice, PeerState charlie, UDPPacketReader.RelayRequestReader request) { UDPPacket packet = UDPPacket.acquire(_context, false); byte data[] = packet.getPacket().getData(); Arrays.fill(data, 0, data.length, (byte)0x0); @@ -929,7 +930,8 @@ public class PacketBuilder { */ private static final byte PEER_RELAY_RESPONSE_FLAG_BYTE = (UDPPacket.PAYLOAD_TYPE_RELAY_RESPONSE << 4); - public UDPPacket buildRelayResponse(RemoteHostId alice, PeerState charlie, long nonce, SessionKey aliceIntroKey) {// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public UDPPacket buildRelayResponse(RemoteHostId alice, PeerState charlie, long nonce, SessionKey aliceIntroKey) { InetAddress aliceAddr = null; try { aliceAddr = InetAddress.getByAddress(alice.getIP()); diff --git a/router/java/src/net/i2p/router/transport/udp/PacketHandler.java b/router/java/src/net/i2p/router/transport/udp/PacketHandler.java index e3896748c..c6993d5f1 100644 --- a/router/java/src/net/i2p/router/transport/udp/PacketHandler.java +++ b/router/java/src/net/i2p/router/transport/udp/PacketHandler.java @@ -36,7 +36,7 @@ public class PacketHandler { /** let packets be up to 30s slow */ private static final long GRACE_PERIOD = Router.CLOCK_FUDGE_FACTOR + 30*1000; - + /* FIXME Exporting non-public type through public API FIXME */ public PacketHandler(RouterContext ctx, UDPTransport transport, UDPEndpoint endpoint, EstablishmentManager establisher, InboundMessageFragments inbound, PeerTestManager testManager, IntroductionManager introManager) {// LINT -- Exporting non-public type through public API _context = ctx; _log = ctx.logManager().getLog(PacketHandler.class); diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState.java b/router/java/src/net/i2p/router/transport/udp/PeerState.java index 23205cc67..275a68b00 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerState.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerState.java @@ -1003,7 +1003,8 @@ public class PeerState { return MAX_RTO; } - public RemoteHostId getRemoteHostId() { return _remoteHostId; }// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public RemoteHostId getRemoteHostId() { return _remoteHostId; } public int add(OutboundMessageState state) { if (_dead) { diff --git a/router/java/src/net/i2p/router/transport/udp/UDPPacket.java b/router/java/src/net/i2p/router/transport/udp/UDPPacket.java index 8bd857fa2..11ffbc67e 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPPacket.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPPacket.java @@ -124,8 +124,9 @@ public class UDPPacket { void setMessageType(int type) { _messageType = type; } int getFragmentCount() { return _fragmentCount; } void setFragmentCount(int count) { _fragmentCount = count; } - - public RemoteHostId getRemoteHost() {// LINT -- Exporting non-public type through public API + + // FIXME Exporting non-public type through public API FIXME + public RemoteHostId getRemoteHost() { if (_remoteHost == null) { long before = System.currentTimeMillis(); InetAddress addr = _packet.getAddress(); diff --git a/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java b/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java index f8f00bb10..2a03cb627 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java @@ -9,7 +9,6 @@ import net.i2p.router.RouterContext; import net.i2p.router.transport.FIFOBandwidthLimiter; import net.i2p.util.I2PThread; import net.i2p.util.Log; -import net.i2p.util.SimpleScheduler; import net.i2p.util.SimpleTimer; /** diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index 044b33b8e..c0fa13d39 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -40,7 +40,7 @@ import net.i2p.util.SimpleTimer; * */ public class UDPTransport extends TransportImpl implements TimedWeightedPriorityMessageQueue.FailedListener { - private RouterContext _context; // LINT -- field hides a field + private RouterContext _rContext; private Log _log; private UDPEndpoint _endpoint; /** Peer (Hash) to PeerState */ @@ -322,6 +322,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority public int getLocalPort() { return _externalListenPort; } public InetAddress getLocalAddress() { return _externalListenHost; } public int getExternalPort() { return _externalListenPort; } + @Override public int getRequestedPort() { if (_externalListenPort > 0) return _externalListenPort; @@ -346,6 +347,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority * @param ip publicly routable IPv4 only * @param port 0 if unknown */ + @Override public void externalAddressReceived(String source, byte[] ip, int port) { String s = RemoteHostId.toString(ip); if (_log.shouldLog(Log.WARN)) @@ -368,6 +370,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority * If this is wrong, the peer test will figure it out and change the status. * Don't do anything if UPnP claims failure. */ + @Override public void forwardPortStatus(int port, boolean success, String reason) { if (_log.shouldLog(Log.WARN)) { if (success) @@ -518,7 +521,8 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority * get the state for the peer at the given remote host/port, or null * if no state exists */ - public PeerState getPeerState(RemoteHostId hostInfo) { // LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public PeerState getPeerState(RemoteHostId hostInfo) { synchronized (_peersByRemoteHost) { return (PeerState)_peersByRemoteHost.get(hostInfo); } @@ -755,7 +759,8 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority } } - public boolean isInDropList(RemoteHostId peer) { synchronized (_dropList) { return _dropList.contains(peer); } }// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public boolean isInDropList(RemoteHostId peer) { synchronized (_dropList) { return _dropList.contains(peer); } } void dropPeer(Hash peer, boolean shouldShitlist, String why) { PeerState state = getPeerState(peer); @@ -2182,6 +2187,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority } } private static final String PROP_REACHABILITY_STATUS_OVERRIDE = "i2np.udp.status"; + @Override public short getReachabilityStatus() { String override = _context.getProperty(PROP_REACHABILITY_STATUS_OVERRIDE); if (override == null) @@ -2201,7 +2207,8 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority _testEvent.runTest(); } - public PeerState pickTestPeer(RemoteHostId dontInclude) {// LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public PeerState pickTestPeer(RemoteHostId dontInclude) { List peers = null; synchronized (_peersByIdent) { peers = new ArrayList(_peersByIdent.values()); diff --git a/router/java/src/net/i2p/router/tunnel/TunnelGateway.java b/router/java/src/net/i2p/router/tunnel/TunnelGateway.java index 75887f406..40c935e79 100644 --- a/router/java/src/net/i2p/router/tunnel/TunnelGateway.java +++ b/router/java/src/net/i2p/router/tunnel/TunnelGateway.java @@ -42,7 +42,7 @@ public class TunnelGateway { protected Receiver _receiver; protected long _lastFlush; protected int _flushFrequency; - protected DelayedFlush _delayedFlush;// LINT -- Exporting non-public type through public API + protected DelayedFlush _delayedFlush;// FIXME Exporting non-public type through public API FIXME protected int _messagesSent; /** diff --git a/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java b/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java index aefe9670d..40e4d456e 100644 --- a/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java +++ b/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java @@ -12,8 +12,8 @@ import net.i2p.util.Log; * */ public class TunnelGatewayZeroHop extends TunnelGateway { - private RouterContext _context; // LINT -- field hides a field - private Log _log; // LINT -- field hides a field + private RouterContext TunnelContext; + private Log TunnelLog; private TunnelCreatorConfig _config; private OutboundMessageDistributor _outDistributor; private InboundMessageDistributor _inDistributor; @@ -23,11 +23,11 @@ public class TunnelGatewayZeroHop extends TunnelGateway { */ public TunnelGatewayZeroHop(RouterContext context, TunnelCreatorConfig config) { super(context, null, null, null); - _context = context; - _log = context.logManager().getLog(TunnelGatewayZeroHop.class); + TunnelContext = context; + TunnelLog = context.logManager().getLog(TunnelGatewayZeroHop.class); _config = config; if (config.isInbound()) - _inDistributor = new InboundMessageDistributor(_context, config.getDestination()); + _inDistributor = new InboundMessageDistributor(TunnelContext, config.getDestination()); else _outDistributor = new OutboundMessageDistributor(context, 400); } @@ -53,8 +53,8 @@ public class TunnelGatewayZeroHop extends TunnelGateway { */ @Override public void add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) { - if (_log.shouldLog(Log.DEBUG)) - _log.debug("zero hop gateway: distribute " + (_config.isInbound() ? "inbound " : " outbound ") + if (TunnelLog.shouldLog(Log.DEBUG)) + TunnelLog.debug("zero hop gateway: distribute " + (_config.isInbound() ? "inbound " : " outbound ") + " to " + (toRouter != null ? toRouter.toBase64().substring(0,4) : "" ) + "." + (toTunnel != null ? toTunnel.getTunnelId() + "" : "") + ": " + msg); diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java b/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java index 05b53fbf9..24a41c6f8 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java +++ b/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java @@ -51,7 +51,9 @@ class BuildExecutor implements Runnable { // Get stat manager, get recognized bandwidth tiers StatManager statMgr = _context.statManager(); - String bwTiers = _context.router().getRouterInfo().BW_CAPABILITY_CHARS; // LINT -- Accessing static field "BW_CAPABILITY_CHARS" + @SuppressWarnings("static-access") + /* FIXME Accessing static field "BW_CAPABILITY_CHARS" FIXME */ + String bwTiers = _context.router().getRouterInfo().BW_CAPABILITY_CHARS; // For each bandwidth tier, create tunnel build agree/reject/expire stats for (int i = 0; i < bwTiers.length(); i++) { String bwTier = String.valueOf(bwTiers.charAt(i)); diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java index 86f0d134d..4f64af955 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java +++ b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java @@ -467,6 +467,7 @@ class BuildHandler { return 0; } + @SuppressWarnings("static-access") private void handleReq(RouterInfo nextPeerInfo, BuildMessageState state, BuildRequestRecord req, Hash nextPeer) { long ourId = req.readReceiveTunnelId(); long nextId = req.readNextTunnelId(); @@ -626,7 +627,8 @@ class BuildHandler { // send it to the reply tunnel on the reply peer within a new TunnelBuildReplyMessage // (enough layers jrandom?) TunnelBuildReplyMessage replyMsg = new TunnelBuildReplyMessage(_context); - for (int i = 0; i < state.msg.RECORD_COUNT; i++) // LINT -- Accessing Static field "RECORD_COUNT" + /* FIXME Accessing static field "RECORD_COUNT" FIXME */ + for (int i = 0; i < state.msg.RECORD_COUNT; i++) replyMsg.setRecord(i, state.msg.getRecord(i)); replyMsg.setUniqueId(req.readReplyMessageId()); replyMsg.setMessageExpiration(_context.clock().now() + 10*1000); diff --git a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java index 3cc4906ea..3728ebc52 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java +++ b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java @@ -79,7 +79,8 @@ public class PooledTunnelCreatorConfig extends TunnelCreatorConfig { public TunnelPool getTunnelPool() { return _pool; } - public void setTestJob(TestJob job) { _testJob = job; } // LINT -- Exporting non-public type through public API + /* FIXME Exporting non-public type through public API FIXME */ + public void setTestJob(TestJob job) { _testJob = job; } public void setExpireJob(Job job) { /* _expireJob = job; */ } // Fix memory leaks caused by references if you need to use pairedTunnel diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java index 7b86ba83b..530d3f1af 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java @@ -11,7 +11,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; import net.i2p.data.DataHelper; import net.i2p.data.Destination; diff --git a/router/java/src/org/cybergarage/http/Date.java b/router/java/src/org/cybergarage/http/Date.java index 117964d34..a3424eb57 100644 --- a/router/java/src/org/cybergarage/http/Date.java +++ b/router/java/src/org/cybergarage/http/Date.java @@ -1,8 +1,8 @@ /****************************************************************** * -* CyberHTTP for Java -* -* Copyright (C) Satoshi Konno 2002-2003 +* CyberHTTP for Java +* +* Copyright (C) Satoshi Konno 2002-2003 * * File : Date.java * @@ -16,7 +16,7 @@ * getHour(), getDateString() getTimeString() * - Fixed getInstance() to return GMT instance. * -******************************************************************/ +******************************************************************/ package org.cybergarage.http; @@ -136,15 +136,15 @@ public class Date public String getDateString() { // Thanks for Theo Beisch (10/20/04) - Calendar cal = getCalendar(); + Calendar _cal = getCalendar(); return - toWeekString(cal.get(Calendar.DAY_OF_WEEK)) +", " + - toTimeString(cal.get(Calendar.DATE)) + " " + - toMonthString(cal.get(Calendar.MONTH)) + " " + - Integer.toString(cal.get(Calendar.YEAR)) + " " + - toTimeString(cal.get(Calendar.HOUR_OF_DAY)) + ":" + - toTimeString(cal.get(Calendar.MINUTE)) + ":" + - toTimeString(cal.get(Calendar.SECOND)) + " GMT"; + toWeekString(_cal.get(Calendar.DAY_OF_WEEK)) +", " + + toTimeString(_cal.get(Calendar.DATE)) + " " + + toMonthString(_cal.get(Calendar.MONTH)) + " " + + Integer.toString(_cal.get(Calendar.YEAR)) + " " + + toTimeString(_cal.get(Calendar.HOUR_OF_DAY)) + ":" + + toTimeString(_cal.get(Calendar.MINUTE)) + ":" + + toTimeString(_cal.get(Calendar.SECOND)) + " GMT"; } //////////////////////////////////////////////// @@ -154,11 +154,11 @@ public class Date public String getTimeString() { // Thanks for Theo Beisch (10/20/04) - Calendar cal = getCalendar(); + Calendar _cal = getCalendar(); return - toDateString(cal.get(Calendar.HOUR_OF_DAY)) + - (((cal.get(Calendar.SECOND) % 2) == 0) ? ":" : " ") + - toDateString(cal.get(Calendar.MINUTE)); + toDateString(_cal.get(Calendar.HOUR_OF_DAY)) + + (((_cal.get(Calendar.SECOND) % 2) == 0) ? ":" : " ") + + toDateString(_cal.get(Calendar.MINUTE)); } } diff --git a/router/java/src/org/cybergarage/http/HTTPHeader.java b/router/java/src/org/cybergarage/http/HTTPHeader.java index d09446bdc..9ea1610e9 100644 --- a/router/java/src/org/cybergarage/http/HTTPHeader.java +++ b/router/java/src/org/cybergarage/http/HTTPHeader.java @@ -5,33 +5,33 @@ * Copyright (C) Satoshi Konno 2002 * * File: HTTPHeader.java -* -* Revision; -* -* 11/19/02 -* - first revision. +* +* Revision; +* +* 11/19/02 +* - first revision. * 05/26/04 * - Jan Newmarch (05/26/04) * - Fixed getValue() to compare using String::equals() instead of String::startWidth(). * ******************************************************************/ - + package org.cybergarage.http; - -import java.io.*; + +import java.io.*; import org.cybergarage.util.*; - -public class HTTPHeader -{ - private String name; - private String value; - - public HTTPHeader(String name, String value) - { - setName(name); - setValue(value); - } + +public class HTTPHeader +{ + private String name; + private String value; + + public HTTPHeader(String name, String value) + { + setName(name); + setValue(value); + } public HTTPHeader(String lineStr) { @@ -42,35 +42,35 @@ public class HTTPHeader int colonIdx = lineStr.indexOf(':'); if (colonIdx < 0) return; - String name = new String(lineStr.getBytes(), 0, colonIdx); - String value = new String(lineStr.getBytes(), colonIdx+1, lineStr.length()-colonIdx-1); - setName(name.trim()); - setValue(value.trim()); + String _name = new String(lineStr.getBytes(), 0, colonIdx); + String _value = new String(lineStr.getBytes(), colonIdx+1, lineStr.length()-colonIdx-1); + setName(_name.trim()); + setValue(_value.trim()); } - + //////////////////////////////////////////////// // Member //////////////////////////////////////////////// - public void setName(String name) - { - this.name = name; - } - - public void setValue(String value) - { - this.value = value; - } - - public String getName() - { - return name; - } - - public String getValue() - { - return value; - } + public void setName(String name) + { + this.name = name; + } + + public void setValue(String value) + { + this.value = value; + } + + public String getName() + { + return name; + } + + public String getValue() + { + return value; + } public boolean hasName() { @@ -78,67 +78,67 @@ public class HTTPHeader return false; return true; } - - //////////////////////////////////////////////// - // static methods - //////////////////////////////////////////////// - - public final static String getValue(LineNumberReader reader, String name) - { - String bigName = name.toUpperCase(); - try { - String lineStr = reader.readLine(); - while (lineStr != null && 0 < lineStr.length()) { + + //////////////////////////////////////////////// + // static methods + //////////////////////////////////////////////// + + public final static String getValue(LineNumberReader reader, String name) + { + String bigName = name.toUpperCase(); + try { + String lineStr = reader.readLine(); + while (lineStr != null && 0 < lineStr.length()) { HTTPHeader header = new HTTPHeader(lineStr); - if (header.hasName() == false) { - lineStr = reader.readLine(); - continue; - } + if (header.hasName() == false) { + lineStr = reader.readLine(); + continue; + } String bigLineHeaderName = header.getName().toUpperCase(); - // Thanks for Jan Newmarch (05/26/04) - if (bigLineHeaderName.equals(bigName) == false) { - lineStr = reader.readLine(); - continue; - } - return header.getValue(); - } - } + // Thanks for Jan Newmarch (05/26/04) + if (bigLineHeaderName.equals(bigName) == false) { + lineStr = reader.readLine(); + continue; + } + return header.getValue(); + } + } catch (IOException e) { - Debug.warning(e); - return ""; - } - return ""; - } - - public final static String getValue(String data, String name) - { - StringReader strReader = new StringReader(data); - LineNumberReader lineReader = new LineNumberReader(strReader); - return getValue(lineReader, name); - } - - public final static String getValue(byte[] data, String name) - { - return getValue(new String(data), name); - } - - public final static int getIntegerValue(String data, String name) + Debug.warning(e); + return ""; + } + return ""; + } + + public final static String getValue(String data, String name) + { + StringReader strReader = new StringReader(data); + LineNumberReader lineReader = new LineNumberReader(strReader); + return getValue(lineReader, name); + } + + public final static String getValue(byte[] data, String name) + { + return getValue(new String(data), name); + } + + public final static int getIntegerValue(String data, String name) { try { return Integer.parseInt(getValue(data, name)); } catch (Exception e) { return 0; - } - } - - public final static int getIntegerValue(byte[] data, String name) - { + } + } + + public final static int getIntegerValue(byte[] data, String name) + { try { return Integer.parseInt(getValue(data, name)); } catch (Exception e) { return 0; } - } + } } diff --git a/router/java/src/org/cybergarage/http/HTTPPacket.java b/router/java/src/org/cybergarage/http/HTTPPacket.java index 3c0c78e63..7a5ea924d 100644 --- a/router/java/src/org/cybergarage/http/HTTPPacket.java +++ b/router/java/src/org/cybergarage/http/HTTPPacket.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2004 * * File: HTTPConnection.java -* -* Revision; -* -* 11/18/02 -* - first revision. +* +* Revision; +* +* 11/18/02 +* - first revision. * 09/02/03 * - Giordano Sassaroli * - Problem : The API is unable to receive responses from the Microsoft UPnP stack @@ -64,24 +64,24 @@ package org.cybergarage.http; -import java.io.*; -import java.util.*; - +import java.io.*; +import java.util.*; + import org.cybergarage.net.*; -import org.cybergarage.util.*; -import java.util.Calendar; - -public class HTTPPacket -{ - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public HTTPPacket() +import org.cybergarage.util.*; +import java.util.Calendar; + +public class HTTPPacket +{ + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public HTTPPacket() { setVersion(HTTP.VERSION); - setContentInputStream(null); - } + setContentInputStream(null); + } public HTTPPacket(HTTPPacket httpPacket) { @@ -134,13 +134,13 @@ public class HTTPPacket try { BufferedReader reader = new BufferedReader(new InputStreamReader(in)); - String firstLine = reader.readLine(); - if (firstLine == null || firstLine.length() <= 0) + String _firstLine = reader.readLine(); + if (_firstLine == null || _firstLine.length() <= 0) return false; - setFirstLine(firstLine); + setFirstLine(_firstLine); // Thanks for Giordano Sassaroli (09/03/03) - HTTPStatus httpStatus = new HTTPStatus(firstLine); + HTTPStatus httpStatus = new HTTPStatus(_firstLine); int statCode = httpStatus.getStatusCode(); if (statCode == HTTPStatus.CONTINUE){ //ad hoc code for managing iis non-standard behaviour @@ -186,7 +186,7 @@ public class HTTPPacket String chunkSizeLine = reader.readLine(); contentLen = Long.parseLong(new String(chunkSizeLine.getBytes(), 0, chunkSizeLine.length()-2)); } - catch (Exception e) {}; + catch (Exception e) {} } else contentLen = getContentLength(); @@ -231,7 +231,7 @@ public class HTTPPacket } catch (Exception e) { contentLen = 0; - }; + } } else contentLen = 0; @@ -312,47 +312,47 @@ public class HTTPPacket public boolean hasFirstLine() { - return (0 < firstLine.length()) ? true : false; + return (0 < firstLine.length()) ? true : false; } - //////////////////////////////////////////////// - // Header - //////////////////////////////////////////////// - - private Vector httpHeaderList = new Vector(); - - public int getNHeaders() - { - return httpHeaderList.size(); - } - - public void addHeader(HTTPHeader header) - { - httpHeaderList.add(header); - } - - public void addHeader(String name, String value) - { - HTTPHeader header = new HTTPHeader(name, value); - httpHeaderList.add(header); - } - - public HTTPHeader getHeader(int n) - { - return (HTTPHeader)httpHeaderList.get(n); - } - - public HTTPHeader getHeader(String name) - { - int nHeaders = getNHeaders(); - for (int n=0; n 0) ? true : false; - } + } //////////////////////////////////////////////// // Contents (InputStream) @@ -538,35 +538,35 @@ public class HTTPPacket { return (contentInput != null) ? true : false; } - - //////////////////////////////////////////////// - // ContentType - //////////////////////////////////////////////// - - public void setContentType(String type) - { - setHeader(HTTP.CONTENT_TYPE, type); - } - - public String getContentType() - { - return getHeaderValue(HTTP.CONTENT_TYPE); - } - - //////////////////////////////////////////////// - // ContentLength - //////////////////////////////////////////////// - - public void setContentLength(long len) + + //////////////////////////////////////////////// + // ContentType + //////////////////////////////////////////////// + + public void setContentType(String type) { - setLongHeader(HTTP.CONTENT_LENGTH, len); - } - - public long getContentLength() - { - return getLongHeaderValue(HTTP.CONTENT_LENGTH); - } - + setHeader(HTTP.CONTENT_TYPE, type); + } + + public String getContentType() + { + return getHeaderValue(HTTP.CONTENT_TYPE); + } + + //////////////////////////////////////////////// + // ContentLength + //////////////////////////////////////////////// + + public void setContentLength(long len) + { + setLongHeader(HTTP.CONTENT_LENGTH, len); + } + + public long getContentLength() + { + return getLongHeaderValue(HTTP.CONTENT_LENGTH); + } + //////////////////////////////////////////////// // Connection //////////////////////////////////////////////// @@ -650,21 +650,21 @@ public class HTTPPacket try { range[0] = Long.parseLong(firstPosStr); } - catch (NumberFormatException e) {}; + catch (NumberFormatException e) {} if (strToken.hasMoreTokens() == false) return range; String lastPosStr = strToken.nextToken("-/"); try { range[1] = Long.parseLong(lastPosStr); } - catch (NumberFormatException e) {}; + catch (NumberFormatException e) {} if (strToken.hasMoreTokens() == false) return range; String lengthStr = strToken.nextToken("/"); try { range[2] = Long.parseLong(lengthStr); } - catch (NumberFormatException e) {}; + catch (NumberFormatException e) {} return range; } @@ -686,10 +686,10 @@ public class HTTPPacket return range[2]; } - //////////////////////////////////////////////// - // CacheControl - //////////////////////////////////////////////// - + //////////////////////////////////////////////// + // CacheControl + //////////////////////////////////////////////// + public void setCacheControl(String directive) { setHeader(HTTP.CACHE_CONTROL, directive); @@ -701,29 +701,29 @@ public class HTTPPacket setHeader(HTTP.CACHE_CONTROL, strVal); } - public void setCacheControl(int value) - { + public void setCacheControl(int value) + { setCacheControl(HTTP.MAX_AGE, value); - } - - public String getCacheControl() - { - return getHeaderValue(HTTP.CACHE_CONTROL); - } - - //////////////////////////////////////////////// - // Server - //////////////////////////////////////////////// - - public void setServer(String name) - { - setHeader(HTTP.SERVER, name); - } - - public String getServer() - { - return getHeaderValue(HTTP.SERVER); - } + } + + public String getCacheControl() + { + return getHeaderValue(HTTP.CACHE_CONTROL); + } + + //////////////////////////////////////////////// + // Server + //////////////////////////////////////////////// + + public void setServer(String name) + { + setHeader(HTTP.SERVER, name); + } + + public String getServer() + { + return getHeaderValue(HTTP.SERVER); + } //////////////////////////////////////////////// // Host @@ -742,21 +742,21 @@ public class HTTPPacket return getHeaderValue(HTTP.HOST); } - - //////////////////////////////////////////////// - // Date - //////////////////////////////////////////////// - - public void setDate(Calendar cal) - { - Date date = new Date(cal); - setHeader(HTTP.DATE, date.getDateString()); - } - - public String getDate() - { - return getHeaderValue(HTTP.DATE); - } + + //////////////////////////////////////////////// + // Date + //////////////////////////////////////////////// + + public void setDate(Calendar cal) + { + Date date = new Date(cal); + setHeader(HTTP.DATE, date.getDateString()); + } + + public String getDate() + { + return getHeaderValue(HTTP.DATE); + } //////////////////////////////////////////////// // Connection @@ -804,5 +804,5 @@ public class HTTPPacket return false; } */ -} - +} + diff --git a/router/java/src/org/cybergarage/http/HTTPRequest.java b/router/java/src/org/cybergarage/http/HTTPRequest.java index 9e03adc89..c1c3b50f6 100644 --- a/router/java/src/org/cybergarage/http/HTTPRequest.java +++ b/router/java/src/org/cybergarage/http/HTTPRequest.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2004 * * File: HTTPRequest.java -* -* Revision; -* -* 11/18/02 -* - first revision. +* +* Revision; +* +* 11/18/02 +* - first revision. * 05/23/03 * - Giordano Sassaroli * - Add a relative URL check to setURI(). @@ -46,24 +46,24 @@ * - Changed post() to suppot chunked stream. * ******************************************************************/ - + package org.cybergarage.http; - -import java.io.*; -import java.net.*; + +import java.io.*; +import java.net.*; import java.util.*; import org.cybergarage.util.Debug; - -public class HTTPRequest extends HTTPPacket -{ - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public HTTPRequest() - { - } + +public class HTTPRequest extends HTTPPacket +{ + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public HTTPRequest() + { + } public HTTPRequest(InputStream in) { @@ -76,23 +76,23 @@ public class HTTPRequest extends HTTPPacket setSocket(httpSock); } - //////////////////////////////////////////////// - // Method - //////////////////////////////////////////////// - - private String method = null; - - public void setMethod(String value) - { - method = value; - } - - public String getMethod() + //////////////////////////////////////////////// + // Method + //////////////////////////////////////////////// + + private String method = null; + + public void setMethod(String value) { - if (method != null) + method = value; + } + + public String getMethod() + { + if (method != null) return method; - return getFirstLineToken(0); - } + return getFirstLineToken(0); + } public boolean isMethod(String method) { @@ -101,16 +101,16 @@ public class HTTPRequest extends HTTPPacket return false; return headerMethod.equalsIgnoreCase(method); } - - public boolean isGetRequest() + + public boolean isGetRequest() + { + return isMethod(HTTP.GET); + } + + public boolean isPostRequest() { - return isMethod(HTTP.GET); - } - - public boolean isPostRequest() - { return isMethod(HTTP.POST); - } + } public boolean isHeadRequest() { @@ -132,33 +132,33 @@ public class HTTPRequest extends HTTPPacket return isMethod(HTTP.NOTIFY); } - //////////////////////////////////////////////// - // URI - //////////////////////////////////////////////// - - private String uri = null; - - public void setURI(String value, boolean isCheckRelativeURL) - { + //////////////////////////////////////////////// + // URI + //////////////////////////////////////////////// + + private String uri = null; + + public void setURI(String value, boolean isCheckRelativeURL) + { uri = value; if (isCheckRelativeURL == false) return; // Thanks for Giordano Sassaroli (09/02/03) uri = HTTP.toRelativeURL(uri); - } + } public void setURI(String value) { setURI(value, false); } - public String getURI() + public String getURI() { - if (uri != null) - return uri; + if (uri != null) + return uri; return getFirstLineToken(1); - } - + } + //////////////////////////////////////////////// // URI Parameter //////////////////////////////////////////////// @@ -166,17 +166,17 @@ public class HTTPRequest extends HTTPPacket public ParameterList getParameterList() { ParameterList paramList = new ParameterList(); - String uri = getURI(); - if (uri == null) + String _uri = getURI(); + if (_uri == null) return paramList; - int paramIdx = uri.indexOf('?'); + int paramIdx = _uri.indexOf('?'); if (paramIdx < 0) return paramList; while (0 < paramIdx) { - int eqIdx = uri.indexOf('=', (paramIdx+1)); - String name = uri.substring(paramIdx+1, eqIdx); - int nextParamIdx = uri.indexOf('&', (eqIdx+1)); - String value = uri.substring(eqIdx+1, (0 < nextParamIdx) ? nextParamIdx : uri.length()); + int eqIdx = _uri.indexOf('=', (paramIdx+1)); + String name = _uri.substring(paramIdx+1, eqIdx); + int nextParamIdx = _uri.indexOf('&', (eqIdx+1)); + String value = _uri.substring(eqIdx+1, (0 < nextParamIdx) ? nextParamIdx : _uri.length()); Parameter param = new Parameter(name, value); paramList.add(param); paramIdx = nextParamIdx; @@ -227,21 +227,21 @@ public class HTTPRequest extends HTTPPacket return requestPort; } - //////////////////////////////////////////////// - // Socket - //////////////////////////////////////////////// - - private HTTPSocket httpSocket = null; - - public void setSocket(HTTPSocket value) - { - httpSocket = value; - } - - public HTTPSocket getSocket() - { - return httpSocket; - } + //////////////////////////////////////////////// + // Socket + //////////////////////////////////////////////// + + private HTTPSocket httpSocket = null; + + public void setSocket(HTTPSocket value) + { + httpSocket = value; + } + + public HTTPSocket getSocket() + { + return httpSocket; + } /////////////////////////// ///////////////////// // local address/port @@ -256,25 +256,25 @@ public class HTTPRequest extends HTTPPacket { return getSocket().getLocalPort(); } - - //////////////////////////////////////////////// - // parseRequest - //////////////////////////////////////////////// - - public boolean parseRequestLine(String lineStr) - { - StringTokenizer st = new StringTokenizer(lineStr, HTTP.REQEST_LINE_DELIM); - if (st.hasMoreTokens() == false) - return false; - setMethod(st.nextToken()); - if (st.hasMoreTokens() == false) - return false; - setURI(st.nextToken()); - if (st.hasMoreTokens() == false) - return false; - setVersion(st.nextToken()); - return true; - } + + //////////////////////////////////////////////// + // parseRequest + //////////////////////////////////////////////// + + public boolean parseRequestLine(String lineStr) + { + StringTokenizer st = new StringTokenizer(lineStr, HTTP.REQEST_LINE_DELIM); + if (st.hasMoreTokens() == false) + return false; + setMethod(st.nextToken()); + if (st.hasMoreTokens() == false) + return false; + setURI(st.nextToken()); + if (st.hasMoreTokens() == false) + return false; + setVersion(st.nextToken()); + return true; + } //////////////////////////////////////////////// // First Line @@ -292,22 +292,22 @@ public class HTTPRequest extends HTTPPacket return getMethod() + " " + getURI() + " " + getHTTPVersion() + HTTP.CRLF; } - //////////////////////////////////////////////// - // getHeader - //////////////////////////////////////////////// - - public String getHeader() - { - StringBuilder str = new StringBuilder(); - - str.append(getFirstLineString()); - + //////////////////////////////////////////////// + // getHeader + //////////////////////////////////////////////// + + public String getHeader() + { + StringBuilder str = new StringBuilder(); + + str.append(getFirstLineString()); + String headerString = getHeaderString(); str.append(headerString); - - return str.toString(); - } - + + return str.toString(); + } + //////////////////////////////////////////////// // isKeepAlive //////////////////////////////////////////////// @@ -334,9 +334,9 @@ public class HTTPRequest extends HTTPPacket return super.read(getSocket()); } - //////////////////////////////////////////////// - // POST (Response) - //////////////////////////////////////////////// + //////////////////////////////////////////////// + // POST (Response) + //////////////////////////////////////////////// public boolean post(HTTPResponse httpRes) { @@ -361,15 +361,15 @@ public class HTTPRequest extends HTTPPacket return httpSock.post(httpRes, offset, length, isHeadRequest()); //httpSock.close(); } - + //////////////////////////////////////////////// // POST (Request) //////////////////////////////////////////////// private Socket postSocket = null; - public HTTPResponse post(String host, int port, boolean isKeepAlive) - { + public HTTPResponse post(String host, int port, boolean isKeepAlive) + { HTTPResponse httpRes = new HTTPResponse(); setConnection((isKeepAlive == true) ? HTTP.KEEP_ALIVE : HTTP.CLOSE); @@ -396,9 +396,9 @@ public class HTTPRequest extends HTTPPacket postSocket.connect(sa, 3000); } - out = postSocket.getOutputStream(); - PrintStream pout = new PrintStream(out); - pout.print(getHeader()); + out = postSocket.getOutputStream(); + PrintStream pout = new PrintStream(out); + pout.print(getHeader()); pout.print(HTTP.CRLF); boolean isChunkedRequest = isChunked(); @@ -407,7 +407,7 @@ public class HTTPRequest extends HTTPPacket int contentLength = 0; if (content != null) contentLength = content.length(); - + if (0 < contentLength) { if (isChunkedRequest == true) { String chunSizeBuf = Long.toString(contentLength); @@ -424,34 +424,34 @@ public class HTTPRequest extends HTTPPacket pout.print(HTTP.CRLF); } - pout.flush(); + pout.flush(); in = postSocket.getInputStream(); httpRes.set(in, isHeaderRequest); - } + } catch (Exception e) { - httpRes.setStatusCode(HTTPStatus.INTERNAL_SERVER_ERROR); + httpRes.setStatusCode(HTTPStatus.INTERNAL_SERVER_ERROR); // I2P addition Debug.warning(e); } finally { if (isKeepAlive == false) { try { in.close(); - } catch (Exception e) {}; + } catch (Exception e) {} if (in != null) try { out.close(); - } catch (Exception e) {}; + } catch (Exception e) {} if (out != null) try { postSocket.close(); - } catch (Exception e) {}; + } catch (Exception e) {} postSocket = null; } } return httpRes; - } + } public HTTPResponse post(String host, int port) { @@ -490,20 +490,21 @@ public class HTTPRequest extends HTTPPacket return returnResponse(HTTPStatus.BAD_REQUEST); } - //////////////////////////////////////////////// - // toString - //////////////////////////////////////////////// - - public String toString() - { - StringBuilder str = new StringBuilder(); - - str.append(getHeader()); - str.append(HTTP.CRLF); - str.append(getContentString()); - - return str.toString(); - } + //////////////////////////////////////////////// + // toString + //////////////////////////////////////////////// + + @Override + public String toString() + { + StringBuilder str = new StringBuilder(); + + str.append(getHeader()); + str.append(HTTP.CRLF); + str.append(getContentString()); + + return str.toString(); + } public void print() { diff --git a/router/java/src/org/cybergarage/http/HTTPResponse.java b/router/java/src/org/cybergarage/http/HTTPResponse.java index fd5700c26..9d6818083 100644 --- a/router/java/src/org/cybergarage/http/HTTPResponse.java +++ b/router/java/src/org/cybergarage/http/HTTPResponse.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2003 * * File: HTTPResponse.java -* -* Revision; -* -* 11/18/02 -* - first revision. +* +* Revision; +* +* 11/18/02 +* - first revision. * 10/22/03 * - Changed to initialize a content length header. * 10/22/04 @@ -17,23 +17,23 @@ * ******************************************************************/ -package org.cybergarage.http; +package org.cybergarage.http; import java.io.*; import org.cybergarage.util.Debug; - -public class HTTPResponse extends HTTPPacket -{ - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public HTTPResponse() - { + +public class HTTPResponse extends HTTPPacket +{ + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public HTTPResponse() + { setContentType(HTML.CONTENT_TYPE); setServer(HTTPServer.getName()); setContent(""); - } + } public HTTPResponse(HTTPResponse httpRes) { @@ -49,25 +49,25 @@ public class HTTPResponse extends HTTPPacket { this(httpSock.getInputStream()); } - - //////////////////////////////////////////////// - // Status Line - //////////////////////////////////////////////// + + //////////////////////////////////////////////// + // Status Line + //////////////////////////////////////////////// private int statusCode = 0; - - public void setStatusCode(int code) + + public void setStatusCode(int code) { - statusCode = code; - } - - public int getStatusCode() + statusCode = code; + } + + public int getStatusCode() { if (statusCode != 0) - return statusCode; + return statusCode; HTTPStatus httpStatus = new HTTPStatus(getFirstLine()); - return httpStatus.getStatusCode(); - } + return httpStatus.getStatusCode(); + } public boolean isSuccessful() { @@ -78,25 +78,26 @@ public class HTTPResponse extends HTTPPacket { return "HTTP/" + getVersion() + " " + getStatusCode() + " " + HTTPStatus.code2String(statusCode) + HTTP.CRLF; } - - //////////////////////////////////////////////// - // getHeader - //////////////////////////////////////////////// - - public String getHeader() - { - StringBuilder str = new StringBuilder(); - - str.append(getStatusLineString()); + + //////////////////////////////////////////////// + // getHeader + //////////////////////////////////////////////// + + public String getHeader() + { + StringBuilder str = new StringBuilder(); + + str.append(getStatusLineString()); str.append(getHeaderString()); - - return str.toString(); - } + + return str.toString(); + } //////////////////////////////////////////////// // toString //////////////////////////////////////////////// + @Override public String toString() { StringBuilder str = new StringBuilder(); diff --git a/router/java/src/org/cybergarage/http/HTTPServerThread.java b/router/java/src/org/cybergarage/http/HTTPServerThread.java index 40351ecaf..ea3854010 100644 --- a/router/java/src/org/cybergarage/http/HTTPServerThread.java +++ b/router/java/src/org/cybergarage/http/HTTPServerThread.java @@ -37,6 +37,7 @@ public class HTTPServerThread extends Thread // run //////////////////////////////////////////////// + @Override public void run() { HTTPSocket httpSock = new HTTPSocket(sock); diff --git a/router/java/src/org/cybergarage/http/HTTPSocket.java b/router/java/src/org/cybergarage/http/HTTPSocket.java index 6709aa41a..e75573356 100644 --- a/router/java/src/org/cybergarage/http/HTTPSocket.java +++ b/router/java/src/org/cybergarage/http/HTTPSocket.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2004 * * File: HTTPSocket.java -* -* Revision; -* -* 12/12/02 -* - first revision. +* +* Revision; +* +* 12/12/02 +* - first revision. * 03/11/04 * - Added the following methods about chunk size. * setChunkSize(), getChunkSize(). @@ -19,24 +19,24 @@ * - Changed post() to suppot chunked stream. * ******************************************************************/ - -package org.cybergarage.http; - -import java.io.*; -import java.net.*; + +package org.cybergarage.http; + +import java.io.*; +import java.net.*; import java.util.*; - -public class HTTPSocket -{ - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public HTTPSocket(Socket socket) - { - setSocket(socket); + +public class HTTPSocket +{ + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public HTTPSocket(Socket socket) + { + setSocket(socket); open(); - } + } public HTTPSocket(HTTPSocket socket) { @@ -45,11 +45,12 @@ public class HTTPSocket setOutputStream(socket.getOutputStream()); } - public void finalize() - { - close(); - } - + @Override + public void finalize() + { + close(); + } + //////////////////////////////////////////////// // Socket //////////////////////////////////////////////// @@ -86,27 +87,27 @@ public class HTTPSocket private InputStream sockIn = null; private OutputStream sockOut = null; - + private void setInputStream(InputStream in) { sockIn = in; } - public InputStream getInputStream() - { - return sockIn; - } + public InputStream getInputStream() + { + return sockIn; + } private void setOutputStream(OutputStream out) { sockOut = out; } - - private OutputStream getOutputStream() - { - return sockOut; - } - + + private OutputStream getOutputStream() + { + return sockOut; + } + //////////////////////////////////////////////// // open/close //////////////////////////////////////////////// @@ -140,20 +141,20 @@ public class HTTPSocket return true; } - //////////////////////////////////////////////// - // post - //////////////////////////////////////////////// - - private boolean post(HTTPResponse httpRes, byte content[], long contentOffset, long contentLength, boolean isOnlyHeader) - { + //////////////////////////////////////////////// + // post + //////////////////////////////////////////////// + + private boolean post(HTTPResponse httpRes, byte content[], long contentOffset, long contentLength, boolean isOnlyHeader) + { httpRes.setDate(Calendar.getInstance()); - OutputStream out = getOutputStream(); - + OutputStream out = getOutputStream(); + try { httpRes.setContentLength(contentLength); - - out.write(httpRes.getHeader().getBytes()); - out.write(HTTP.CRLF.getBytes()); + + out.write(httpRes.getHeader().getBytes()); + out.write(HTTP.CRLF.getBytes()); if (isOnlyHeader == true) { out.flush(); return true; @@ -174,17 +175,17 @@ public class HTTPSocket out.write("0".getBytes()); out.write(HTTP.CRLF.getBytes()); } - - out.flush(); - } - catch (Exception e) { - //Debug.warning(e); + + out.flush(); + } + catch (Exception e) { + //Debug.warning(e); return false; } - return true; + return true; } - + private boolean post(HTTPResponse httpRes, InputStream in, long contentOffset, long contentLength, boolean isOnlyHeader) { httpRes.setDate(Calendar.getInstance()); diff --git a/router/java/src/org/cybergarage/net/HostInterface.java b/router/java/src/org/cybergarage/net/HostInterface.java index 798f33dca..237dfb640 100644 --- a/router/java/src/org/cybergarage/net/HostInterface.java +++ b/router/java/src/org/cybergarage/net/HostInterface.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2003 * * File: HostInterface.java -* -* Revision; -* -* 05/12/03 -* - first revision. +* +* Revision; +* +* 05/12/03 +* - first revision. * 05/13/03 * - Added support for IPv6 and loopback address. * 02/15/04 @@ -22,14 +22,14 @@ * - Changed isUseAddress() to isUsableAddress(). * ******************************************************************/ - -package org.cybergarage.net; - -import java.net.*; + +package org.cybergarage.net; + +import java.net.*; import java.util.*; - -public class HostInterface -{ + +public class HostInterface +{ //////////////////////////////////////////////// // Constants //////////////////////////////////////////////// @@ -101,7 +101,7 @@ public class HostInterface } } } - catch(Exception e){}; + catch(Exception e){} return nHostAddrs; } @@ -131,7 +131,7 @@ public class HostInterface } } } - catch(Exception e){}; + catch(Exception e){} return ""; } diff --git a/router/java/src/org/cybergarage/soap/SOAPRequest.java b/router/java/src/org/cybergarage/soap/SOAPRequest.java index 35d31345f..7fa54871c 100644 --- a/router/java/src/org/cybergarage/soap/SOAPRequest.java +++ b/router/java/src/org/cybergarage/soap/SOAPRequest.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002 * * File: SOAPRequest.java -* -* Revision; -* -* 12/11/02 -* - first revision. +* +* Revision; +* +* 12/11/02 +* - first revision. * 02/13/04 * - Ralf G. R. Bergs , Inma Marin Lopez . * - Added XML header, to setContent(). @@ -17,28 +17,28 @@ * - Changed the XML header to in setContent(). * ******************************************************************/ - -package org.cybergarage.soap; - -import java.io.*; - -import org.cybergarage.http.*; -import org.cybergarage.xml.*; -import org.cybergarage.util.*; - -public class SOAPRequest extends HTTPRequest + +package org.cybergarage.soap; + +import java.io.*; + +import org.cybergarage.http.*; +import org.cybergarage.xml.*; +import org.cybergarage.util.*; + +public class SOAPRequest extends HTTPRequest { private final static String SOAPACTION = "SOAPACTION"; - - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public SOAPRequest() + + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public SOAPRequest() { - setContentType(SOAP.CONTENT_TYPE); - setMethod(HTTP.POST); - } + setContentType(SOAP.CONTENT_TYPE); + setMethod(HTTP.POST); + } public SOAPRequest(HTTPRequest httpReq) { @@ -71,33 +71,33 @@ public class SOAPRequest extends HTTPRequest return false; return soapAction.equals(value); } - - //////////////////////////////////////////////// - // post - //////////////////////////////////////////////// - - public SOAPResponse postMessage(String host, int port) - { - HTTPResponse httpRes = post(host, port); + + //////////////////////////////////////////////// + // post + //////////////////////////////////////////////// + + public SOAPResponse postMessage(String host, int port) + { + HTTPResponse httpRes = post(host, port); - SOAPResponse soapRes = new SOAPResponse(httpRes); - - byte content[] = soapRes.getContent(); - if (content.length <= 0) - return soapRes; - - try { - ByteArrayInputStream byteIn = new ByteArrayInputStream(content); - Parser xmlParser = SOAP.getXMLParser(); - Node rootNode = xmlParser.parse(byteIn); - soapRes.setEnvelopeNode(rootNode); - } - catch (Exception e) { - Debug.warning(e); - } - - return soapRes; - } + SOAPResponse soapRes = new SOAPResponse(httpRes); + + byte content[] = soapRes.getContent(); + if (content.length <= 0) + return soapRes; + + try { + ByteArrayInputStream byteIn = new ByteArrayInputStream(content); + Parser xmlParser = SOAP.getXMLParser(); + Node _rootNode = xmlParser.parse(byteIn); + soapRes.setEnvelopeNode(_rootNode); + } + catch (Exception e) { + Debug.warning(e); + } + + return soapRes; + } //////////////////////////////////////////////// // Node @@ -170,6 +170,7 @@ public class SOAPRequest extends HTTPRequest // print //////////////////////////////////////////////// + @Override public void print() { Debug.message(toString()); diff --git a/router/java/src/org/cybergarage/soap/SOAPResponse.java b/router/java/src/org/cybergarage/soap/SOAPResponse.java index d21ac857f..51f0abf73 100644 --- a/router/java/src/org/cybergarage/soap/SOAPResponse.java +++ b/router/java/src/org/cybergarage/soap/SOAPResponse.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002 * * File: SOAPResponse.java -* -* Revision; -* -* 12/17/02 -* - first revision. +* +* Revision; +* +* 12/17/02 +* - first revision. * 02/13/04 * - Ralf G. R. Bergs , Inma Marin Lopez . * - Added XML header, to setContent(). @@ -17,24 +17,24 @@ * - Changed the XML header to in setContent(). * ******************************************************************/ - -package org.cybergarage.soap; - -import org.cybergarage.http.*; + +package org.cybergarage.soap; + +import org.cybergarage.http.*; import org.cybergarage.util.Debug; -import org.cybergarage.xml.*; - -public class SOAPResponse extends HTTPResponse -{ - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public SOAPResponse() +import org.cybergarage.xml.*; + +public class SOAPResponse extends HTTPResponse +{ + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public SOAPResponse() { setRootNode(SOAP.createEnvelopeBodyNode()); setContentType(XML.CONTENT_TYPE); - } + } public SOAPResponse(HTTPResponse httpRes) { @@ -50,25 +50,25 @@ public class SOAPResponse extends HTTPResponse setContentType(XML.CONTENT_TYPE); } - //////////////////////////////////////////////// - // Node - //////////////////////////////////////////////// - - private Node rootNode; - - private void setRootNode(Node node) - { + //////////////////////////////////////////////// + // Node + //////////////////////////////////////////////// + + private Node rootNode; + + private void setRootNode(Node node) + { rootNode = node; - } - - private Node getRootNode() - { - return rootNode; - } - - //////////////////////////////////////////////// - // SOAP Basic - //////////////////////////////////////////////// + } + + private Node getRootNode() + { + return rootNode; + } + + //////////////////////////////////////////////// + // SOAP Basic + //////////////////////////////////////////////// public void setEnvelopeNode(Node node) { @@ -79,88 +79,88 @@ public class SOAPResponse extends HTTPResponse { return getRootNode(); } - - public Node getBodyNode() - { - Node envNode = getEnvelopeNode(); - if (envNode == null) - return null; - return envNode.getNodeEndsWith(SOAP.BODY); - } - - public Node getMethodResponseNode(String name) - { - Node bodyNode = getBodyNode(); - if (bodyNode == null) - return null; - String methodResName = name + SOAP.RESPONSE; - return bodyNode.getNodeEndsWith(methodResName); - } - - public Node getFaultNode() - { - Node bodyNode = getBodyNode(); - if (bodyNode == null) - return null; - return bodyNode.getNodeEndsWith(SOAP.FAULT); - } - - public Node getFaultCodeNode() - { - Node faultNode = getFaultNode(); - if (faultNode == null) - return null; - return faultNode.getNodeEndsWith(SOAP.FAULT_CODE); - } - - public Node getFaultStringNode() - { - Node faultNode = getFaultNode(); - if (faultNode == null) - return null; - return faultNode.getNodeEndsWith(SOAP.FAULT_STRING); - } - - public Node getFaultActorNode() - { - Node faultNode = getFaultNode(); - if (faultNode == null) - return null; - return faultNode.getNodeEndsWith(SOAP.FAULTACTOR); - } - - public Node getFaultDetailNode() - { - Node faultNode = getFaultNode(); - if (faultNode == null) - return null; - return faultNode.getNodeEndsWith(SOAP.DETAIL); - } - - public String getFaultCode() - { - Node node = getFaultCodeNode(); - if (node == null) - return ""; - return node.getValue(); - } - - public String getFaultString() - { - Node node = getFaultStringNode(); - if (node == null) - return ""; - return node.getValue(); - } - - public String getFaultActor() - { - Node node = getFaultActorNode(); - if (node == null) - return ""; - return node.getValue(); - } - + + public Node getBodyNode() + { + Node envNode = getEnvelopeNode(); + if (envNode == null) + return null; + return envNode.getNodeEndsWith(SOAP.BODY); + } + + public Node getMethodResponseNode(String name) + { + Node bodyNode = getBodyNode(); + if (bodyNode == null) + return null; + String methodResName = name + SOAP.RESPONSE; + return bodyNode.getNodeEndsWith(methodResName); + } + + public Node getFaultNode() + { + Node bodyNode = getBodyNode(); + if (bodyNode == null) + return null; + return bodyNode.getNodeEndsWith(SOAP.FAULT); + } + + public Node getFaultCodeNode() + { + Node faultNode = getFaultNode(); + if (faultNode == null) + return null; + return faultNode.getNodeEndsWith(SOAP.FAULT_CODE); + } + + public Node getFaultStringNode() + { + Node faultNode = getFaultNode(); + if (faultNode == null) + return null; + return faultNode.getNodeEndsWith(SOAP.FAULT_STRING); + } + + public Node getFaultActorNode() + { + Node faultNode = getFaultNode(); + if (faultNode == null) + return null; + return faultNode.getNodeEndsWith(SOAP.FAULTACTOR); + } + + public Node getFaultDetailNode() + { + Node faultNode = getFaultNode(); + if (faultNode == null) + return null; + return faultNode.getNodeEndsWith(SOAP.DETAIL); + } + + public String getFaultCode() + { + Node node = getFaultCodeNode(); + if (node == null) + return ""; + return node.getValue(); + } + + public String getFaultString() + { + Node node = getFaultStringNode(); + if (node == null) + return ""; + return node.getValue(); + } + + public String getFaultActor() + { + Node node = getFaultActorNode(); + if (node == null) + return ""; + return node.getValue(); + } + //////////////////////////////////////////////// // XML Contents //////////////////////////////////////////////// @@ -179,6 +179,7 @@ public class SOAPResponse extends HTTPResponse // print //////////////////////////////////////////////// + @Override public void print() { Debug.message(toString()); diff --git a/router/java/src/org/cybergarage/upnp/Action.java b/router/java/src/org/cybergarage/upnp/Action.java index b58c1132a..84fcb33d8 100644 --- a/router/java/src/org/cybergarage/upnp/Action.java +++ b/router/java/src/org/cybergarage/upnp/Action.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2004 * * File: Action.java -* -* Revision; -* -* 12/05/02 -* - first revision. +* +* Revision; +* +* 12/05/02 +* - first revision. * 08/30/03 * - Gordano Sassaroli * - Problem : When invoking an action that has at least one out parameter, an error message is returned @@ -24,61 +24,61 @@ * - Changed postControlAction() to set the status code to the UPnPStatus. * ******************************************************************/ - -package org.cybergarage.upnp; + +package org.cybergarage.upnp; import org.cybergarage.xml.*; import org.cybergarage.util.*; - -import org.cybergarage.upnp.xml.*; + +import org.cybergarage.upnp.xml.*; import org.cybergarage.upnp.control.*; - -public class Action -{ - //////////////////////////////////////////////// - // Constants - //////////////////////////////////////////////// - - public final static String ELEM_NAME = "action"; - - //////////////////////////////////////////////// - // Member - //////////////////////////////////////////////// - - private Node serviceNode; - private Node actionNode; - - private Node getServiceNode() - { - return serviceNode; - } - - public Service getService() - { - return new Service(getServiceNode()); - } - - public Node getActionNode() - { - return actionNode; - } - - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public Action(Node serviceNode, Node actionNode) - { - this.serviceNode = serviceNode; - this.actionNode = actionNode; - } + +public class Action +{ + //////////////////////////////////////////////// + // Constants + //////////////////////////////////////////////// + + public final static String ELEM_NAME = "action"; + + //////////////////////////////////////////////// + // Member + //////////////////////////////////////////////// + + private Node serviceNode; + private Node actionNode; + + private Node getServiceNode() + { + return serviceNode; + } + + public Service getService() + { + return new Service(getServiceNode()); + } + + public Node getActionNode() + { + return actionNode; + } + + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public Action(Node serviceNode, Node actionNode) + { + this.serviceNode = serviceNode; + this.actionNode = actionNode; + } public Action(Action action) { this.serviceNode = action.getServiceNode(); this.actionNode = action.getActionNode(); } - + //////////////////////////////////////////////// // Mutex //////////////////////////////////////////////// @@ -95,50 +95,50 @@ public class Action mutex.unlock(); } - //////////////////////////////////////////////// - // isActionNode - //////////////////////////////////////////////// - - public static boolean isActionNode(Node node) - { - return Action.ELEM_NAME.equals(node.getName()); - } - - //////////////////////////////////////////////// - // name - //////////////////////////////////////////////// - - private final static String NAME = "name"; - - public void setName(String value) - { - getActionNode().setNode(NAME, value); - } - - public String getName() - { - return getActionNode().getNodeValue(NAME); - } - - //////////////////////////////////////////////// - // argumentList - //////////////////////////////////////////////// - - public ArgumentList getArgumentList() - { - ArgumentList argumentList = new ArgumentList(); - Node argumentListNode = getActionNode().getNode(ArgumentList.ELEM_NAME); - if (argumentListNode == null) - return argumentList; - int nodeCnt = argumentListNode.getNNodes(); - for (int n=0; n * - Changed open(addr, port) to send IPv6 SSDP packets. @@ -20,46 +20,47 @@ * - Added to set a current timestamp when the packet are received. * ******************************************************************/ - -package org.cybergarage.upnp.ssdp; - -import java.net.*; - -import org.cybergarage.util.*; - -public class HTTPUSocket -{ - //////////////////////////////////////////////// - // Member - //////////////////////////////////////////////// - - private DatagramSocket ssdpUniSock = null; + +package org.cybergarage.upnp.ssdp; + +import java.net.*; + +import org.cybergarage.util.*; + +public class HTTPUSocket +{ + //////////////////////////////////////////////// + // Member + //////////////////////////////////////////////// + + private DatagramSocket ssdpUniSock = null; //private MulticastSocket ssdpUniSock = null; - - public DatagramSocket getDatagramSocket() - { - return ssdpUniSock; - } - - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public HTTPUSocket() + + public DatagramSocket getDatagramSocket() + { + return ssdpUniSock; + } + + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public HTTPUSocket() { open(); - } - - public HTTPUSocket(String bindAddr, int bindPort) + } + + public HTTPUSocket(String bindAddr, int bindPort) { open(bindAddr, bindPort); - } + } public HTTPUSocket(int bindPort) { open(bindPort); } - + + @Override protected void finalize() { close(); @@ -141,66 +142,66 @@ public class HTTPUSocket return true; } - //////////////////////////////////////////////// - // close - //////////////////////////////////////////////// - - public boolean close() - { - if (ssdpUniSock == null) - return true; - - try { - ssdpUniSock.close(); - ssdpUniSock = null; - } - catch (Exception e) { - Debug.warning(e); - return false; - } - - return true; - } + //////////////////////////////////////////////// + // close + //////////////////////////////////////////////// - //////////////////////////////////////////////// - // send - //////////////////////////////////////////////// - - public boolean post(String addr, int port, String msg) - { - try { - InetAddress inetAddr = InetAddress.getByName(addr); - DatagramPacket dgmPacket = new DatagramPacket(msg.getBytes(), msg.length(), inetAddr, port); - ssdpUniSock.send(dgmPacket); - } + public boolean close() + { + if (ssdpUniSock == null) + return true; + + try { + ssdpUniSock.close(); + ssdpUniSock = null; + } catch (Exception e) { - Debug.warning("addr = " +ssdpUniSock.getLocalAddress().getHostName()); + Debug.warning(e); + return false; + } + + return true; + } + + //////////////////////////////////////////////// + // send + //////////////////////////////////////////////// + + public boolean post(String addr, int port, String msg) + { + try { + InetAddress inetAddr = InetAddress.getByName(addr); + DatagramPacket dgmPacket = new DatagramPacket(msg.getBytes(), msg.length(), inetAddr, port); + ssdpUniSock.send(dgmPacket); + } + catch (Exception e) { + Debug.warning("addr = " +ssdpUniSock.getLocalAddress().getHostName()); Debug.warning("port = " + ssdpUniSock.getLocalPort()); - Debug.warning(e); - return false; - } - return true; - } - - //////////////////////////////////////////////// - // reveive - //////////////////////////////////////////////// - - public SSDPPacket receive() - { - byte ssdvRecvBuf[] = new byte[SSDP.RECV_MESSAGE_BUFSIZE]; - SSDPPacket recvPacket = new SSDPPacket(ssdvRecvBuf, ssdvRecvBuf.length); + Debug.warning(e); + return false; + } + return true; + } + + //////////////////////////////////////////////// + // reveive + //////////////////////////////////////////////// + + public SSDPPacket receive() + { + byte ssdvRecvBuf[] = new byte[SSDP.RECV_MESSAGE_BUFSIZE]; + SSDPPacket recvPacket = new SSDPPacket(ssdvRecvBuf, ssdvRecvBuf.length); recvPacket.setLocalAddress(getLocalAddress()); - try { - ssdpUniSock.receive(recvPacket.getDatagramPacket()); + try { + ssdpUniSock.receive(recvPacket.getDatagramPacket()); recvPacket.setTimeStamp(System.currentTimeMillis()); - } - catch (Exception e) { + } + catch (Exception e) { //Debug.warning(e); - return null; - } - return recvPacket; - } + return null; + } + return recvPacket; + } //////////////////////////////////////////////// // join/leave @@ -235,5 +236,5 @@ public class HTTPUSocket return true; } */ -} - +} + diff --git a/router/java/src/org/cybergarage/upnp/ssdp/SSDPNotifySocket.java b/router/java/src/org/cybergarage/upnp/ssdp/SSDPNotifySocket.java index 75484bd16..ad5c26f75 100644 --- a/router/java/src/org/cybergarage/upnp/ssdp/SSDPNotifySocket.java +++ b/router/java/src/org/cybergarage/upnp/ssdp/SSDPNotifySocket.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2003 * * File: SSDPNotifySocket.java -* -* Revision; -* -* 11/20/02 -* - first revision. +* +* Revision; +* +* 11/20/02 +* - first revision. * 05/13/03 * - Added support for IPv6. * 02/20/04 @@ -21,25 +21,24 @@ * - Added close() in stop(). * ******************************************************************/ - -package org.cybergarage.upnp.ssdp; -import java.net.*; +package org.cybergarage.upnp.ssdp; + +import java.net.*; import org.cybergarage.net.*; -import org.cybergarage.util.*; import org.cybergarage.http.*; -import org.cybergarage.upnp.*; - -public class SSDPNotifySocket extends HTTPMUSocket implements Runnable +import org.cybergarage.upnp.*; + +public class SSDPNotifySocket extends HTTPMUSocket implements Runnable { private boolean useIPv6Address; - - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public SSDPNotifySocket(String bindAddr) + + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public SSDPNotifySocket(String bindAddr) { String addr = SSDP.ADDRESS; useIPv6Address = false; @@ -48,24 +47,24 @@ public class SSDPNotifySocket extends HTTPMUSocket implements Runnable useIPv6Address = true; } open(addr, SSDP.PORT, bindAddr); - setControlPoint(null); - } - - //////////////////////////////////////////////// - // ControlPoint - //////////////////////////////////////////////// - - private ControlPoint controlPoint = null; - - public void setControlPoint(ControlPoint ctrlp) - { - this.controlPoint = ctrlp; - } - - public ControlPoint getControlPoint() - { - return controlPoint; - } + setControlPoint(null); + } + + //////////////////////////////////////////////// + // ControlPoint + //////////////////////////////////////////////// + + private ControlPoint controlPoint = null; + + public void setControlPoint(ControlPoint ctrlp) + { + this.controlPoint = ctrlp; + } + + public ControlPoint getControlPoint() + { + return controlPoint; + } //////////////////////////////////////////////// // post (SSDPNotifySocket) @@ -80,20 +79,20 @@ public class SSDPNotifySocket extends HTTPMUSocket implements Runnable return post((HTTPRequest)req); } - //////////////////////////////////////////////// - // run - //////////////////////////////////////////////// - - private Thread deviceNotifyThread = null; - - public void run() - { + //////////////////////////////////////////////// + // run + //////////////////////////////////////////////// + + private Thread deviceNotifyThread = null; + + public void run() + { Thread thisThread = Thread.currentThread(); - + ControlPoint ctrlPoint = getControlPoint(); - - while (deviceNotifyThread == thisThread) { - Thread.yield(); + + while (deviceNotifyThread == thisThread) { + Thread.yield(); SSDPPacket packet = receive(); // Thanks for Mikael Hakman (04/20/05) @@ -110,23 +109,23 @@ public class SSDPNotifySocket extends HTTPMUSocket implements Runnable } if (ctrlPoint != null) - ctrlPoint.notifyReceived(packet); - } - } - - public void start() - { + ctrlPoint.notifyReceived(packet); + } + } + + public void start() + { deviceNotifyThread = new Thread(this, "UPnP-SSDPNotifySocket"); - deviceNotifyThread.setDaemon(true); - deviceNotifyThread.start(); - } - - public void stop() - { + deviceNotifyThread.setDaemon(true); + deviceNotifyThread.start(); + } + + public void stop() + { // Thanks for Mikael Hakman (04/20/05) close(); - deviceNotifyThread = null; - } + deviceNotifyThread = null; + } } - + diff --git a/router/java/src/org/cybergarage/upnp/ssdp/SSDPPacket.java b/router/java/src/org/cybergarage/upnp/ssdp/SSDPPacket.java index d2e0f2770..717856f93 100644 --- a/router/java/src/org/cybergarage/upnp/ssdp/SSDPPacket.java +++ b/router/java/src/org/cybergarage/upnp/ssdp/SSDPPacket.java @@ -5,11 +5,11 @@ * Copyright (C) Satoshi Konno 2002-2003 * * File: SSDPPacket.java -* -* Revision; -* -* 11/18/02 -* - first revision. +* +* Revision; +* +* 11/18/02 +* - first revision. * 05/13/03 * - Added getLocalAddress(). * 11/01/04 @@ -20,25 +20,25 @@ * - Changed getRemoteAddress() to return the adresss instead of the host name. * ******************************************************************/ - -package org.cybergarage.upnp.ssdp; - -import java.net.*; - + +package org.cybergarage.upnp.ssdp; + +import java.net.*; + import org.cybergarage.http.*; -import org.cybergarage.upnp.device.*; - -public class SSDPPacket -{ - //////////////////////////////////////////////// - // Constructor - //////////////////////////////////////////////// - - public SSDPPacket(byte[] buf, int length) - { - dgmPacket = new DatagramPacket(buf, length); - } +import org.cybergarage.upnp.device.*; + +public class SSDPPacket +{ + //////////////////////////////////////////////// + // Constructor + //////////////////////////////////////////////// + + public SSDPPacket(byte[] buf, int length) + { + dgmPacket = new DatagramPacket(buf, length); + } //////////////////////////////////////////////// // DatagramPacket @@ -68,115 +68,115 @@ public class SSDPPacket } - //////////////////////////////////////////////// - // Time - //////////////////////////////////////////////// - - private long timeStamp; - - public void setTimeStamp(long value) - { - timeStamp = value; - } - - public long getTimeStamp() - { - return timeStamp; - } - - //////////////////////////////////////////////// - // Remote host - //////////////////////////////////////////////// + //////////////////////////////////////////////// + // Time + //////////////////////////////////////////////// + + private long timeStamp; + + public void setTimeStamp(long value) + { + timeStamp = value; + } + + public long getTimeStamp() + { + return timeStamp; + } + + //////////////////////////////////////////////// + // Remote host + //////////////////////////////////////////////// public InetAddress getRemoteInetAddress() { return getDatagramPacket().getAddress(); } - public String getRemoteAddress() - { + public String getRemoteAddress() + { // Thanks for Theo Beisch (11/09/04) - return getDatagramPacket().getAddress().getHostAddress(); - } - - public int getRemotePort() - { - return getDatagramPacket().getPort(); - } - - //////////////////////////////////////////////// - // Access Methods - //////////////////////////////////////////////// - - public byte[] packetBytes = null; - - public byte[] getData() - { - if (packetBytes != null) - return packetBytes; - - DatagramPacket packet = getDatagramPacket(); - int packetLen = packet.getLength(); - String packetData = new String(packet.getData(), 0, packetLen); - packetBytes = packetData.getBytes(); - - return packetBytes; - } - - //////////////////////////////////////////////// - // Access Methods - //////////////////////////////////////////////// - - public String getHost() - { - return HTTPHeader.getValue(getData(), HTTP.HOST); - } - - public String getCacheControl() - { - return HTTPHeader.getValue(getData(), HTTP.CACHE_CONTROL); - } - - public String getLocation() - { - return HTTPHeader.getValue(getData(), HTTP.LOCATION); - } - - public String getMAN() - { - return HTTPHeader.getValue(getData(), HTTP.MAN); - } + return getDatagramPacket().getAddress().getHostAddress(); + } + + public int getRemotePort() + { + return getDatagramPacket().getPort(); + } + + //////////////////////////////////////////////// + // Access Methods + //////////////////////////////////////////////// + + public byte[] packetBytes = null; + + public byte[] getData() + { + if (packetBytes != null) + return packetBytes; + + DatagramPacket packet = getDatagramPacket(); + int packetLen = packet.getLength(); + String packetData = new String(packet.getData(), 0, packetLen); + packetBytes = packetData.getBytes(); + + return packetBytes; + } + + //////////////////////////////////////////////// + // Access Methods + //////////////////////////////////////////////// + + public String getHost() + { + return HTTPHeader.getValue(getData(), HTTP.HOST); + } + + public String getCacheControl() + { + return HTTPHeader.getValue(getData(), HTTP.CACHE_CONTROL); + } + + public String getLocation() + { + return HTTPHeader.getValue(getData(), HTTP.LOCATION); + } + + public String getMAN() + { + return HTTPHeader.getValue(getData(), HTTP.MAN); + } public String getST() { return HTTPHeader.getValue(getData(), HTTP.ST); } - - public String getNT() - { - return HTTPHeader.getValue(getData(), HTTP.NT); - } - - public String getNTS() - { - return HTTPHeader.getValue(getData(), HTTP.NTS); - } - - public String getServer() - { - return HTTPHeader.getValue(getData(), HTTP.SERVER); - } - - public String getUSN() - { - return HTTPHeader.getValue(getData(), HTTP.USN); - } - - public int getMX() - { - return HTTPHeader.getIntegerValue(getData(), HTTP.MX); - } - + + public String getNT() + { + return HTTPHeader.getValue(getData(), HTTP.NT); + } + + public String getNTS() + { + return HTTPHeader.getValue(getData(), HTTP.NTS); + } + + public String getServer() + { + return HTTPHeader.getValue(getData(), HTTP.SERVER); + } + + public String getUSN() + { + return HTTPHeader.getValue(getData(), HTTP.USN); + } + + public int getMX() + { + return HTTPHeader.getIntegerValue(getData(), HTTP.MX); + } + //////////////////////////////////////////////// // Access Methods //////////////////////////////////////////////// @@ -197,47 +197,48 @@ public class SSDPPacket return isockaddr.getAddress(); } - //////////////////////////////////////////////// - // Access Methods (Extension) - //////////////////////////////////////////////// - - public boolean isRootDevice() - { - if (NT.isRootDevice(getNT()) == true) + //////////////////////////////////////////////// + // Access Methods (Extension) + //////////////////////////////////////////////// + + public boolean isRootDevice() + { + if (NT.isRootDevice(getNT()) == true) return true; - // Thanks for Theo Beisch (11/01/04) + // Thanks for Theo Beisch (11/01/04) if (ST.isRootDevice(getST()) == true) return true; - return USN.isRootDevice(getUSN()); - } - - public boolean isDiscover() - { - return MAN.isDiscover(getMAN()); - } - - public boolean isAlive() - { - return NTS.isAlive(getNTS()); - } - - public boolean isByeBye() - { - return NTS.isByeBye(getNTS()); - } - - public int getLeaseTime() - { - return SSDP.getLeaseTime(getCacheControl()); - } + return USN.isRootDevice(getUSN()); + } + + public boolean isDiscover() + { + return MAN.isDiscover(getMAN()); + } + + public boolean isAlive() + { + return NTS.isAlive(getNTS()); + } + + public boolean isByeBye() + { + return NTS.isByeBye(getNTS()); + } + + public int getLeaseTime() + { + return SSDP.getLeaseTime(getCacheControl()); + } //////////////////////////////////////////////// // toString //////////////////////////////////////////////// + @Override public String toString() { return new String(getData()); } } - + diff --git a/router/java/src/org/cybergarage/upnp/ssdp/SSDPResponse.java b/router/java/src/org/cybergarage/upnp/ssdp/SSDPResponse.java index 31b4ed280..3bbbfcbb8 100644 --- a/router/java/src/org/cybergarage/upnp/ssdp/SSDPResponse.java +++ b/router/java/src/org/cybergarage/upnp/ssdp/SSDPResponse.java @@ -112,6 +112,7 @@ public class SSDPResponse extends HTTPResponse // getHeader (Override) //////////////////////////////////////////////// + @Override public String getHeader() { StringBuilder str = new StringBuilder(); diff --git a/router/java/src/org/cybergarage/util/ListenerList.java b/router/java/src/org/cybergarage/util/ListenerList.java index afdeff0d6..b02c0ddc8 100644 --- a/router/java/src/org/cybergarage/util/ListenerList.java +++ b/router/java/src/org/cybergarage/util/ListenerList.java @@ -3,7 +3,7 @@ * CyberUtil for Java * * Copyright (C) Satoshi Konno 2002 -* +* * File: ListenerList.java * * Revision; @@ -12,15 +12,16 @@ * - first revision. * ******************************************************************/ - + package org.cybergarage.util; import java.util.*; - + public class ListenerList extends Vector { private static final long serialVersionUID = 8039231561720446173L; + @Override public boolean add(Object obj) { if (0 <= indexOf(obj)) diff --git a/router/java/src/org/cybergarage/util/Mutex.java b/router/java/src/org/cybergarage/util/Mutex.java index f26351271..aa13afe62 100644 --- a/router/java/src/org/cybergarage/util/Mutex.java +++ b/router/java/src/org/cybergarage/util/Mutex.java @@ -40,7 +40,7 @@ public class Mutex } catch (Exception e) { Debug.warning(e); - }; + } } syncLock = true; } diff --git a/router/java/src/org/cybergarage/xml/Node.java b/router/java/src/org/cybergarage/xml/Node.java index 93ca5aa0b..4fee0fdee 100644 --- a/router/java/src/org/cybergarage/xml/Node.java +++ b/router/java/src/org/cybergarage/xml/Node.java @@ -74,10 +74,10 @@ public class Node public Node getRootNode() { Node rootNode = null; - Node parentNode = getParentNode(); - while (parentNode != null) { - rootNode = parentNode; - parentNode = rootNode.getParentNode(); + Node _parentNode = getParentNode(); + while (_parentNode != null) { + rootNode = _parentNode; + _parentNode = rootNode.getParentNode(); } return rootNode; } @@ -338,24 +338,24 @@ public class Node { String indentString = getIndentLevelString(indentLevel); - String name = getName(); - String value = getValue(); + String _name = getName(); + String _value = getValue(); if (hasNodes() == false || hasChildNode == false) { - ps.print(indentString + "<" + name); + ps.print(indentString + "<" + _name); outputAttributes(ps); // Thnaks for Tho Beisch (11/09/04) - if (value == null || value.length() == 0) { + if (_value == null || _value.length() == 0) { // No value, so use short notation ps.println(" />"); } else { - ps.println(">" + XML.escapeXMLChars(value) + ""); + ps.println(">" + XML.escapeXMLChars(_value) + ""); } return; } - ps.print(indentString + "<" + name); + ps.print(indentString + "<" + _name); outputAttributes(ps); ps.println(">"); @@ -365,7 +365,7 @@ public class Node cnode.output(ps, indentLevel+1, true); } - ps.println(indentString +""); + ps.println(indentString +""); } public String toString(boolean hasChildNode) diff --git a/router/java/src/org/xmlpull/v1/XmlPullParserException.java b/router/java/src/org/xmlpull/v1/XmlPullParserException.java index 0faba7e20..bf1e7b806 100644 --- a/router/java/src/org/xmlpull/v1/XmlPullParserException.java +++ b/router/java/src/org/xmlpull/v1/XmlPullParserException.java @@ -65,6 +65,7 @@ public class XmlPullParserException extends Exception { */ //NOTE: code that prints this and detail is difficult in J2ME + @Override public void printStackTrace() { if (detail == null) { super.printStackTrace();