Illegal State Exception with couchbase

247 views
Skip to first unread message

suman reddy aella

unread,
Jul 28, 2015, 3:12:15 PM7/28/15
to Couchbase


We have been getting the below exception very frequently on the line "row.document" when we try to access the particular document.

couch base server - 3.0.3 enterprise edition 

couch base client - 2.1.2


Setting:

// Create couchbase cluster client
CouchbaseEnvironment couchEnv = DefaultCouchbaseEnvironment.builder()
.connectTimeout(configuration.getCouchbase().getConnectTimeout())    //10000ms = 10s, default is 5s
.viewTimeout(configuration.getCouchbase().getViewTimeout())
.queryTimeout(configuration.getCouchbase().getQueryTimeout())
.autoreleaseAfter(5000)
.build();
cluster =  CouchbaseCluster.create(couchEnv,configuration.getCouchbase().getHosts());
bucket = cluster.openBucket(configuration.getCouchbase().getBucket(), configuration.getCouchbase().getPassword());

Code:

public UserDocument getUserByUserName(String userName) {
    UserDocument userDocument = null;  
    if (userName == null) {
        return null; 
    }  

    ViewResult result = bucket.query(ViewQuery.from(
                                DesignDocumentEnum.USERNAME_DESIGN_DOC.getName(),
                                ViewEnum.BY_USERNAME.getName())
                                  .key(userName).limit(1));  
    if (!result.success()) {
        return null;
    }

    List<ViewRow> allRows = result.allRows();  
    for (ViewRow row : allRows) {
        //Exception at below line    
        JsonDocument userDocumentJson = row.document();  
        userDocument = gson.fromJson( userDocumentJson.content() != null ?     userDocumentJson .content().toString() : null, UserDocument.class);  
        break;  
    }

    return userDocument;   
}  

Logs :

ERROR [2015-07-28 12:16:59,122] com.personagraph.dropwizard.resource.UserManagementResource: Internal Error in gettting user details
! java.lang.IllegalStateException: The Content of this Observable is already released. Subscribe earlier or tune the CouchbaseEnvironment#autoreleaseAfter() setting.
! at com.couchbase.client.core.utils.UnicastAutoReleaseSubject$OnSubscribeAction.call(UnicastAutoReleaseSubject.java:230) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at com.couchbase.client.core.utils.UnicastAutoReleaseSubject$OnSubscribeAction.call(UnicastAutoReleaseSubject.java:202) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:145) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:137) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:145) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:137) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:145) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:137) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:145) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:137) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:145) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:137) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:145) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:137) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:145) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable$1.call(Observable.java:137) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.Observable.subscribe(Observable.java:7393) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.internal.operators.BlockingOperatorToIterator.toIterator(BlockingOperatorToIterator.java:52) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at rx.observables.BlockingObservable.getIterator(BlockingObservable.java:155) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at com.couchbase.client.java.view.DefaultViewResult.rows(DefaultViewResult.java:64) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
! at com.couchbase.client.java.view.DefaultViewResult.rows(DefaultViewResult.java:49) ~[pgweb-usermanagement-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]

Can anyone please let me know what is the cause for this issue.

Thanks
Suman
Reply all
Reply to author
Forward
0 new messages