{"issue":{"title":"Ambiguous error message when redis services is not bound to application","created_at":"2011-12-23T22:31:22Z","user":{"login":"jbayer","id":1139532,"url":"https://api.github.com/users/jbayer","gravatar_id":"c1e81329cf5b56f57e197eed027bdaa6","avatar_url":"https://secure.gravatar.com/avatar/c1e81329cf5b56f57e197eed027bdaa6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"milestone":null,"updated_at":"2011-12-23T22:31:22Z","state":"open","labels":[],"id":2650717,"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"closed_at":null,"html_url":"https://github.com/glaforge/caelyf/issues/3","body":"When redis is not bound to the application, this error message occurs on startup, which could be more clear:\r\n\r\njava.lang.RuntimeException: Impossible to get redis credentials (Cannot invoke method getAt() on null object)\r\n\r\n\r\n```\r\n====> logs/stdout.log <====\r\n\r\njava.lang.RuntimeException: Impossible to get redis credentials (Cannot invoke method getAt() on null object)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)\r\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:513)\r\n\tat org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)\r\n\tat org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:71)\r\n\tat org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:81)\r\n\tat org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)\r\n\tat org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)\r\n\tat org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)\r\n\tat groovyx.caelyf.cache.RedisHolder$__clinit__closure1.doCall(RedisHolder.groovy:27)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:597)\r\n\tat org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)\r\n\tat groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)\r\n\tat org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)\r\n\tat groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)\r\n\tat groovy.lang.Closure.call(Closure.java:410)\r\n\tat org.codehaus.groovy.runtime.memoize.Memoize$MemoizeFunction.call(Memoize.java:127)\r\n\tat groovy.lang.Closure.call(Closure.java:404)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:597)\r\n\tat org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)\r\n\tat groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)\r\n\tat groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)\r\n\tat groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)\r\n\tat org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:793)\r\n\tat org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:776)\r\n\tat org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:164)\r\n\tat org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeClosure(ScriptBytecodeAdapter.java:570)\r\n\tat groovyx.caelyf.cache.RedisHolder.getRedis(RedisHolder.groovy:41)\r\n\tat groovyx.caelyf.cache.RedisHolder$getRedis.call(Unknown Source)\r\n\tat org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)\r\n\tat org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)\r\n\tat org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)\r\n\tat groovyx.caelyf.BindingEnhancer.bind(BindingEnhancer.groovy:46)\r\n\tat groovyx.caelyf.BindingEnhancer$bind.call(Unknown Source)\r\n\tat org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)\r\n\tat org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)\r\n\tat org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)\r\n\tat groovyx.caelyf.routes.RoutesFilter.loadRoutes(RoutesFilter.groovy:89)\r\n\tat groovyx.caelyf.routes.RoutesFilter.init(RoutesFilter.groovy:64)\r\n\tat org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)\r\n\tat org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)\r\n\tat org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)\r\n\tat org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)\r\n\tat org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)\r\n\tat org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)\r\n\tat org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)\r\n\tat org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)\r\n\tat org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)\r\n\tat org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)\r\n\tat org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)\r\n\tat org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)\r\n\tat org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)\r\n\tat org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)\r\n\tat org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)\r\n\tat org.apache.catalina.core.StandardHost.start(StandardHost.java:840)\r\n\tat org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)\r\n\tat org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)\r\n\tat org.apache.catalina.core.StandardService.start(StandardService.java:525)\r\n\tat org.apache.catalina.core.StandardServer.start(StandardServer.java:754)\r\n\tat org.apache.catalina.startup.Catalina.start(Catalina.java:595)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:597)\r\n\tat org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)\r\n\tat org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)\r\n```\r\n","number":3,"url":"https://api.github.com/repos/glaforge/caelyf/issues/3","comments":0,"assignee":null},"action":"opened"}