1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 02:09:35 +02:00

fixed synchronization

This commit is contained in:
Nikolay Pultsin 2011-07-19 12:32:57 +01:00
parent 70a58af8e7
commit 61f8b19ee4
5 changed files with 30 additions and 29 deletions

View file

@ -63,8 +63,10 @@ public class NetworkLibrary {
public List<String> languageCodes() {
final TreeSet<String> languageSet = new TreeSet<String>();
for (INetworkLink link : myLinks) {
languageSet.add(link.getLanguage());
synchronized (myLinks) {
for (INetworkLink link : myLinks) {
languageSet.add(link.getLanguage());
}
}
return new ArrayList<String>(languageSet);
}
@ -112,10 +114,12 @@ public class NetworkLibrary {
private List<INetworkLink> activeLinks() {
final LinkedList<INetworkLink> filteredList = new LinkedList<INetworkLink>();
final Collection<String> codes = activeLanguageCodes();
for (INetworkLink link : myLinks) {
if (link instanceof ICustomNetworkLink ||
codes.contains(link.getLanguage())) {
filteredList.add(link);
synchronized (myLinks) {
for (INetworkLink link : myLinks) {
if (link instanceof ICustomNetworkLink ||
codes.contains(link.getLanguage())) {
filteredList.add(link);
}
}
}
return filteredList;
@ -158,9 +162,11 @@ public class NetworkLibrary {
private void removeAllLoadedLinks() {
final LinkedList<INetworkLink> toRemove = new LinkedList<INetworkLink>();
for (INetworkLink link : myLinks) {
if (!(link instanceof ICustomNetworkLink)) {
toRemove.add(link);
synchronized (myLinks) {
for (INetworkLink link : myLinks) {
if (!(link instanceof ICustomNetworkLink)) {
toRemove.add(link);
}
}
}
myLinks.removeAll(toRemove);
@ -233,9 +239,11 @@ public class NetworkLibrary {
public String rewriteUrl(String url, boolean externalUrl) {
final String host = ZLNetworkUtil.hostFromUrl(url).toLowerCase();
for (INetworkLink link : myLinks) {
if (host.contains(link.getSiteName())) {
url = link.rewriteUrl(url, externalUrl);
synchronized (myLinks) {
for (INetworkLink link : myLinks) {
if (host.contains(link.getSiteName())) {
url = link.rewriteUrl(url, externalUrl);
}
}
}
return url;