cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-7462) OutboundSseEventImpl could use some minor tweaks
Date Wed, 02 Aug 2017 14:18:00 GMT

    [ https://issues.apache.org/jira/browse/CXF-7462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16110983#comment-16110983
] 

ASF GitHub Bot commented on CXF-7462:
-------------------------------------

Github user andymc12 commented on a diff in the pull request:

    https://github.com/apache/cxf/pull/301#discussion_r130889015
  
    --- Diff: rt/rs/sse/src/main/java/org/apache/cxf/jaxrs/sse/OutboundSseEventImpl.java ---
    @@ -24,24 +24,24 @@
     import javax.ws.rs.core.MediaType;
     import javax.ws.rs.sse.OutboundSseEvent;
     
    -public class OutboundSseEventImpl implements OutboundSseEvent {
    -    private String id;
    -    private String name;
    -    private String comment;
    -    private long reconnectDelay = -1;
    -    private Class<?> type;
    -    private Type genericType;
    -    private MediaType mediaType;
    -    private Object data;
    +public final class OutboundSseEventImpl implements OutboundSseEvent {
    +    private final String id;
    +    private final String name;
    +    private final String comment;
    +    private final long reconnectDelay;
    +    private final Class<?> type;
    +    private final Type genericType;
    +    private final MediaType mediaType;
    +    private final Object data;
     
         public static class BuilderImpl implements Builder {
             private String id;
             private String name;
             private String comment;
             private long reconnectDelay = -1;
    -        private Class<?> type;
    +        private Class<?> type = String.class;
    --- End diff --
    
    The use case here is for when a user uses the `data(String data)` API method (as opposed
to the `data(Class<?> type, Object o)` method.  In the single parm case, the type is
not set by the user, so we will get a NPE unless we set it - and since the API method accepts
a String type, I think that makes the most sense.
    
    That said, I think I will make a change here - to avoid the case where the user uses _both_
API methods.  For example, they could do:
    `builder.data(Widget.class, new Widget(123)).data("my String");`
    
    I believe that this will cause the type to be set to Widget in the first call, but then
not reset to String in the second call.  I'll change the defaulting to be in the implementation
of the `data(String s)` method.
    
    Thanks for the review comments!


> OutboundSseEventImpl could use some minor tweaks
> ------------------------------------------------
>
>                 Key: CXF-7462
>                 URL: https://issues.apache.org/jira/browse/CXF-7462
>             Project: CXF
>          Issue Type: Improvement
>          Components: JAX-RS
>    Affects Versions: 3.2.0
>            Reporter: Andy McCright
>            Priority: Minor
>             Fix For: 3.2.0
>
>
> The OutboundSseEventImpl class could use some minor tweaks, including:
> 1) Make the fields final to reflect that the event is immutable.
> 2) Use defaults for the data type (String.class) and media type (SERVER_SENT_EVENT_TYPE).
> 3) Restrict the constructor's visibility.
> I also plan to add some tests for these changes.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message