{"action":"opened","issue":{"url":"https://api.github.com/repos/henri-tremblay/mytest/issues/145","labels_url":"https://api.github.com/repos/henri-tremblay/mytest/issues/145/labels{/name}","comments_url":"https://api.github.com/repos/henri-tremblay/mytest/issues/145/comments","events_url":"https://api.github.com/repos/henri-tremblay/mytest/issues/145/events","html_url":"https://github.com/henri-tremblay/mytest/issues/145","id":83255514,"number":145,"title":"stack trace eaten","user":{"login":"henri-tremblay","id":1216819,"avatar_url":"https://avatars.githubusercontent.com/u/1216819?v=3","gravatar_id":"","url":"https://api.github.com/users/henri-tremblay","html_url":"https://github.com/henri-tremblay","followers_url":"https://api.github.com/users/henri-tremblay/followers","following_url":"https://api.github.com/users/henri-tremblay/following{/other_user}","gists_url":"https://api.github.com/users/henri-tremblay/gists{/gist_id}","starred_url":"https://api.github.com/users/henri-tremblay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/henri-tremblay/subscriptions","organizations_url":"https://api.github.com/users/henri-tremblay/orgs","repos_url":"https://api.github.com/users/henri-tremblay/repos","events_url":"https://api.github.com/users/henri-tremblay/events{/privacy}","received_events_url":"https://api.github.com/users/henri-tremblay/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/henri-tremblay/mytest/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/henri-tremblay/mytest/labels/major","name":"major","color":"f7c6c7"},{"url":"https://api.github.com/repos/henri-tremblay/mytest/labels/wontfix","name":"wontfix","color":"ffffff"}],"state":"open","locked":false,"assignee":{"login":"henri-tremblay","id":1216819,"avatar_url":"https://avatars.githubusercontent.com/u/1216819?v=3","gravatar_id":"","url":"https://api.github.com/users/henri-tremblay","html_url":"https://github.com/henri-tremblay","followers_url":"https://api.github.com/users/henri-tremblay/followers","following_url":"https://api.github.com/users/henri-tremblay/following{/other_user}","gists_url":"https://api.github.com/users/henri-tremblay/gists{/gist_id}","starred_url":"https://api.github.com/users/henri-tremblay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/henri-tremblay/subscriptions","organizations_url":"https://api.github.com/users/henri-tremblay/orgs","repos_url":"https://api.github.com/users/henri-tremblay/repos","events_url":"https://api.github.com/users/henri-tremblay/events{/privacy}","received_events_url":"https://api.github.com/users/henri-tremblay/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-06-01T01:26:47Z","updated_at":"2015-06-01T01:26:47Z","closed_at":null,"body":"*Migrated from:* CodeHaus issue EASYMOCK-4\n*Original reporter:* Henri Tremblay\n\n---------------------------------------------------------\nA bug elsewhere in our code caused an exception while \na test was running, but the source of the error did not \nappear in the stack trace.  It looks like easymock may \nhave eaten our stack trace -- this makes it hard to find \nthe error.  \n\nThe stack trace was as follows: \n\n<error \ntype=\"java.lang.ArrayIndexOutOfBoundsException\">java.l\nang.ArrayIndexOutOfBoundsException at \norg.easymock.ObjectMethodsFilter.invoke\n(ObjectMethodsFilter.java:41) at $Proxy2.update\n(Unknown Source) at \nca.uhn.pls.impl.repository.command.RepositoryRemoveFiel\ndCommand.execute\n(RepositoryRemoveFieldCommand.java:63) at \nca.uhn.pls.impl.CompositeCommand.execute\n(CompositeCommand.java:33) at \nca.uhn.pls.impl.AbstractMessageHandler.handle\n(AbstractMessageHandler.java:59) at \nca.uhn.pls.impl.MessageDispatcherImpl.doDispatch\n(MessageDispatcherImpl.java:142) at \nca.uhn.pls.impl.MessageDispatcherImpl.dispatch\n(MessageDispatcherImpl.java:101) at \nca.uhn.pls.adt.handler.AbstractAdtMoveMsgHndTest.test\nOneSiteIdExistsAndOneSiteIdMergeExistsInRepositoryMsg\nHaveHcnMerge(AbstractAdtMoveMsgHndTest.java:284) \nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native \nMethod) at sun.reflect.NativeMethodAccessorImpl.invoke\n(NativeMethodAccessorImpl.java:39) at \nsun.reflect.DelegatingMethodAccessorImpl.invoke\n(DelegatingMethodAccessorImpl.java:25)</error> \n\nIt turns out the exception was being raised in the equals\n() method of another class, RecordImpl, which doesn't \nappear in the stack trace.  If we had had perfect JUnit \ncoverage then another test would have turned this up, \nbut we don't, so finding it was lucky.  \n\nI think this arises from the following line code in \norg.easymock.ObjectMethodsFilter.invoke(): \n\ntry {\n  return delegate.invoke(proxy, method, args);\n} catch (Throwable e) {\n  throw e.fillInStackTrace();\n}\n    \n... how about letting the throwable go as-is?  I.e.:\n\nreturn delegate.invoke(proxy, method, args);\n\nThat would preserve the whole stack trace as opposed \nto just invoke() and below.  Is there a reason not to do \nthis?  \n\nBest regards, \nBryan \n"}}