Skip to content

Commit

Permalink
[incubator-kie-drools-5847] Flaky KieContainerTest.testIncrementalCom…
Browse files Browse the repository at this point in the history
…pilationSynchronization timeout (apache#6002)
  • Loading branch information
tkobayas authored and rgdoliveira committed Jul 8, 2024
1 parent d3b43d3 commit 6c24376
Showing 1 changed file with 17 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.drools.base.definitions.InternalKnowledgePackage;
import org.drools.base.definitions.rule.impl.RuleImpl;
import org.drools.compiler.compiler.io.Folder;
import org.drools.compiler.compiler.io.memory.MemoryFileSystem;
import org.drools.compiler.kie.builder.impl.MemoryKieModule;
Expand All @@ -38,6 +40,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.kie.api.KieBase;
import org.kie.api.KieServices;
import org.kie.api.builder.KieModule;
import org.kie.api.builder.Message.Level;
Expand Down Expand Up @@ -267,6 +270,13 @@ public void testIncrementalCompilationSynchronization() {

Thread t = new Thread(() -> {
for (int i = 1; i < 10; i++) {
while (!previousRuleExists(kieContainer, i)) { // if rule1 exists, we can change it to rule2
try {
Thread.sleep(1);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
ReleaseId releaseId1 = kieServices.newReleaseId("org.kie.test", "sync-scanner-test", "1.0." + i);
KieUtil.getKieModuleFromDrls(releaseId1, kieBaseTestConfiguration, createDRL("rule" + i));
kieContainer.updateToVersion(releaseId1);
Expand All @@ -292,6 +302,13 @@ public void testIncrementalCompilationSynchronization() {
}
}

private static boolean previousRuleExists(KieContainer kieContainer, int i) {
KieBase kieBase = kieContainer.getKieBase();
InternalKnowledgePackage internalKnowledgePackage = (InternalKnowledgePackage)kieBase.getKiePackage("org.kie.test");
RuleImpl rule = internalKnowledgePackage.getRule("rule" + (i - 1));
return rule != null;
}

@Test
public void testMemoryFileSystemFolderUniqueness() {
KieServices kieServices = KieServices.Factory.get();
Expand Down

0 comments on commit 6c24376

Please sign in to comment.