Author: j16sdiz
Date: 2009-04-03 06:44:51 +0000 (Fri, 03 Apr 2009)
New Revision: 26411
Modified:
trunk/freenet/src/freenet/node/NodeRestartJobsQueue.java
trunk/freenet/src/freenet/node/PacketTracker.java
trunk/freenet/src/freenet/support/DoublyLinkedListImpl.java
trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java
trunk/freenet/src/freenet/support/UpdatableSortedLinkedListWithForeignIndex.java
Log:
Even more generic (fix bug 2512)
Modified: trunk/freenet/src/freenet/node/NodeRestartJobsQueue.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeRestartJobsQueue.java 2009-04-03
06:44:22 UTC (rev 26410)
+++ trunk/freenet/src/freenet/node/NodeRestartJobsQueue.java 2009-04-03
06:44:51 UTC (rev 26411)
@@ -39,7 +39,7 @@
});
if(results.hasNext()) {
System.err.println("Found old restart jobs queue");
- NodeRestartJobsQueue queue = (NodeRestartJobsQueue)
results.next();
+ NodeRestartJobsQueue queue = results.next();
container.activate(queue, 1);
queue.onInit(container);
return queue;
Modified: trunk/freenet/src/freenet/node/PacketTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketTracker.java 2009-04-03 06:44:22 UTC
(rev 26410)
+++ trunk/freenet/src/freenet/node/PacketTracker.java 2009-04-03 06:44:51 UTC
(rev 26411)
@@ -71,12 +71,12 @@
* other side to us, the time at which they become sendable,
* and the time at which they become urgent. In order of
* the latter. */
- private final UpdatableSortedLinkedListWithForeignIndex
resendRequestQueue;
+ private final
UpdatableSortedLinkedListWithForeignIndex<QueuedResendRequest>
resendRequestQueue;
/** Serial numbers of packets we want to be acknowledged by
* the other side, the time at which they become sendable,
* and the time at which they become urgent. In order of
* the latter. */
- private final UpdatableSortedLinkedListWithForeignIndex ackRequestQueue;
+ private final
UpdatableSortedLinkedListWithForeignIndex<QueuedAckRequest> ackRequestQueue;
/** Numbered packets that we need to send to the other side
* because they asked for them. Just contains the numbers. */
private final HashSet<Integer> packetsToResend;
@@ -104,8 +104,8 @@
highestSeenIncomingSerialNumber = -1;
// give some leeway
sentPacketsContents = new LimitedRangeIntByteArrayMap(128);
- resendRequestQueue = new
UpdatableSortedLinkedListWithForeignIndex();
- ackRequestQueue = new
UpdatableSortedLinkedListWithForeignIndex();
+ resendRequestQueue = new
UpdatableSortedLinkedListWithForeignIndex<QueuedResendRequest>();
+ ackRequestQueue = new
UpdatableSortedLinkedListWithForeignIndex<QueuedAckRequest>();
packetsToResend = new HashSet<Integer>();
packetNumbersReceived = new ReceivedPacketNumbers(512);
isDeprecated = false;
@@ -215,8 +215,8 @@
}
}
- private abstract class BaseQueuedResend extends PacketActionItem
- implements
IndexableUpdatableSortedLinkedListItem<BaseQueuedResend> {
+ private abstract class BaseQueuedResend<T extends BaseQueuedResend<T>>
extends PacketActionItem
+ implements IndexableUpdatableSortedLinkedListItem<T> {
/** Time at which this item becomes sendable.
* When we send a resend request, this is reset to t+500ms.
@@ -243,30 +243,30 @@
abstract long urgentDelay();
abstract long initialActiveTime(long now);
- private BaseQueuedResend next;
- private BaseQueuedResend prev;
+ private T next;
+ private T prev;
- public final BaseQueuedResend getNext() {
+ public final T getNext() {
return next;
}
- public final BaseQueuedResend setNext(Item<?> i) {
- BaseQueuedResend old = next;
- next = (BaseQueuedResend)i;
+ public final T setNext(Item<?> i) {
+ T old = next;
+ next = (T)i;
return old;
}
- public BaseQueuedResend getPrev() {
+ public T getPrev() {
return prev;
}
- public BaseQueuedResend setPrev(Item<?> i) {
- BaseQueuedResend old = prev;
- prev = (BaseQueuedResend)i;
+ public T setPrev(Item<?> i) {
+ T old = prev;
+ prev = (T)i;
return old;
}
- public int compareTo(BaseQueuedResend r) {
+ public int compareTo(T r) {
if(urgentTime > r.urgentTime)
return 1;
if(urgentTime < r.urgentTime)
@@ -281,20 +281,20 @@
public Object indexValue() {
return packetNumber;
}
- private DoublyLinkedList<? super BaseQueuedResend> parent;
+ private DoublyLinkedList<? super T> parent;
- public DoublyLinkedList<? super BaseQueuedResend> getParent() {
+ public DoublyLinkedList<? super T> getParent() {
return parent;
}
- public DoublyLinkedList<? super BaseQueuedResend>
setParent(DoublyLinkedList<? super BaseQueuedResend> l) {
- DoublyLinkedList<? super BaseQueuedResend> old = parent;
+ public DoublyLinkedList<? super T> setParent(DoublyLinkedList<?
super T> l) {
+ DoublyLinkedList<? super T> old = parent;
parent = l;
return old;
}
}
- private class QueuedResendRequest extends BaseQueuedResend {
+ private class QueuedResendRequest extends
BaseQueuedResend<QueuedResendRequest> {
@Override
long initialActiveTime( long now) {
@@ -319,7 +319,7 @@
}
}
- private class QueuedAckRequest extends BaseQueuedResend {
+ private class QueuedAckRequest extends
BaseQueuedResend<QueuedAckRequest> {
final long createdTime;
long activeDelay;
@@ -596,7 +596,7 @@
QueuedAckRequest qr = null;
synchronized(ackRequestQueue) {
- qr = (QueuedAckRequest)
ackRequestQueue.removeByKey(seqNo);
+ qr = ackRequestQueue.removeByKey(seqNo);
}
if(qr != null)
qr.onAcked();
@@ -908,13 +908,13 @@
}
synchronized(resendRequestQueue) {
if(!resendRequestQueue.isEmpty()) {
- QueuedResendRequest qr = (QueuedResendRequest)
resendRequestQueue.getLowest();
+ QueuedResendRequest qr =
resendRequestQueue.getLowest();
earliestTime = Math.min(earliestTime,
qr.urgentTime);
}
}
synchronized(ackRequestQueue) {
if(!ackRequestQueue.isEmpty()) {
- QueuedAckRequest qr = (QueuedAckRequest)
ackRequestQueue.getLowest();
+ QueuedAckRequest qr =
ackRequestQueue.getLowest();
earliestTime = Math.min(earliestTime,
qr.urgentTime);
}
}
Modified: trunk/freenet/src/freenet/support/DoublyLinkedListImpl.java
===================================================================
--- trunk/freenet/src/freenet/support/DoublyLinkedListImpl.java 2009-04-03
06:44:22 UTC (rev 26410)
+++ trunk/freenet/src/freenet/support/DoublyLinkedListImpl.java 2009-04-03
06:44:51 UTC (rev 26411)
@@ -455,6 +455,7 @@
return next;
}
+ @SuppressWarnings("unchecked")
public final T setNext(DoublyLinkedList.Item<?> i) {
T old = next;
next = (T) i;
@@ -465,6 +466,7 @@
return prev;
}
+ @SuppressWarnings("unchecked")
public final T setPrev(DoublyLinkedList.Item<?> i) {
T old = prev;
prev = (T) i;
Modified: trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
===================================================================
--- trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
2009-04-03 06:44:22 UTC (rev 26410)
+++ trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
2009-04-03 06:44:51 UTC (rev 26411)
@@ -71,8 +71,8 @@
if(ctr % 256 != 0 && !debug) return;
int statedLength = list.size();
int realLength = 0;
- for(Enumeration e = list.elements();e.hasMoreElements();) {
- UpdatableSortedLinkedListItem i =
(UpdatableSortedLinkedListItem) e.nextElement();
+ for(Enumeration<T> e = list.elements();e.hasMoreElements();) {
+ T i = e.nextElement();
// Sanity check for infinite looping
if(realLength > 100*1000)
Logger.normal(this, "["+realLength+"] = "+i+"
(prev="+i.getPrev()+ ')');
@@ -185,8 +185,8 @@
*/
private synchronized void dump() throws
UpdatableSortedLinkedListKilledException {
if(killed) throw new UpdatableSortedLinkedListKilledException();
- for(Enumeration e=list.elements();e.hasMoreElements();) {
- UpdatableSortedLinkedListItem item =
(UpdatableSortedLinkedListItem) e.nextElement();
+ for(Enumeration<T> e=list.elements();e.hasMoreElements();) {
+ T item = e.nextElement();
if(logMINOR) Logger.minor(this, item.toString());
}
}
@@ -202,6 +202,7 @@
* @return an array, in order, of the elements in the list
* @throws UpdatableSortedLinkedListKilledException
*/
+ @SuppressWarnings("unchecked")
public synchronized UpdatableSortedLinkedListItem[] toArray() throws
UpdatableSortedLinkedListKilledException {
if(killed) throw new UpdatableSortedLinkedListKilledException();
int size = list.size();
@@ -211,8 +212,8 @@
UpdatableSortedLinkedListItem[] output =
new UpdatableSortedLinkedListItem[size];
int i=0;
- for(Enumeration e = list.elements();e.hasMoreElements();) {
- output[i++] = (UpdatableSortedLinkedListItem)e.nextElement();
+ for(Enumeration<T> e = list.elements();e.hasMoreElements();) {
+ output[i++] = e.nextElement();
//Logger.minor(this, "["+(i-1)+"] = "+output[i-1]);
}
return output;
Modified:
trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java
===================================================================
--- trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java
2009-04-03 06:44:22 UTC (rev 26410)
+++ trunk/freenet/src/freenet/support/UpdatableSortedLinkedListItemImpl.java
2009-04-03 06:44:51 UTC (rev 26411)
@@ -15,6 +15,7 @@
return next;
}
+ @SuppressWarnings("unchecked")
public T setNext(Item<?> i) {
T old = next;
next = (T) i;
@@ -25,6 +26,7 @@
return prev;
}
+ @SuppressWarnings("unchecked")
public T setPrev(Item<?> i) {
T old = prev;
prev = (T) i;
Modified:
trunk/freenet/src/freenet/support/UpdatableSortedLinkedListWithForeignIndex.java
===================================================================
---
trunk/freenet/src/freenet/support/UpdatableSortedLinkedListWithForeignIndex.java
2009-04-03 06:44:22 UTC (rev 26410)
+++
trunk/freenet/src/freenet/support/UpdatableSortedLinkedListWithForeignIndex.java
2009-04-03 06:44:51 UTC (rev 26411)
@@ -20,9 +20,6 @@
@Override
public synchronized void add(T item) throws
UpdatableSortedLinkedListKilledException {
- if(!(item instanceof IndexableUpdatableSortedLinkedListItem)) {
- throw new IllegalArgumentException();
- }
if(killed) throw new UpdatableSortedLinkedListKilledException();
T i = item;
if(map.get(i.indexValue()) != null) {
@@ -42,8 +39,8 @@
return super.remove(item);
}
- public synchronized IndexableUpdatableSortedLinkedListItem<?>
get(Object key) {
- return (IndexableUpdatableSortedLinkedListItem<?>)map.get(key);
+ public synchronized T get(Object key) {
+ return map.get(key);
}
public synchronized boolean containsKey(Object key) {
@@ -58,7 +55,7 @@
* Remove an element from the list by its key.
* @throws UpdatableSortedLinkedListKilledException
*/
- public synchronized IndexableUpdatableSortedLinkedListItem<?>
removeByKey(Object key) throws UpdatableSortedLinkedListKilledException {
+ public synchronized T removeByKey(Object key) throws
UpdatableSortedLinkedListKilledException {
if(killed) throw new UpdatableSortedLinkedListKilledException();
T item = map.get(key);
if(item != null) remove(item);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs