[GRADLE-1268] Can't execute groovydoc if it includes links Created: 22/Dec/10  Updated: 04/Jan/13  Resolved: 28/Dec/10

Status: Resolved
Project: Gradle
Affects Version/s: 0.9
Fix Version/s: 0.9.1

Type: Bug
Reporter: Andres Almiray Assignee: Hans Dockter
Resolution: Fixed Votes: 0


 Description   

The following code works with 0.9-rc-2 but fails in 0.9

task buildDocs(type: Groovydoc) {
    dependsOn { copyDocs }

    source = files("$buildDir/javadoc-src")
    destinationDir = "$buildDir/manual/api" as File
    docTitle = "Griffon $version"
    header = "Griffon $version"
    windowTitle = "Griffon $version"
    groovyClassPath = sourceSets.rt.classes + sourceSets.cli.classes + configurations.compile
    includePrivate = true
    use = true

    link('http://java.sun.com/j2se/1.5.0/docs/api', 'java.,org.xml.,javax.,org.xml.')
    link('http://www.dpml.net/api/ant/1.7.0', 'org.apache.ant.,org.apache.tools.ant.')
    link('http://junit.sourceforge.net/junit3.8.1/javadoc/', 'org.junit.,junit.framework.')
    link('http://groovy.codehaus.org/api/', 'groovy.,org.codehaus.groovy.')
}

The generated exception is

org.gradle.api.UncheckedIOException: Could not read entry ':buildDocs' from cache '/Users/aalmiray/dev/griffon/core/.gradle/0.9/taskArtifacts/cache.bin'.
    at org.gradle.cache.btree.BTreePersistentIndexedCache.get(BTreePersistentIndexedCache.java:125)
    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.getHistory(DefaultTaskArtifactStateRepository.java:314)
    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateRepository$TaskArtifactStateImpl.<init>(DefaultTaskArtifactStateRepository.java:284)
    at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateRepository.getStateFor(DefaultTaskArtifactStateRepository.java:55)
    at org.gradle.api.internal.changedetection.ShortCircuitTaskArtifactStateRepository.getStateFor(ShortCircuitTaskArtifactStateRepository.java:32)
    at org.gradle.api.internal.project.taskfactory.ExecutionShortCircuitTaskExecuter.execute(ExecutionShortCircuitTaskExecuter.java:39)
    at org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExecuter.java:57)
    at org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:32)
    at org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:231)
    at org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:167)
    at org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:160)
    at org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:78)
    at org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameResolvingBuildExecuter.java:113)
    at org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:153)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:107)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:75)
    at org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:41)
    at org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:27)
    at org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:209)
    at org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:193)
    at org.gradle.launcher.Main.execute(Main.java:55)
    at org.gradle.launcher.Main.main(Main.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:46)
    at org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:28)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:24)
Caused by: java.lang.ClassNotFoundException: org.gradle.api.tasks.javadoc.Groovydoc$Link
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    <snip>
    at org.gradle.cache.DefaultSerializer.read(DefaultSerializer.java:23)
    at org.gradle.cache.btree.BTreePersistentIndexedCache$DataBlock.getValue(BTreePersistentIndexedCache.java:647)
    at org.gradle.cache.btree.BTreePersistentIndexedCache.get(BTreePersistentIndexedCache.java:117)
    ... 30 more

Adam replied on the mailing list with

The Groovydoc task changed to include links (and a few other properties) when considering if the output is up-to-date. Looks like using links is breaking the checks.
A workaround is to exclude the links from the up-to-date checking:

groovydoc.inputs.property('links', null)

Generated at Wed Jun 30 11:51:13 CDT 2021 using Jira 8.4.2#804003-sha1:d21414fc212e3af190e92c2d2ac41299b89402cf.