- support gpx file extension

- non-blocking location search (time-out handling was wrong)

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6871 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
orbiter 2010-05-12 08:49:20 +00:00
parent b0927d26e0
commit 90fa8fd4d4
4 changed files with 10 additions and 9 deletions

View File

@ -29,6 +29,7 @@ eps = application/postscript
exe = application/octet-stream
gif = image/gif
gz = application/gzip
gpx = text/xml
hqx = application/mac-binhex40
htm = text/html
html = text/html

View File

@ -20,6 +20,7 @@
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeUnit;
import net.yacy.document.content.RSSMessage;
import net.yacy.document.geolocalization.Location;
@ -54,7 +55,7 @@ public class yacysearch_location {
RSSMessage message;
int placemarkCounter = 0;
try {
loop: while ((message = results.take()) != RSSMessage.POISON) {
loop: while ((message = results.poll(maximumTime, TimeUnit.MILLISECONDS)) != RSSMessage.POISON) {
// find all associated locations
Set<Location> locations = new HashSet<Location>();
String words = message.getTitle() + " " + message.getCopyright() + " " + message.getAuthor();

View File

@ -738,6 +738,7 @@ public final class HTTPDFileHandler {
path.endsWith("src") ||
path.endsWith("vcf") ||
path.endsWith("kml") ||
path.endsWith("gpx") ||
path.endsWith("/") ||
path.equals("/robots.txt")) {

View File

@ -460,26 +460,24 @@ public final class yacyClient {
public void run() {
RSSMessage message;
while (timeout > 0 && maximumRecords > 0) {
mainloop: while (timeout > 0 && maximumRecords > 0) {
long st = System.currentTimeMillis();
RSSFeed feed = search(urlBase, query, verify, global, timeout, startRecord, recordsPerSession);
if (feed == null || feed.isEmpty()) {
try { queue.put(RSSMessage.POISON); } catch (InterruptedException e) {}
return;
}
if (feed == null || feed.isEmpty()) break mainloop;
maximumRecords -= feed.size();
loop: while (!feed.isEmpty()) {
innerloop: while (!feed.isEmpty()) {
message = feed.pollMessage();
if (message == null) break loop;
if (message == null) break innerloop;
try {
queue.put(message);
} catch (InterruptedException e) {
break loop;
break innerloop;
}
}
startRecord += recordsPerSession;
timeout -= System.currentTimeMillis() - st;
}
try { queue.put(RSSMessage.POISON); } catch (InterruptedException e) {}
}
}