Infinispan hanging at program end
craigching Oct 11, 2010 2:38 PMHi all,
New to infinispan and trying diligently to ensure I have everything set right. When I run the following code:
{code}
import java.io.IOException; import java.util.Properties; import org.infinispan.Cache; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.query.backend.QueryHelper; public class InfinispanTest { static public void main(String [] args) { try { System.out.println("Loading cache..."); EmbeddedCacheManager cache_mgr = new DefaultCacheManager("repl-cache.xml"); cache_mgr.start(); Cache<String, User> cache = cache_mgr.getCache("Users"); cache.start(); QueryHelper helper = new QueryHelper(cache, new Properties(), User.class); System.out.println("Starting test."); long total_begin = System.currentTimeMillis(); long begin = total_begin; cache.startBatch(); for (int i = 0; i < 10000; ++i) { String username = "User" + i; User u = new User(username, (i%2==0), username + " full name", username + "@test.com", "mypassword"); cache.put(u.getUsername(), u); if ((i + 1) % 1000 == 0) { cache.endBatch(true); System.out.println((i + 1) + " users in the cache. " + (System.currentTimeMillis() - begin) + " ms."); begin = System.currentTimeMillis(); cache.startBatch(); } } System.out.println("Total time for test: " + (System.currentTimeMillis() - total_begin) + " ms."); System.out.println("Cache size: " + cache.size()); cache.stop(); cache_mgr.stop(); System.out.println("Cache is stopped, exiting."); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
{code}
{code}
import java.io.Serializable;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.ProvidedId;
import org.hibernate.search.annotations.Store;
@ProvidedId
@Indexed(index="UsersIndex")
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = 4513212371105525165L;
@Field(store=Store.YES)
private String username;
@Field(store=Store.YES)
private boolean enabled = false;
@Field(store=Store.YES)
private String fullName;
@Field(store=Store.YES)
private String email;
private String password;
private String storedPassword;
public User(String username, boolean enabled, String fullName, String email, String password) {
this.username = username;
this.enabled = enabled;
this.fullName = fullName;
this.email = email;
this.password = password;
}
public String getUsername() {
return username;
}
public boolean isEnabled() {
return enabled;
}
public String getFullName() {
return fullName;
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
public String getStoredPassword() {
return this.storedPassword;
}
public void setUsername(String username) {
this.username = username;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public void setEmail(String email) {
this.email = email;
}
public void setPassword(String password) {
this.password = password;
}
public void setStoredPassword(String password) {
this.storedPassword = password;
}
}
{code}
{quote}2010-10-11 13:22:46Full thread dump Java HotSpot(TM) Client VM (16.0-b13 mixed mode, sharing):"DestroyJavaVM" prio=6 tid=0x038d8000 nid=0x1a00 waiting on condition [0x00000000]java.lang.Thread.State: RUNNABLELocked ownable synchronizers:- None"Hibernate Search: Directory writer-1" prio=6 tid=0x038d7800 nid=0x2700 waiting on condition [0x0494f000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x288e5ff8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)at java.lang.Thread.run(Thread.java:619)Locked ownable synchronizers:- None"Scheduled-eviction-thread-0" daemon prio=2 tid=0x03899000 nid=0x2790 waiting on condition [0x0404f000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x28812a78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)at java.lang.Thread.run(Thread.java:619)Locked ownable synchronizers:- None"Low Memory Detector" daemon prio=6 tid=0x0110d800 nid=0x21dc runnable [0x00000000]java.lang.Thread.State: RUNNABLELocked ownable synchronizers:- None"CompilerThread0" daemon prio=10 tid=0x010f3400 nid=0x700 waiting on condition [0x00000000]java.lang.Thread.State: RUNNABLELocked ownable synchronizers:- None"Attach Listener" daemon prio=10 tid=0x010f0c00 nid=0x2398 waiting on condition [0x00000000]java.lang.Thread.State: RUNNABLELocked ownable synchronizers:- None"Signal Dispatcher" daemon prio=10 tid=0x010edc00 nid=0x26fc runnable [0x00000000]java.lang.Thread.State: RUNNABLELocked ownable synchronizers:- None"Finalizer" daemon prio=8 tid=0x010e2800 nid=0x27f8 in Object.wait() [0x033cf000]java.lang.Thread.State: WAITING (on object monitor)at java.lang.Object.wait(Native Method)- waiting on <0x28710288> (a java.lang.ref.ReferenceQueue$Lock)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)- locked <0x28710288> (a java.lang.ref.ReferenceQueue$Lock)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)Locked ownable synchronizers:- None"Reference Handler" daemon prio=10 tid=0x010e1000 nid=0x222c in Object.wait() [0x0337f000]java.lang.Thread.State: WAITING (on object monitor)at java.lang.Object.wait(Native Method)- waiting on <0x28710310> (a java.lang.ref.Reference$Lock)at java.lang.Object.wait(Object.java:485)at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)- locked <0x28710310> (a java.lang.ref.Reference$Lock)Locked ownable synchronizers:- None"VM Thread" prio=10 tid=0x010dfc00 nid=0x2520 runnable"VM Periodic Task Thread" prio=10 tid=0x01116400 nid=0x1330 waiting on conditionJNI global references: 908{quote}
Message was edited by: Craig Ching
-
repl-cache.xml 2.3 KB