WARNING: Caught
Exception in thread "main" java.lang.IllegalStateException: this
should be impossible
at com.mongodb.DBTCPConnector$MyPort.error(DBTCPConnector.java:287)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:197)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:223)
at com.mongodb.DBCursor._check(DBCursor.java:252)
at com.mongodb.DBCursor._hasNext(DBCursor.java:372)
at com.mongodb.DBCursor.hasNext(DBCursor.java:397)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.loadTop(FoursquareDatasetVenue.java:161)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.main(FoursquareDatasetVenue.java:50)
the calling code is very straight forward:
DBCollection col = new FoursquareDatasetVenue(timeframe).dBCollection();
DBObject query = new BasicDBObject();
query.put("dataset_id", DBHelper.objectId(datasetId));
query.put("te", timeframe.toTrendrrEpoch(date));
log.info(query);
DBCursor cur = col.find(query);
cur.skip(start);
cur.batchSize(limit);
cur.limit(limit);
cur.sort(new BasicDBObject("val", -1));
for (DBObject dsv : cur.toArray()) { // <-- ERROR HERE
DBObject dsv = cur.next();
...
}
--
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To post to this group, send email to mongod...@googlegroups.com.
To unsubscribe from this group, send email to mongodb-user...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mongodb-user?hl=en.
Found the issue though, I had been holding a DB object as a member
variable. That's bad form I guess :)
I'll get the latest and try that if it helps catch a bug in the
driver, otherwise the problem is fixed from my side.
SEVERE: MyPort.error called but _last is null called b/c of
java.lang.IllegalArgumentException: response too long: 1684627207
at com.mongodb.Response.<init>(Response.java:39)
at com.mongodb.DBPort.go(DBPort.java:85)
at com.mongodb.DBPort.call(DBPort.java:56)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:186)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:223)
at com.mongodb.DBCollection.findOne(DBCollection.java:486)
at com.mongodb.DBCollection.findOne(DBCollection.java:475)
at com.mongodb.DB.command(DB.java:137)
at com.mongodb.DB.getLastError(DB.java:283)
at com.trendrr.shared.db.helpers.DBHelper.checkForError(DBHelper.java:65)
at com.trendrr.shared.db.MongoWrapper.getAuthenticatedDB(MongoWrapper.java:101)
at com.trendrr.shared.db.TrendrrDB.getFoursquareDB(TrendrrDB.java:62)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.<init>(FoursquareDatasetVenue.java:57)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.<init>(FoursquareDatasetVenue.java:64)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.mongodb.DBCallback._create(DBCallback.java:86)
at com.mongodb.DBCallback.create(DBCallback.java:61)
at org.bson.BasicBSONCallback.objectStart(BasicBSONCallback.java:38)
at org.bson.BasicBSONCallback.objectStart(BasicBSONCallback.java:34)
at org.bson.BSONDecoder.decode(BSONDecoder.java:70)
at org.bson.BSONDecoder.decode(BSONDecoder.java:55)
at org.bson.BSONDecoder.decode(BSONDecoder.java:42)
at com.mongodb.Response.<init>(Response.java:63)
at com.mongodb.DBPort.go(DBPort.java:85)
at com.mongodb.DBPort.call(DBPort.java:56)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:186)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:223)
at com.mongodb.DBCursor._check(DBCursor.java:252)
at com.mongodb.DBCursor._hasNext(DBCursor.java:372)
at com.mongodb.DBCursor._fill(DBCursor.java:440)
at com.mongodb.DBCursor.toArray(DBCursor.java:470)
at com.mongodb.DBCursor.toArray(DBCursor.java:459)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.loadTop(FoursquareDatasetVenue.java:170)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.main(FoursquareDatasetVenue.java:52)
Exception in thread "main" java.lang.IllegalArgumentException:
response too long: 1684627207
at com.mongodb.Response.<init>(Response.java:39)
at com.mongodb.DBPort.go(DBPort.java:85)
at com.mongodb.DBPort.call(DBPort.java:56)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:186)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:223)
at com.mongodb.DBCollection.findOne(DBCollection.java:486)
at com.mongodb.DBCollection.findOne(DBCollection.java:475)
at com.mongodb.DB.command(DB.java:137)
at com.mongodb.DB.getLastError(DB.java:283)
at com.trendrr.shared.db.helpers.DBHelper.checkForError(DBHelper.java:65)
at com.trendrr.shared.db.MongoWrapper.getAuthenticatedDB(MongoWrapper.java:101)
at com.trendrr.shared.db.TrendrrDB.getFoursquareDB(TrendrrDB.java:62)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.<init>(FoursquareDatasetVenue.java:57)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.<init>(FoursquareDatasetVenue.java:64)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.mongodb.DBCallback._create(DBCallback.java:86)
at com.mongodb.DBCallback.create(DBCallback.java:61)
at org.bson.BasicBSONCallback.objectStart(BasicBSONCallback.java:38)
at org.bson.BasicBSONCallback.objectStart(BasicBSONCallback.java:34)
at org.bson.BSONDecoder.decode(BSONDecoder.java:70)
at org.bson.BSONDecoder.decode(BSONDecoder.java:55)
at org.bson.BSONDecoder.decode(BSONDecoder.java:42)
at com.mongodb.Response.<init>(Response.java:63)
at com.mongodb.DBPort.go(DBPort.java:85)
at com.mongodb.DBPort.call(DBPort.java:56)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:186)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:223)
at com.mongodb.DBCursor._check(DBCursor.java:252)
at com.mongodb.DBCursor._hasNext(DBCursor.java:372)
at com.mongodb.DBCursor._fill(DBCursor.java:440)
at com.mongodb.DBCursor.toArray(DBCursor.java:470)
at com.mongodb.DBCursor.toArray(DBCursor.java:459)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.loadTop(FoursquareDatasetVenue.java:170)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.main(FoursquareDatasetVenue.java:52)
It looks like this is what is happening:
- do a find
- iterating results
- creating a new object with a custom type
- that creation triggers a getLastError
- which uses the same connection
- which is bad since its in the middle of streaming results.
Thanks for the help,
-Eliot
Here is the output from the latest jar:
SEVERE: MyPort.error called but _last is null called b/c of
java.lang.IllegalStateException: DBPort.go called and expecting a
response while processing another response
at com.mongodb.DBPort.go(DBPort.java:73)
at com.mongodb.DBPort.go(DBPort.java:96)
at com.mongodb.DBPort.call(DBPort.java:56)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:186)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:223)
at com.mongodb.DBCursor._check(DBCursor.java:252)
at com.mongodb.DBCursor._hasNext(DBCursor.java:372)
at com.mongodb.DBCursor._fill(DBCursor.java:440)
at com.mongodb.DBCursor.toArray(DBCursor.java:470)
at com.mongodb.DBCursor.toArray(DBCursor.java:459)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.loadTop(FoursquareDatasetVenue.java:170)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.main(FoursquareDatasetVenue.java:52)
Exception in thread "main" java.lang.IllegalStateException: DBPort.go
called and expecting a response while processing another response
at com.mongodb.DBPort.go(DBPort.java:73)
at com.mongodb.DBPort.go(DBPort.java:96)
at com.mongodb.DBPort.call(DBPort.java:56)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:186)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:223)
at com.mongodb.DBCursor._check(DBCursor.java:252)
at com.mongodb.DBCursor._hasNext(DBCursor.java:372)
at com.mongodb.DBCursor._fill(DBCursor.java:440)
at com.mongodb.DBCursor.toArray(DBCursor.java:470)
at com.mongodb.DBCursor.toArray(DBCursor.java:459)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.loadTop(FoursquareDatasetVenue.java:170)
at com.trendrr.shared.model.foursquare.FoursquareDatasetVenue.main(FoursquareDatasetVenue.java:52)
On Fri, Aug 20, 2010 at 12:08 PM, Eliot Horowitz
--
--
--
You received this message because you are subscribed to the Google
Groups "mongodb-user" group.
To post to this group, send email to mongod...@googlegroups.com
See also the IRC channel -- freenode.net#mongodb
---
You received this message because you are subscribed to a topic in the Google Groups "mongodb-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mongodb-user/DgDG_tpMGtc/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to mongodb-user...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user...@googlegroups.com.