-
Notifications
You must be signed in to change notification settings - Fork 502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rarest set of pieces is replaced with set of rarest pieces indexes #211
base: master
Are you sure you want to change the base?
Conversation
…sage.parse Order of the parameters to the HTTPAnnounceRequestMessage constructor was incorrect in the parse() method. Thanks to Dan Oxlade for reporting the problem. Closes mpetazzoni#48. Signed-off-by: Maxime Petazzoni <[email protected]>
Allow trackerless torrent files mpetazzoni#2 Signed-off-by: Maxime Petazzoni <[email protected]>
…h InboundThread and OutboundThread to a common ExchangeThread superclass.
… download/upload rate limiting algorithm
Add ability to set upload/download rate limits. Signed-off-by: Maxime Petazzoni <[email protected]>
Signed-off-by: Maxime Petazzoni <[email protected]>
Fix read when message size wasn't read in one step Signed-off-by: Maxime Petazzoni <[email protected]>
BDecode support for negative integers Signed-off-by: Maxime Petazzoni <[email protected]>
Fixes bug with selecting the announce client A previous change introduced a bug in the selection of the announce tier and client. Closes mpetazzoni#51. Signed-off-by: Maxime Petazzoni <[email protected]>
Use maven-shade-plugin to produce executable jar Signed-off-by: Maxime Petazzoni <[email protected]>
Update pom for compatibility with the maven-release-plugin Signed-off-by: Maxime Petazzoni <[email protected]>
Clean up javadoc problems Signed-off-by: Maxime Petazzoni <[email protected]>
Shell script updates for wider platform compatibility Signed-off-by: Maxime Petazzoni <[email protected]>
Move entry-point main methods to separate package Signed-off-by: Maxime Petazzoni <[email protected]>
Resolves: mpetazzoni#144 See also: mpetazzoni#146
Remove dependency on Apache comons-codec
…eerexchange Allow immedidate shutdown of peerexchange by notifying out-going thread
This change prevents the modification of a storage file in case the file is already complete and all pieces are available.
…zoni#169 Signed-off-by: Maxime Petazzoni <[email protected]>
Signed-off-by: Maxime Petazzoni <[email protected]>
…ng-file-only-if-required Change the length of an existing storage file only if required
Signed-off-by: Maxime Petazzoni <[email protected]>
In preparation of incoming 1.5 release, with the cli/core split. Signed-off-by: Maxime Petazzoni <[email protected]>
Signed-off-by: Maxime Petazzoni <[email protected]>
Signed-off-by: Maxime Petazzoni <[email protected]>
The old implementation of byteArrayToHexString drops the byte array’s leading zeros.
…tring Fix byteArrayToHexString and add tests
Unchoke the random peer in optimistic unchoking
Fixed a BufferUnderflowException in message parsing when PeerExchange is closing
…in compareTo and use this object in sorted set. It turns out the set may not find such object after modification, which leads to memory leak when object is added to the set again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Just a few nits
import java.util.List; | ||
import java.util.SortedSet; | ||
import java.util.TreeSet; | ||
import java.util.*; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't use import *
@@ -685,6 +680,11 @@ public synchronized void handlePeerReady(SharingPeer peer) { | |||
"that was already requested from another peer."); | |||
} | |||
|
|||
SortedSet<Piece> rarest = new TreeSet<Piece>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a fan of the field hiding. Could you name the sorted set rarestPieces
instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, i did not notice. Fixed
@@ -257,7 +252,7 @@ public SharedTorrent(byte[] torrent, File parent, boolean seeder, | |||
|
|||
this.initialized = false; | |||
this.pieces = new Piece[0]; | |||
this.rarest = Collections.synchronizedSortedSet(new TreeSet<Piece>()); | |||
this.rarest = new HashSet<Integer>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, don't you also need to make this a synchronized set?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is not needed, because rarest
field is always used in synchronized
functions
…ield have same name. Replaced import * with single class imports
Fix memory leak. It is not a good idea to change field which is used in compareTo and use this object in sorted set. It turns out the set may not find such object after modification, which leads to memory leak when object is added to the set again.
Also we can replace delete-add modify of this set with only add