{"action":"created","issue":{"url":"https://api.github.com/repos/mp911de/lettuce/issues/45","labels_url":"https://api.github.com/repos/mp911de/lettuce/issues/45/labels{/name}","comments_url":"https://api.github.com/repos/mp911de/lettuce/issues/45/comments","events_url":"https://api.github.com/repos/mp911de/lettuce/issues/45/events","html_url":"https://github.com/mp911de/lettuce/issues/45","id":59413479,"number":45,"title":"Commands have Output fields that are nullable and mutable.","user":{"login":"taer","id":458866,"avatar_url":"https://avatars.githubusercontent.com/u/458866?v=3","gravatar_id":"","url":"https://api.github.com/users/taer","html_url":"https://github.com/taer","followers_url":"https://api.github.com/users/taer/followers","following_url":"https://api.github.com/users/taer/following{/other_user}","gists_url":"https://api.github.com/users/taer/gists{/gist_id}","starred_url":"https://api.github.com/users/taer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taer/subscriptions","organizations_url":"https://api.github.com/users/taer/orgs","repos_url":"https://api.github.com/users/taer/repos","events_url":"https://api.github.com/users/taer/events{/privacy}","received_events_url":"https://api.github.com/users/taer/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mp911de/lettuce/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-03-01T19:32:33Z","updated_at":"2015-03-02T14:37:55Z","closed_at":null,"body":"Commands can be created with null outputs. I think this could be cleaned up to require non-null Outputs. I think we should also remove the setOutput() call on command as well. Output is used in the RedisStateMachine, and changing output midstream or having a missing one can lead to issues.\r\n\r\nFrom an initial look, only 2 commands have no output. The debugOOM and debugSegfault. Both these kill the server, so there is no output to report. I wasn't able to find any other places where a null output is used.\r\n\r\nIf this seems OK, I'd like to go down this path. \r\n\r\nAlso, is this the best way to discuss code proposals like this?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/mp911de/lettuce/issues/comments/76721932","html_url":"https://github.com/mp911de/lettuce/issues/45#issuecomment-76721932","issue_url":"https://api.github.com/repos/mp911de/lettuce/issues/45","id":76721932,"user":{"login":"taer","id":458866,"avatar_url":"https://avatars.githubusercontent.com/u/458866?v=3","gravatar_id":"","url":"https://api.github.com/users/taer","html_url":"https://github.com/taer","followers_url":"https://api.github.com/users/taer/followers","following_url":"https://api.github.com/users/taer/following{/other_user}","gists_url":"https://api.github.com/users/taer/gists{/gist_id}","starred_url":"https://api.github.com/users/taer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taer/subscriptions","organizations_url":"https://api.github.com/users/taer/orgs","repos_url":"https://api.github.com/users/taer/repos","events_url":"https://api.github.com/users/taer/events{/privacy}","received_events_url":"https://api.github.com/users/taer/received_events","type":"User","site_admin":false},"created_at":"2015-03-02T14:37:55Z","updated_at":"2015-03-02T14:37:55Z","body":"I actually just noticed that guava depends on JSR305 already. And I just learned that annotations don't need to be present on the runtime classpath [SO link](https://stackoverflow.com/questions/3567413/why-doesnt-a-missing-annotation-cause-a-classnotfoundexception-at-runtime)\r\n\r\nSo an optional one won't affect users. Either way I'm planning to limit the annotation to a few initial methods. \r\n\r\nI do like the idea of getting Sonar in place if it's an easy integration"}}