[ 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)