Dexels / navajo

Navajo Service-oriented Applications
GNU Affero General Public License v3.0
9 stars 5 forks source link

Change in Entity/Mongo mapping breaks existing code #396

Closed aschoneveld closed 7 years ago

aschoneveld commented 7 years ago

It seems that an existing webservice in everywear-navajo does not work anymore. It uses Mongo aggregation:

[Navajo Sendrato Server/1484218659838-1135] ERROR com.dexels.navajo.server.Dispatcher - Generating error message for: 
java.lang.IllegalArgumentException: invalid hexadecimal representation of an ObjectId: [cashless]
    at org.bson.types.ObjectId.parseHexString(ObjectId.java:519)
    at org.bson.types.ObjectId.<init>(ObjectId.java:233)
    at com.dexels.navajo.mongo.document.MongoTml.resolveProperty(MongoTml.java:47)
    at com.dexels.navajo.mongo.document.DbDataMessage.get(DbDataMessage.java:80)
    at com.dexels.navajo.mongo.document.DbDataMessage.toMap(DbDataMessage.java:194)
    at com.dexels.navajo.mongo.document.DbDataMessage.put(DbDataMessage.java:141)
    at com.dexels.navajo.mongo.client.MongoClientImpl.appendToArrayMessage(MongoClientImpl.java:486)
    at com.dexels.navajo.mongo.client.MongoClientImpl.aggregateArray(MongoClientImpl.java:682)
    at com.dexels.navajo.mongo.adapter.AggregateMongoAdapter.store(AggregateMongoAdapter.java:79)
    at com.dexels.navajo.mapping.MappingUtils.callStoreMethod(MappingUtils.java:649)
    at mongo.ProcessAggregateMongo.execute(ProcessAggregateMongo.java:72)
    at com.dexels.navajo.mapping.CompiledScript.run(CompiledScript.java:455)
    at com.dexels.navajo.server.GenericHandler.doService(GenericHandler.java:477)
    at com.dexels.navajo.server.ServiceHandler.construct(ServiceHandler.java:68)
    at com.dexels.navajo.persistence.impl.PersistenceManagerImpl.get(PersistenceManagerImpl.java:164)
    at com.dexels.navajo.server.Dispatcher.dispatch(Dispatcher.java:485)
    at com.dexels.navajo.server.Dispatcher.processNavajo(Dispatcher.java:1040)
    at com.dexels.navajo.server.Dispatcher.handle(Dispatcher.java:751)
    at com.dexels.navajo.adapter.NavajoMap.run(NavajoMap.java:1423)
    at com.dexels.navajo.adapter.NavajoMap.setDoSend(NavajoMap.java:866)
    at com.dexels.navajo.adapter.NavajoMap.setDoSend(NavajoMap.java:810)
    at everywear.statistics.GetTransactionStatistics.execute(GetTransactionStatistics.java:82)
cbrouwer commented 7 years ago

Which version of com.dexels.navajo.mongo are you using?

aschoneveld commented 7 years ago

3.1.16

cbrouwer commented 7 years ago

This is quite an ancient version; more than a year old. This particular problem (where Navajo-mongo assumed an objectid is always a Bson ObjectId) has long been fixed. I recommend upgrading to the version used by Sportlink (4.0.24).