Skip to content

Commit 77a722e

Browse files
committed
Fixed extension data removal
Affects issues: - Fixed #4755
1 parent a8b1936 commit 77a722e

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/init/RemoveOldExtensionsTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ private void removeProviders(Collection<Integer> providerIds, Collection<Integer
8888
if (!providerIds.isEmpty()) {
8989
execute(new ExecStatement(
9090
DELETE_FROM + ExtensionProviderTable.TABLE_NAME +
91-
WHERE + ExtensionProviderTable.PLUGIN_ID +
91+
WHERE + ExtensionProviderTable.ID +
9292
" IN (" + Sql.nParameters(providerIds.size()) + ")"
9393
) {
9494
@Override
@@ -100,7 +100,7 @@ public void prepare(PreparedStatement statement) throws SQLException {
100100
if (!tableProviderIds.isEmpty()) {
101101
execute(new ExecStatement(
102102
DELETE_FROM + ExtensionTableProviderTable.TABLE_NAME +
103-
WHERE + ExtensionTableProviderTable.PLUGIN_ID +
103+
WHERE + ExtensionTableProviderTable.ID +
104104
" IN (" + Sql.nParameters(tableProviderIds.size()) + ")"
105105
) {
106106
@Override

Plan/common/src/test/java/com/djrapitops/plan/storage/database/queries/ExtensionsDatabaseTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@
3535
import com.djrapitops.plan.gathering.domain.ActiveSession;
3636
import com.djrapitops.plan.gathering.domain.WorldTimes;
3737
import com.djrapitops.plan.identification.ServerUUID;
38+
import com.djrapitops.plan.settings.config.ExtensionSettings;
3839
import com.djrapitops.plan.storage.database.DatabaseTestPreparer;
3940
import com.djrapitops.plan.storage.database.transactions.commands.RemoveEverythingTransaction;
4041
import com.djrapitops.plan.storage.database.transactions.events.PlayerRegisterTransaction;
4142
import com.djrapitops.plan.storage.database.transactions.events.StoreSessionTransaction;
4243
import com.djrapitops.plan.storage.database.transactions.events.StoreWorldNameTransaction;
44+
import com.djrapitops.plan.storage.database.transactions.init.RemoveOldExtensionsTransaction;
4345
import com.fasterxml.jackson.databind.ObjectMapper;
4446
import com.fasterxml.jackson.databind.node.ObjectNode;
4547
import org.junit.jupiter.api.BeforeEach;
@@ -54,6 +56,7 @@
5456
import java.util.Map;
5557
import java.util.Objects;
5658
import java.util.UUID;
59+
import java.util.concurrent.TimeUnit;
5760

5861
import static org.junit.jupiter.api.Assertions.*;
5962

@@ -91,6 +94,28 @@ default void removeEverythingRemovesServerExtensionData() {
9194
assertTrue(db().query(new ExtensionServerDataQuery(serverUUID())).isEmpty());
9295
}
9396

97+
@Test
98+
default void removeOldExtensionDataCleansData() {
99+
db().executeTransaction(new PlayerRegisterTransaction(TestConstants.PLAYER_ONE_UUID, System::currentTimeMillis, TestConstants.PLAYER_ONE_NAME));
100+
101+
ExtensionSvc extensionService = extensionService();
102+
extensionService.register(new TableExtension());
103+
extensionService.register(new PlayerExtension());
104+
extensionService.register(new ServerExtension());
105+
extensionService.updatePlayerValues(playerUUID, TestConstants.PLAYER_ONE_NAME, CallEvents.MANUAL);
106+
extensionService.updateServerValues(CallEvents.MANUAL);
107+
108+
ExtensionSettings extensionSettings = config().getExtensionSettings();
109+
extensionSettings.setEnabled("PlayerExtension", false);
110+
extensionSettings.setEnabled("TableExtension", false);
111+
extensionSettings.setEnabled("ServerExtension", false);
112+
113+
db().executeTransaction(new RemoveOldExtensionsTransaction(extensionSettings, TimeUnit.DAYS.toMillis(1), serverUUID()));
114+
115+
assertTrue(db().query(new ExtensionPlayerDataQuery(playerUUID)).isEmpty());
116+
assertTrue(db().query(new ExtensionServerDataQuery(serverUUID())).isEmpty());
117+
}
118+
94119
@Test
95120
default void extensionPlayerValuesAreStored() {
96121
db().executeTransaction(new PlayerRegisterTransaction(TestConstants.PLAYER_ONE_UUID, System::currentTimeMillis, TestConstants.PLAYER_ONE_NAME));

0 commit comments

Comments
 (0)