Issue 14454

Registry should not send any legacy API objects

14454
Reporter: omeyn
Assignee: kbraak
Type: Bug
Summary: Registry should not send any legacy API objects
Priority: Blocker
Resolution: Fixed
Status: Resolved
Created: 2013-12-06 11:26:11.501
Updated: 2013-12-12 15:54:00.627
Resolved: 2013-12-12 15:54:00.594
        
Description: All crud operations in the registry operating on legacy objects need to persist the equivalent current API object because the persistence mechanism sends rabbit messages that will break crawling if they use the registry-internal legacy classes.

Here's a typical stacktrace:
INFO  [2013-06-12 11:09:58,374+0100] [main] org.gbif.cli.service.ServiceCommand: Service started, now in state [RUNNING]
DefaultExceptionHandler: Consumer org.gbif.common.messaging.MessageConsumer@37ff3e4 (amq.ctag-QhToumzJjfmPRMZceB2lUA) method handleDelivery for channel AMQChannel(amqp://registry-change@130.226.238.193:5672/production,1) threw an exception for channel AMQChannel(amqp://registry-change@130.226.238.193:5672/production,1):
java.lang.IllegalArgumentException: Invalid type id 'org.gbif.registry.ws.model.LegacyInstallation' (for id type 'Id.class'): no such class found
        at org.codehaus.jackson.map.jsontype.impl.ClassNameIdResolver.typeFromId(ClassNameIdResolver.java:57)
        at org.codehaus.jackson.map.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:113)
        at org.codehaus.jackson.map.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:82)
        at org.codehaus.jackson.map.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromAny(AsPropertyTypeDeserializer.java:146)
        at org.codehaus.jackson.map.deser.std.UntypedObjectDeserializer.deserializeWithType(UntypedObjectDeserializer.java:106)
        at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:297)
        at org.codehaus.jackson.map.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:905)
        at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObjectUsingNonDefault(BeanDeserializer.java:739)
        at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:683)
        at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
        at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)
        at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1935)
        at org.gbif.common.messaging.MessageConsumer.deserializeBody(MessageConsumer.java:75)
        at org.gbif.common.messaging.MessageConsumer.handleDelivery(MessageConsumer.java:61)
        at com.rabbitmq.client.impl.ConsumerDispatcher$4.run(ConsumerDispatcher.java:121)
        at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:76)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
]]>
    


Author: kbraak@gbif.org
Comment: Confirmed fixed, with the release of registry-11. 
Created: 2013-12-12 15:54:00.625
Updated: 2013-12-12 15:54:00.625