On 07/08/2013, at 8:04, Luke Daley <l...@ldaley.com> wrote:

> Are you able to share the exact code? 
> 
> I think I know what this is but need to see the code.

Nevermind, I have enough.

> On 07/08/2013, at 1:51, Xavier Ducrohet <x...@google.com> wrote:
> 
>> I just encountered something very very strange in 1.7.
>> 
>> I rarely run this code, but I ran it on 1.6 with no issue. I'm trying to run 
>> it with 1.7 (to update some of our local prebuilts to update to 1.7) and 
>> it's failing with something that makes no sense.
>> 
>> I have a Groovy class that extends DefaultTask and looks something like this:
>> 
>> class DownloadArtifactsTask extends DefaultTask {
>>   @TaskAction
>>   void something() {
>>     pullArtifact(...);
>>   }
>> 
>>   private void pullArtifact(...) {
>>     try {
>>       downloadFile(...)
>>     } catch (IOException e2) {
>>       // ignore
>>     }
>>   }
>> 
>>   private File downloadFile(...) throws IOException {
>>     if (...) {
>>       throw new IOException(...);
>>     }
>>   }
>> }
>> 
>> 
>> What happens is that when downloadFile throws an IOException, it's not 
>> caught in pullArtifact. I was really confused at first. So I put a catch on 
>> Throwable, and noticed that my original exception was encapsulated in a 
>> GradleException.
>> 
>> Nothing in my code does this obviously. The stack trace looks like this:
>> 
>> org.gradle.api.GradleException: Could not call 
>> DownloadArtifactsTask.downloadFile() on task ':downloadArtifacts'
>>      at org.gradle.util.JavaMethod.invoke(JavaMethod.java:69)
>>      at 
>> org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:295)
>>      at 
>> org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:136)
>>      at 
>> org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
>>      at 
>> com.android.build.gradle.buildsrc.DownloadArtifactsTask_Decorated.invokeMethod(Unknown
>>  Source)
>>      at 
>> org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
>>      at 
>> org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
>>      at 
>> com.android.build.gradle.buildsrc.DownloadArtifactsTask.pullArtifact(DownloadArtifactsTask.groovy:204)
>>         ....
>> Caused by: java.io.FileNotFoundException: http://xxx
>>      at 
>> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1434)
>>      at java.net.URL.openStream(URL.java:1010)
>>      at org.apache.commons.io.FileUtils.copyURLToFile(FileUtils.java:844)
>>      at org.apache.commons.io.FileUtils$copyURLToFile.call(Unknown Source)
>>      at 
>> com.android.build.gradle.buildsrc.DownloadArtifactsTask.downloadFile(DownloadArtifactsTask.groovy:256)
>> 
>> 
>> DownloadArtifactsTask.groovy:204 is where downloadFile() is called.
>> 
>> Anyone has a clue?

Reply via email to