Skip to content

Commit f574325

Browse files
rvansagalderz
authored andcommitted
Run CorrectnessTestCase in nonstrict mode
* the test was not running in nonstrict-read-write mode but in read-write mode instead * for collections, we have to fallback to read-write mode * there are expected failures in nonstrict mode, as the test does not allow stale reads (adding a switch to handle these is TODO)
1 parent 69ba7a5 commit f574325

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/CorrectnessTestCase.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -273,9 +273,7 @@ public static Class[] getAnnotatedClasses() {
273273
return new Class[] {Family.class, Person.class, Address.class};
274274
}
275275

276-
private static Metadata buildMetadata(StandardServiceRegistry registry) {
277-
final String cacheStrategy = "transactional";
278-
276+
private Metadata buildMetadata(StandardServiceRegistry registry) {
279277
MetadataSources metadataSources = new MetadataSources( registry );
280278
for ( Class entityClass : getAnnotatedClasses() ) {
281279
metadataSources.addAnnotatedClass( entityClass );
@@ -285,12 +283,15 @@ private static Metadata buildMetadata(StandardServiceRegistry registry) {
285283

286284
for ( PersistentClass entityBinding : metadata.getEntityBindings() ) {
287285
if (!entityBinding.isInherited()) {
288-
( (RootClass) entityBinding ).setCacheConcurrencyStrategy( cacheStrategy);
286+
( (RootClass) entityBinding ).setCacheConcurrencyStrategy( accessType.getExternalName() );
289287
}
290288
}
291289

290+
// Collections don't have integrated version, these piggyback on parent's owner version (for DB).
291+
// However, this version number isn't extractable and is not passed to cache methods.
292+
AccessType collectionAccessType = accessType == AccessType.NONSTRICT_READ_WRITE ? AccessType.READ_WRITE : accessType;
292293
for ( Collection collectionBinding : metadata.getCollectionBindings() ) {
293-
collectionBinding.setCacheConcurrencyStrategy( cacheStrategy );
294+
collectionBinding.setCacheConcurrencyStrategy( collectionAccessType.getExternalName() );
294295
}
295296

296297
return metadata;
@@ -410,7 +411,7 @@ public void test() throws Exception {
410411
}));
411412
}
412413
}
413-
Exception failure = exceptions.poll(EXECUTION_TIME, TimeUnit.SECONDS);
414+
Exception failure = exceptions.poll(EXECUTION_TIME, TimeUnit.MILLISECONDS);
414415
if (failure != null) exceptions.addFirst(failure);
415416
running = false;
416417
exec.shutdown();

hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/entities/Address.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import javax.persistence.GeneratedValue;
1212
import javax.persistence.Id;
1313
import javax.persistence.OneToMany;
14+
import javax.persistence.Version;
15+
1416
import java.util.HashSet;
1517
import java.util.Iterator;
1618
import java.util.Set;
@@ -28,6 +30,7 @@ public final class Address {
2830
private String zipCode;
2931
@OneToMany
3032
private Set<Person> inhabitants;
33+
@Version
3134
private int version;
3235

3336
public Address(int streetNumber, String streetName, String cityName, String countryName) {

hibernate-infinispan/src/test/java/org/hibernate/test/cache/infinispan/stress/entities/Person.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import javax.persistence.GeneratedValue;
1212
import javax.persistence.Id;
1313
import javax.persistence.ManyToOne;
14+
import javax.persistence.Version;
15+
1416
import java.util.Date;
1517

1618
@Entity
@@ -26,6 +28,7 @@ public class Person {
2628
@ManyToOne
2729
private Address address;
2830
private boolean checked;
31+
@Version
2932
private int version;
3033

3134
public Person(String firstName, Family family) {

0 commit comments

Comments
 (0)