# Workaround for @Input List\<String\> args is not serializable

**URL:** <https://discuss.gradle.org/t/workaround-for-input-list-string-args-is-not-serializable/17472>\
**Category:** Help/Discuss\
**Created:** [May 5, 2016, 4:09pm UTC](https://discuss.gradle.org/t/workaround-for-input-list-string-args-is-not-serializable/17472 "2016-05-05T16:09:28Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Martin\_d\_Anjou](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/martin_d_anjou/32/5248_2.png) [@Martin\_d\_Anjou](https://discuss.gradle.org/u/Martin_d_Anjou)\
**Post date:** [May 5, 2016, 4:09pm UTC](https://discuss.gradle.org/t/workaround-for-input-list-string-args-is-not-serializable/17472/1 "2016-05-05T16:09:28Z")

</div>

My source task extension contains a `@Input List<String> args` which Gradle 2.13 claims is not serializable:

> Unable to store task input properties. Property ‘args’ with value ‘[a, b]’ cannot be serialized.

I have a found a workaround by looking [at an older post](https://discuss.gradle.org/t/custom-task-never-up-to-date-when-running-daemon/9525):

```
class MyTask extends SourceTask {
    List<String> args
    @Input
    List<String> getArgsWorkaround() {
        args.collect { it.toString() }
    }
}

```

Is this a bug in Gradle?

Code demonstrating the problem [here](https://gist.github.com/martinda/cbc6ff033e9e5f0410fb15d6ded3da5d).

---

<div class="post-metadata">

**Author:** ![Schalk\_Cronje](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/schalk_cronje/32/6511_2.png) [@Schalk\_Cronje](https://discuss.gradle.org/u/Schalk_Cronje)\
**Post date:** [May 7, 2016, 10:02am UTC](https://discuss.gradle.org/t/workaround-for-input-list-string-args-is-not-serializable/17472/2 "2016-05-07T10:02:15Z")

</div>

I cannot reproduce the serialisation problem with Gradle 2.13, so not sure what is happening on your side.

I would however like to mention that idiomatic-wise it is usually better to have annotations on getters rather than fields. See slides 9-14 of [http://www.slideshare.net/ysb33r/idiomatic-ggradle-plugin-writing](http://www.slideshare.net/ysb33r/idiomatic-ggradle-plugin-writing).

(This is also described in more detail in the [Idiomatic Gradle](https://leanpub.com/idiomaticgradle) book).

---

<div class="post-metadata">

**Author:** ![Martin\_d\_Anjou](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/martin_d_anjou/32/5248_2.png) [@Martin\_d\_Anjou](https://discuss.gradle.org/u/Martin_d_Anjou)\
**Post date:** [May 7, 2016, 11:28pm UTC](https://discuss.gradle.org/t/workaround-for-input-list-string-args-is-not-serializable/17472/3 "2016-05-07T23:28:51Z")

</div>

Yes, I remember seeing that in the book. In my case, I can reproduce it every time (using Gradle 2.13 also). If I write is as three methods as you explain, the problem goes away.
