- Removed executor service and all uses from CachedDataSource.

This commit is contained in:
DNx5 2016-02-06 00:53:43 +07:00
parent ef89ab02b4
commit 190b4c2c2e

View File

@ -6,15 +6,12 @@ import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
import com.google.common.cache.RemovalListener; import com.google.common.cache.RemovalListener;
import com.google.common.cache.RemovalNotification; import com.google.common.cache.RemovalNotification;
import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.cache.auth.PlayerAuth; import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.cache.auth.PlayerCache; import fr.xephi.authme.cache.auth.PlayerCache;
import fr.xephi.authme.security.crypts.HashedPassword; import fr.xephi.authme.security.crypts.HashedPassword;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
@ -22,7 +19,6 @@ import java.util.concurrent.TimeUnit;
public class CacheDataSource implements DataSource { public class CacheDataSource implements DataSource {
private final DataSource source; private final DataSource source;
private final ExecutorService exec;
private final LoadingCache<String, Optional<PlayerAuth>> cachedAuths; private final LoadingCache<String, Optional<PlayerAuth>> cachedAuths;
/** /**
@ -32,7 +28,6 @@ public class CacheDataSource implements DataSource {
*/ */
public CacheDataSource(DataSource src) { public CacheDataSource(DataSource src) {
this.source = src; this.source = src;
this.exec = Executors.newCachedThreadPool();
this.cachedAuths = CacheBuilder.newBuilder() this.cachedAuths = CacheBuilder.newBuilder()
.expireAfterWrite(8, TimeUnit.MINUTES) .expireAfterWrite(8, TimeUnit.MINUTES)
.removalListener(new RemovalListener<String, Optional<PlayerAuth>>() { .removalListener(new RemovalListener<String, Optional<PlayerAuth>>() {
@ -167,25 +162,14 @@ public class CacheDataSource implements DataSource {
@Override @Override
public synchronized void close() { public synchronized void close() {
try {
exec.shutdown();
exec.awaitTermination(8, TimeUnit.SECONDS);
} catch (InterruptedException e) {
ConsoleLogger.writeStackTrace("Error while closing CacheDataSource.", e);
}
source.close(); source.close();
} }
@Override @Override
public void reload() { // unused method public void reload() { // unused method
exec.execute(new Runnable() {
@Override
public void run() {
source.reload(); source.reload();
cachedAuths.invalidateAll(); cachedAuths.invalidateAll();
} }
});
}
@Override @Override
public synchronized boolean updateEmail(final PlayerAuth auth) { public synchronized boolean updateEmail(final PlayerAuth auth) {
@ -213,14 +197,9 @@ public class CacheDataSource implements DataSource {
@Override @Override
public synchronized void purgeBanned(final List<String> banned) { public synchronized void purgeBanned(final List<String> banned) {
exec.execute(new Runnable() {
@Override
public void run() {
source.purgeBanned(banned); source.purgeBanned(banned);
cachedAuths.invalidateAll(banned); cachedAuths.invalidateAll(banned);
} }
});
}
@Override @Override
public DataSourceType getType() { public DataSourceType getType() {
@ -234,34 +213,19 @@ public class CacheDataSource implements DataSource {
@Override @Override
public void setLogged(final String user) { public void setLogged(final String user) {
exec.execute(new Runnable() {
@Override
public void run() {
source.setLogged(user.toLowerCase()); source.setLogged(user.toLowerCase());
} }
});
}
@Override @Override
public void setUnlogged(final String user) { public void setUnlogged(final String user) {
exec.execute(new Runnable() {
@Override
public void run() {
source.setUnlogged(user.toLowerCase()); source.setUnlogged(user.toLowerCase());
} }
});
}
@Override @Override
public void purgeLogged() { public void purgeLogged() {
exec.execute(new Runnable() {
@Override
public void run() {
source.purgeLogged(); source.purgeLogged();
cachedAuths.invalidateAll(); cachedAuths.invalidateAll();
} }
});
}
@Override @Override
public int getAccountsRegistered() { public int getAccountsRegistered() {
@ -269,15 +233,10 @@ public class CacheDataSource implements DataSource {
} }
@Override @Override
public void updateName(final String oldOne, final String newOne) { public void updateName(final String oldOne, final String newOne) { // unused method
exec.execute(new Runnable() {
@Override
public void run() {
source.updateName(oldOne, newOne); source.updateName(oldOne, newOne);
cachedAuths.invalidate(oldOne); cachedAuths.invalidate(oldOne);
} }
});
}
@Override @Override
public List<PlayerAuth> getAllAuths() { public List<PlayerAuth> getAllAuths() {