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

ASF GitHub Bot commented on TWILL-138:
--------------------------------------

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

    https://github.com/apache/twill/pull/14#discussion_r86275759
  
    --- Diff: 
twill-core/src/main/java/org/apache/twill/internal/json/ResourceReportAdapter.java
 ---
    @@ -59,4 +72,61 @@ public ResourceReport fromJson(String json) {
       public ResourceReport fromJson(Reader reader) {
         return gson.fromJson(reader, ResourceReport.class);
       }
    +
    +  /**
    +   * A type adapter for serializing {@code Collection<TwillRunResources>} 
correctly
    +   */
    +  private static final class ResourceReportTypeAdapterFactory implements 
TypeAdapterFactory {
    +
    +    @SuppressWarnings("unchecked")
    +    @Override
    +    public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
    +      if (!Collection.class.isAssignableFrom(type.getRawType())) {
    +        return null;
    +      }
    +
    +      if (!(type.getType() instanceof ParameterizedType)) {
    +        return null;
    +      }
    +
    +      TypeToken<?> valueType = TypeToken.get(((ParameterizedType) 
type.getType()).getActualTypeArguments()[0]);
    +      return (TypeAdapter<T>) collectionAdapter(gson, valueType);
    +    }
    +
    +    private <V> TypeAdapter<Collection<V>> collectionAdapter(Gson gson, 
TypeToken<V> valueType) {
    +      final TypeAdapter<V> valueAdapter = gson.getAdapter(valueType);
    +      return new TypeAdapter<Collection<V>>() {
    +        @Override
    +        public void write(JsonWriter writer, @Nullable Collection<V> 
collection) throws IOException {
    +          if (collection == null) {
    +            writer.nullValue();
    +            return;
    +          }
    +          writer.beginArray();
    +          for (V value : collection) {
    +            valueAdapter.write(writer, value);
    +          }
    +          writer.endArray();
    +        }
    +
    +        @Override
    +        public Collection<V> read(JsonReader reader) throws IOException {
    +          if (reader.peek() == JsonToken.NULL) {
    +            reader.nextNull();
    +            return null;
    +          }
    +          if (reader.peek() != JsonToken.BEGIN_ARRAY) {
    +            return null;
    --- End diff --
    
    shouldn't this throw an exception? It is a violation of the codec.


> Runtime change of Application runnable log level
> ------------------------------------------------
>
>                 Key: TWILL-138
>                 URL: https://issues.apache.org/jira/browse/TWILL-138
>             Project: Apache Twill
>          Issue Type: New Feature
>          Components: core
>            Reporter: Henry Saputra
>
> With TWILL-24 is supported for setting log level when starting the Twill 
> application, next enhancement is to able to send command to update the 
> aggregate log level for a particular runnable in a Twill application.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to