parautenbach / TeamCity-HipChat-Notifier

TeamCity HipChat Notifier for sending build server notifications to HipChat.
Other
59 stars 31 forks source link

No emoticons available #53

Closed gh2k closed 9 years ago

gh2k commented 9 years ago

I've installed the notifier in my TeamCity instance and authorised it with a user token.

It's sending notifications, but there aren't any emoticons added. When I look at the admin page it tells me that there are 0 items in the emoticon cache. I've tried clicking the 'reload' button.

What should I check?

parautenbach commented 9 years ago

Which combination/versions of TC and the plugin are you using respectively?

Also enable debug logging, which help the process of debugging.

gh2k commented 9 years ago

It's TC 9.0.3 and plugin 0.9.0

There's something in the log that it's complaining about though...

2015-05-29 15:27:55,886 - INFO  - Controller created 
2015-05-29 15:27:55,895 - DEBUG - Loading existing configuration 
2015-05-29 15:27:55,976 - DEBUG - Caching all available emoticons 
2015-05-29 15:27:55,977 - DEBUG - Start index: 0 
2015-05-29 15:27:57,404 - ERROR - Could not get emoticons 
org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "type" (Class com.whatsthatlight.teamcity.hipchat.HipChatEmoticon), not marked as ignorable
 at [Source: java.io.InputStreamReader@6b4658ba; line: 1, column: 118] (through reference chain: com.whatsthatlight.teamcity.hipchat.HipChatEmoticons["items"]->com.whatsthatlight.teamcity.hipchat.HipChatEmoticon["type"])
    at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53)
    at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267)
    at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673)
    at org.codehaus.jackson.map.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:659)
    at org.codehaus.jackson.map.deser.BeanDeserializer.handleUnknownProperty(BeanDeserializer.java:1365)
    at org.codehaus.jackson.map.deser.BeanDeserializer._handleUnknown(BeanDeserializer.java:725)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:703)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
    at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:217)
    at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:194)
    at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:30)
    at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299)
    at org.codehaus.jackson.map.deser.SettableBeanProperty$FieldProperty.deserializeAndSet(SettableBeanProperty.java:579)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697)
    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:1886)
    at com.whatsthatlight.teamcity.hipchat.HipChatApiProcessor.getEmoticons(HipChatApiProcessor.java:86)
    at com.whatsthatlight.teamcity.hipchat.HipChatEmoticonCache.reload(HipChatEmoticonCache.java:42)
    at com.whatsthatlight.teamcity.hipchat.HipChatConfigurationController.initialise(HipChatConfigurationController.java:296)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1681)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1620)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
    at jetbrains.buildServer.plugins.spring.SpringPluginLoader.pluginClassesLoaded(SpringPluginLoader.java:84)
    at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:117)
    at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:67)
    at com.sun.proxy.$Proxy17.pluginClassesLoaded(Unknown Source)
    at jetbrains.buildServer.plugins.PluginManagerImpl$2.visitPlugin(PluginManagerImpl.java:137)
    at jetbrains.buildServer.plugins.PluginsCollection.foreachLoadedPlugins(PluginsCollection.java:222)
    at jetbrains.buildServer.plugins.PluginManagerImpl.firePluginClassesLoaded(PluginManagerImpl.java:135)
    at jetbrains.buildServer.plugins.PluginManagerImpl.loadPlugins(PluginManagerImpl.java:81)
    at jetbrains.buildServer.web.plugins.PluginManagerConfigurator.initializePlugins(PluginManagerConfigurator.java:8)
    at jetbrains.buildServer.web.impl.BuildServerConfigurator.loadConfiguration(BuildServerConfigurator.java:81)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet$WebApplicationCreatorAndDestroyer.createApplication(TeamCityDispatcherServlet.java:2)
    at jetbrains.buildServer.maintenance.StartupProcessor.doApplicationStarting(StartupProcessor.java:159)
    at jetbrains.buildServer.maintenance.StartupProcessor.processConcreteStage(StartupProcessor.java:367)
    at jetbrains.buildServer.maintenance.StartupProcessor.processConcreteStageSafe(StartupProcessor.java:166)
    at jetbrains.buildServer.maintenance.StartupProcessor.processTeamCityLifecycle(StartupProcessor.java:329)
    at jetbrains.buildServer.maintenance.StartupProcessor.access$000(StartupProcessor.java:320)
    at jetbrains.buildServer.maintenance.StartupProcessor$1.run(StartupProcessor.java:1)
    at java.lang.Thread.run(Thread.java:745)
2015-05-29 15:27:57,407 - INFO  - Emoticon cache reloaded: 0 
2015-05-29 15:27:57,407 - INFO  - Controller initialised 
parautenbach commented 9 years ago

It seems like the HipChat API has been broken by Atlassian (again): There is a type element expected in the response that is not found. I don't understand why they make minor revisions/bugfixes to the API without maintaining backwards compatibility within major versions. Anyway, that's not your problem.

I will release an update as soon as possible. I might have a look at it over the weekend, otherwise during next week. Should be fairly quick to do, but in making a release I normally perform a last QA step to make sure everything works.

Just to check: Besides the emoticons, the plugin is sending notifications. It's not completely broken now, right?

gh2k commented 9 years ago

Yeah, everything else works. It's a new install (today) and I haven't had any other problems with it.

parautenbach commented 9 years ago

Hi, I haven't had time yet to look into this, as I only returned from an extended overseas trip this past weekend. I will try to pay attention to this soon.

parautenbach commented 9 years ago

Fixed in v0.9.1.

gh2k commented 9 years ago

Thanks :-)