Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions src/freenet/client/async/BinaryBlobWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,7 @@ private void finalizeBucket(boolean mark) throws IOException, BinaryBlobAlreadyC
}
Bucket out = _bf.makeBucket(-1);
getSnapshot(out, mark);
for (int i=0,n=_buckets.size(); i<n;i++) {
_buckets.get(i).free();
}
_buckets.forEach(Bucket::free);
if (mark) {
out.setReadOnly();
}
Expand Down Expand Up @@ -156,9 +154,9 @@ private void getSnapshot(Bucket bucket, boolean addEndmarker) throws IOException
}
OutputStream out = bucket.getOutputStream();
try {
for (int i=0,n=_buckets.size(); i<n;i++) {
BucketTools.copyTo(_buckets.get(i), out, -1);
}
for (Bucket value : _buckets) {
BucketTools.copyTo(value, out, -1);
}
if (addEndmarker) {
DataOutputStream dout = new DataOutputStream(out);
BinaryBlob.writeEndBlob(dout);
Expand Down
7 changes: 2 additions & 5 deletions src/freenet/client/async/SplitFileFetcherKeyListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.util.Arrays;

import freenet.client.FetchException;
import freenet.client.FetchException.FetchExceptionMode;
Expand Down Expand Up @@ -245,11 +246,7 @@ public int paddedMainBloomFilterSize() {
public boolean probablyWantKey(Key key, byte[] saltedKey) {
if(filter.checkFilter(saltedKey)) {
byte[] salted = localSaltKey(key);
for(int i=0;i<segmentFilters.length;i++) {
if(segmentFilters[i].checkFilter(salted)) {
return true;
}
}
return Arrays.stream(segmentFilters).anyMatch(segmentFilter -> segmentFilter.checkFilter(salted));
}
return false;
}
Expand Down
15 changes: 7 additions & 8 deletions src/freenet/client/async/SplitFileFetcherStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -853,14 +853,13 @@ public SplitFileFetcherStorage(LockableRandomAccessBuffer raf, boolean realTime,
segmentsToTryDecode.add(segment);
}
}
for(int i=0;i<segments.length;i++) {
SplitFileFetcherSegmentStorage segment = segments[i];
try {
segment.readSegmentKeys();
} catch (ChecksumFailedException e) {
throw new StorageFormatException("Keys corrupted");
}
}
for (SplitFileFetcherSegmentStorage segment : segments) {
try {
segment.readSegmentKeys();
} catch (ChecksumFailedException e) {
throw new StorageFormatException("Keys corrupted");
}
}
if(this.crossSegments != null) {
for(SplitFileFetcherCrossSegmentStorage crossSegment : this.crossSegments)
// Must be after reading the metadata for the plain segments.
Expand Down
17 changes: 8 additions & 9 deletions src/freenet/client/async/SplitFileInserterStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -1385,15 +1385,14 @@ Metadata encodeMetadata() throws IOException, MissingKeyException {
ClientCHK[] checkKeys = new ClientCHK[totalCheckBlocks];
int dataPtr = 0;
int checkPtr = 0;
for(int segNo = 0; segNo < segments.length; segNo++) {
SplitFileInserterSegmentStorage segment = segments[segNo];
for(int i=0;i<segment.dataBlockCount+segment.crossCheckBlockCount;i++) {
dataKeys[dataPtr++] = segment.readKey(i);
}
for(int i=0;i<segment.checkBlockCount;i++) {
checkKeys[checkPtr++] = segment.readKey(i+segment.dataBlockCount+segment.crossCheckBlockCount);
}
}
for (SplitFileInserterSegmentStorage segment : segments) {
for (int i = 0; i < segment.dataBlockCount + segment.crossCheckBlockCount; i++) {
dataKeys[dataPtr++] = segment.readKey(i);
}
for (int i = 0; i < segment.checkBlockCount; i++) {
checkKeys[checkPtr++] = segment.readKey(i + segment.dataBlockCount + segment.crossCheckBlockCount);
}
}
assert(dataPtr == dataKeys.length);
assert(checkPtr == checkKeys.length);
return new Metadata(splitfileType, dataKeys, checkKeys, segmentSize, checkSegmentSize,
Expand Down
3 changes: 1 addition & 2 deletions src/freenet/client/async/USKFetcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -923,8 +923,7 @@ private List<USKAttempt> cancelBefore(long curLatest, ClientContext context) {

private void finishCancelBefore(List<USKAttempt> v, ClientContext context) {
if(v != null) {
for(int i=0;i<v.size();i++) {
USKAttempt att = v.get(i);
for (USKAttempt att : v) {
att.cancel(context);
}
}
Expand Down
3 changes: 1 addition & 2 deletions src/freenet/client/async/USKManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -332,8 +332,7 @@ public void startTemporaryBackgroundFetcher(USK usk, ClientContext context, fina
@Override
public void run() {
if(cancelled != null) {
for(int i=0;i<cancelled.size();i++) {
USKFetcher fetcher = cancelled.get(i);
for (USKFetcher fetcher : cancelled) {
fetcher.cancel(USKManager.this.context);
}
}
Expand Down
7 changes: 3 additions & 4 deletions src/freenet/client/events/SimpleEventProducer.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;

import freenet.client.async.ClientContext;

Expand All @@ -30,8 +31,7 @@ public SimpleEventProducer() {
/** Create a new SimpleEventProducer with the given listeners. */
public SimpleEventProducer(ClientEventListener[] cela) {
this();
for (int i = 0; i < cela.length; i++)
addEventListener(cela[i]);
Arrays.stream(cela).forEachOrdered(this::addEventListener);
}

@Override
Expand Down Expand Up @@ -83,8 +83,7 @@ public synchronized ClientEventListener[] getEventListeners() {

/** Adds all listeners in the given array. */
public synchronized void addEventListeners(ClientEventListener[] cela) {
for (int i = 0; i < cela.length; i++)
addEventListener(cela[i]);
Arrays.stream(cela).forEachOrdered(this::addEventListener);
}

}
3 changes: 1 addition & 2 deletions src/freenet/client/filter/CSSTokenizerFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -4473,8 +4473,7 @@ public boolean doubleAmpersandVerifier(String expression, ParsedWord[] words, Fi
// Verifiers that still remain in the list may accept an empty word array
// here we will let those verifiers accept an empty array if they want to.
boolean result = true;
for (int i = 0; i < propertyVerifierList.size(); i++) {
CSSPropertyVerifier verifier = propertyVerifierList.get(i);
for (CSSPropertyVerifier verifier : propertyVerifierList) {
result = result && verifier.checkValidity(words, cb);
}

Expand Down
5 changes: 2 additions & 3 deletions src/freenet/client/filter/HTMLFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -823,9 +823,8 @@ public String toString() {
sb.append('/');
sb.append(element);
if (unparsedAttrs != null) {
int n = unparsedAttrs.length;
for (int i = 0; i < n; i++) {
sb.append(' ').append(unparsedAttrs[i]);
for (String unparsedAttr : unparsedAttrs) {
sb.append(' ').append(unparsedAttr);
}
}
if (endSlash)
Expand Down
4 changes: 2 additions & 2 deletions src/freenet/client/filter/OggPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -245,10 +245,10 @@ public byte[] calculateCRC() {
array[24] = 0;
array[25] = 0;
int crc_reg = 0;
for(int i=0;i<array.length;i++) {
for (byte b : array) {
/*Ugly, no? This line was taken from jorbis, which, I'd bet money, adapted it to java from libogg,
* which in turn took it from http://www.ross.net/crc/download/crc_v3.txt */
crc_reg=(crc_reg<<8) ^ crc_lookup[((crc_reg>>>24) & 0xff) ^ (array[i] & 0xff)];
crc_reg = (crc_reg << 8) ^ crc_lookup[((crc_reg >>> 24) & 0xff) ^ (b & 0xff)];
}
return new byte[] { (byte)crc_reg,
(byte) (crc_reg>>>8),
Expand Down
56 changes: 29 additions & 27 deletions src/freenet/clients/fcp/ClientPutDiskDirMessage.java
Original file line number Diff line number Diff line change
Expand Up @@ -86,33 +86,35 @@ private HashMap<String, Object> makeBucketsByName(File thisdir, String prefix) t
Logger.minor(this, "Listing directory: "+thisdir);

HashMap<String, Object> ret = new HashMap<String, Object>();

File filelist[] = thisdir.listFiles();
if(filelist == null)
throw new MessageInvalidException(ProtocolErrorMessage.FILE_NOT_FOUND, "No such directory!", identifier, global);
for(int i = 0 ; i < filelist.length ; i++) {
if(filelist[i].isHidden() && !includeHiddenFiles) continue;
// Skip unreadable files and dirs
// Skip files nonexistent (dangling symlinks) - check last
if (filelist[i].canRead() && filelist[i].exists()) {
if (filelist[i].isFile()) {
File f = filelist[i];

FileBucket bucket = new FileBucket(f, true, false, false, false);

ret.put(f.getName(), new ManifestElement(f.getName(), prefix + f.getName(), bucket, DefaultMIMETypes.guessMIMEType(f.getName(), true), f.length()));
} else if(filelist[i].isDirectory()) {
HashMap<String, Object> subdir = makeBucketsByName(new File(thisdir, filelist[i].getName()), prefix
+ filelist[i].getName() + '/');
ret.put(filelist[i].getName(), subdir);
} else if(!allowUnreadableFiles) {
throw new MessageInvalidException(ProtocolErrorMessage.FILE_NOT_FOUND, "Not directory and not file: "+filelist[i], identifier, global);
}
} else {
if(!allowUnreadableFiles)
throw new MessageInvalidException(ProtocolErrorMessage.FILE_NOT_FOUND, "Not readable or doesn't exist: "+filelist[i], identifier, global);
}
}

File[] filelist = thisdir.listFiles();
if(filelist == null) {
throw new MessageInvalidException(ProtocolErrorMessage.FILE_NOT_FOUND, "No such directory!", identifier, global);
}
for (File file : filelist) {
if (!includeHiddenFiles && file.isHidden()) {
continue;
}
// Skip unreadable files and dirs
// Skip files nonexistent (dangling symlinks) - check last
if (file.canRead() && file.exists()) {
if (file.isFile()) {
FileBucket bucket = new FileBucket(file, true, false, false, false);

ret.put(file.getName(), new ManifestElement(file.getName(), prefix + file.getName(), bucket, DefaultMIMETypes.guessMIMEType(file.getName(), true), file.length()));
} else if (file.isDirectory()) {
HashMap<String, Object> subdir = makeBucketsByName(new File(thisdir, file.getName()), prefix
+ file.getName() + '/');
ret.put(file.getName(), subdir);
} else if (!allowUnreadableFiles) {
throw new MessageInvalidException(ProtocolErrorMessage.FILE_NOT_FOUND, "Not directory and not file: " + file, identifier, global);
}
} else {
if (!allowUnreadableFiles) {
throw new MessageInvalidException(ProtocolErrorMessage.FILE_NOT_FOUND, "Not readable or doesn't exist: " + file, identifier, global);
}
}
}
return ret;
}

Expand Down
29 changes: 11 additions & 18 deletions src/freenet/clients/fcp/PersistentRequestClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ public void notifySuccess(ClientRequest req) {

/**
* Callback called when a request fails
* @param get
* @param req the failed request
*/
public void notifyFailure(ClientRequest req) {
assert(req.persistence == persistence);
Expand Down Expand Up @@ -464,17 +464,11 @@ public void removeAll(ClientContext context) {
if(statusCache != null)
statusCache.clear();
synchronized(this) {
for(ClientRequest req: runningPersistentRequests) {
toKill.add(req);
}
toKill.addAll(runningPersistentRequests);
runningPersistentRequests.clear();
for(ClientRequest req : completedUnackedRequests) {
toKill.add(req);
}
toKill.addAll(completedUnackedRequests);
completedUnackedRequests.clear();
for(ClientRequest req : clientRequestsByIdentifier.values()) {
toKill.add(req);
}
toKill.addAll(clientRequestsByIdentifier.values());
clientRequestsByIdentifier.clear();
}
}
Expand All @@ -483,11 +477,12 @@ public ClientGet getCompletedRequest(FreenetURI key) {
// FIXME speed this up with another hashmap or something.
// FIXME keep a transient hashmap in RAM, use it for fproxy.
// FIXME consider supporting inserts too.
for(int i=0;i<completedUnackedRequests.size();i++) {
ClientRequest req = completedUnackedRequests.get(i);
if(!(req instanceof ClientGet)) continue;
for (ClientRequest req : completedUnackedRequests) {
if (!(req instanceof ClientGet)) {
continue;
}
ClientGet getter = (ClientGet) req;
if(getter.getURI().equals(key)) {
if (getter.getURI().equals(key)) {
return getter;
}
}
Expand Down Expand Up @@ -524,10 +519,8 @@ public RequestClient lowLevelClient(boolean realTime) {
}

public void addPersistentRequesters(List<ClientRequester> requesters) {
for(ClientRequest req : runningPersistentRequests)
requesters.add(req.getClientRequest());
for(ClientRequest req : completedUnackedRequests)
requesters.add(req.getClientRequest());
runningPersistentRequests.forEach(req -> requesters.add(req.getClientRequest()));
completedUnackedRequests.forEach(req -> requesters.add(req.getClientRequest()));
}

public void resume(ClientRequest clientRequest) {
Expand Down
8 changes: 3 additions & 5 deletions src/freenet/clients/http/ConnectionsToadlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -727,13 +727,11 @@ public void handleMethodPOST(URI uri, final HTTPRequest request, ToadletContext
}
//The peer's additions results
Map<PeerAdditionReturnCodes,Integer> results=new HashMap<PeerAdditionReturnCodes, Integer>();
for(int i=0;i<nodesToAdd.length;i++){
for (String s : nodesToAdd) {
//We need to trim then concat 'End' to the node's reference, this way we have a normal reference(the split() removes the 'End'-s!)
PeerAdditionReturnCodes result=addNewNode(nodesToAdd[i].trim().concat("\nEnd"), privateComment, trust, visibility);
PeerAdditionReturnCodes result = addNewNode(s.trim().concat("\nEnd"), privateComment, trust, visibility);
//Store the result
Integer prev = results.get(result);
if(prev == null) prev = 0;
results.put(result, prev+1);
results.put(result, results.getOrDefault(result, 0) + 1);
}

PageNode page = ctx.getPageMaker().getPageNode(l10n("reportOfNodeAddition"), ctx);
Expand Down
32 changes: 15 additions & 17 deletions src/freenet/clients/http/HTTPRequestImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -444,20 +444,16 @@ public int[] getMultipleIntParam(String name) {

// try parsing all values and put the valid Integers in a new list
List<Integer> intValueList = new ArrayList<Integer>();
for (int i = 0; i < valueList.size(); i++) {
for (String value : valueList) {
try {
intValueList.add(Integer.valueOf(valueList.get(i)));
intValueList.add(Integer.valueOf(value));
} catch (Exception e) {
// ignore invalid parameter values
}
}

// convert the valid Integers to an array of ints
int[] values = new int[intValueList.size()];
for (int i = 0; i < intValueList.size(); i++) {
values[i] = intValueList.get(i);
}
return values;
return intValueList.stream().mapToInt(value -> value).toArray();
}


Expand Down Expand Up @@ -548,18 +544,22 @@ private void parseMultiPartData() throws IOException {
continue;
String[] valueparts = lineparts[1].split(";");

for(int i = 0; i < valueparts.length; i++) {
String[] subparts = valueparts[i].split("=");
if(subparts.length != 2)
for (String valuepart : valueparts) {
String[] subparts = valuepart.split("=");
if (subparts.length != 2){
continue;
}
String fieldname = subparts[0].trim();
String value = subparts[1].trim();
if(value.startsWith("\"") && value.endsWith("\""))
if (value.startsWith("\"") && value.endsWith("\"")){
value = value.substring(1, value.length() - 1);
if(fieldname.equalsIgnoreCase("name"))
}
if (fieldname.equalsIgnoreCase("name")){
name = value;
else if(fieldname.equalsIgnoreCase("filename"))
}
else if (fieldname.equalsIgnoreCase("filename")){
filename = value;
}
}
}
else if(hdrname.equalsIgnoreCase("Content-Type")) {
Expand Down Expand Up @@ -757,10 +757,8 @@ private byte[] getPartAsLimitedBytes(Bucket part, int maxLength) {
@Override
public void freeParts() {
if (this.parts == null) return;

for (Bucket b : this.parts.values()) {
b.free();
}

parts.values().forEach(Bucket::free);
parts.clear();
freedParts = true;
// Do not free data. Caller is responsible for that.
Expand Down
Loading