Task #11586 (closed)
Opened 6 years ago
Closed 6 years ago
Bug: Javadoc problems with Ice 3.5.1
| Reported by: | spli | Owned by: | rleigh |
|---|---|---|---|
| Priority: | blocker | Milestone: | 5.0.0-rc1 |
| Component: | General | Version: | 4.4.9 |
| Keywords: | n.a. | Cc: | omero-team@… |
| Resources: | n.a. | Referenced By: | n.a. |
| References: | n.a. | Remaining Time: | n.a. |
| Sprint: | n.a. |
Description
As discussed over the past few days building with Ice 3.5.1 including the Ice 3.5.1. jars PR appears to break the javadoc build for unknown reasons. We can discuss it here instead of in the standup notes.
With Ice 3.5.1 and Ice 3.5.0:
./build.py build-default test-compile
./build.py release-javadoc
...
Constructing Javadoc information...
/opt/hudson/workspace/OMERO-merge-develop-ice35/src/lib/repository/org.springframework.beans-sources-3.0.1.RELEASE-A.jar(org/springframework/beans/factory/support/DefaultListableBeanFactory.java):39: error: package javax.inject does not exist
import javax.inject.Provider;
^
/opt/hudson/workspace/OMERO-merge-develop-ice35/src/components/blitz/src/omero/client.java:764: error: cannot access RouterPrx
public static Glacier2.RouterPrx getRouter(Ice.Communicator comm) {
^
bad source file: /opt/hudson/workspace/OMERO-merge-develop-ice35/src/lib/cache/omero/omero_client/jars/omero_client-5.0.0-beta1-1073-ee2ba20-dirty-ice35-b122.jar(Glacier2/RouterPrx.java)
file does not contain class Glacier2.RouterPrx
Please remove or make sure it appears in the correct subdirectory of the sourcepath.
2 errors
BUILD FAILED
/opt/hudson/workspace/OMERO-merge-develop-ice35/src/build.xml:685: Javadoc returned 1
This occurs with OpenJDK java-1.7.0-openjdk-1.7.0.5-2.2.1.el6_3 and with Oracle jdk1.7.0_45.
Change History (18)
comment:1 Changed 6 years ago by spli
comment:2 Changed 6 years ago by spli
For the avoidance of any doubt the 3.5.1 javadoc error also occurs in a local linux build, so isn't specific to the Hudson environment.
comment:3 Changed 6 years ago by jamoore
- Milestone changed from Unscheduled to 5.0.0-beta2
- Priority changed from major to blocker
comment:4 Changed 6 years ago by spli
./build.py -verbose release-javadoc
Comparing the -classpath argument passed to javadoc the differences are
- openmicroscopy/lib/cache/ome/bio-formats/jars/*-ice34.jar vs openmicroscopy/lib/cache/ome/bio-formats/jars/*-ice35.jar
- Different jars under openmicroscopy/lib/cache/zeroc/:
- ice-db/jars/ice-db-3.4.2.jar
- ice-freeze/jars/ice-freeze-3.4.2.jar
- ice-glacier2/jars/ice-3.4.2.jar
- ice-grid/jars/ice-3.4.2.jar
- ice-storm/jars/ice-3.4.2.jar
- ice/jars/ice-3.4.2.jar
- vs
- ice-db/jars/ice-db-3.5.1.jar
- ice-freeze/jars/ice-freeze-3.5.1.jar
- ice-glacier2/jars/ice-glacier2-3.5.1.jar
- ice-grid/jars/ice-grid-3.5.1.jar
- ice-storm/jars/ice-storm-3.5.1.jar
- ice/jars/ice-3.5.1.jar
comment:5 Changed 6 years ago by jamoore
Marking #11082 as a duplicate.
comment:6 Changed 6 years ago by jamoore
- Summary changed from Javadoc problems with Ice 3.5.1 to Bug: Javadoc problems with Ice 3.5.1
comment:7 Changed 6 years ago by spli
Might be worth trying with the latest OpenJDK 1.7.0_45 when it's released.
comment:8 Changed 6 years ago by jburel
Referencing ticket #11609 has changed sprint.
comment:9 Changed 6 years ago by jamoore
- Owner set to rleigh
As discussed, difference introduced seems to be the missing ice-gridgui jar. Roger is attempting to exclude the omero_client.jar from the javadoc task to see if that will correct it.
comment:10 Changed 6 years ago by rleigh
This is completely unrelated to icegridgui as far as I can tell. It builds with ice 3.5.0 jars with icegridgui removed (current develop).
I can't reproduce this with Debian (unstable) or Ubuntu (13.10). Both with OpenJDK7 and the ice 3.5.1 jars.
comment:11 Changed 6 years ago by jamoore
So where and under what conditions is this reproducible? And has the <exclude> in build.xml been attempted there?
comment:12 Changed 6 years ago by rleigh
It's certainly reproducible on CentOS. I have been attempting to try <exclude> but I'm being frustrated by the broken user permissions on gretzky35, which currently prevents me accessing my own files...
comment:13 Changed 6 years ago by rleigh
The following patch makes the build go a bit further, but fails with a slew of other errors. This excludes the entire content of lib/cache. Not being at all expert with the javadoc stuff, I have no idea what the actual requirements should be to make the build work; if lib/cache is excluded, should other stuff be included instead?
diff --git a/build.xml b/build.xml
index 4a80b9a..59150f6 100644
--- a/build.xml
+++ b/build.xml
@@ -657,6 +657,7 @@ To get started using Eclipse, execute "./build.py build-dev" and import the top-
<include name="**/*.jar"/>
<exclude name="repository/omero/**"/>
<exclude name="repository/omero-tools/**"/>
+ <exclude name="cache/**"/>
</fileset>
</classpath>
comment:14 Changed 6 years ago by rleigh
Note that the original error:
bad source file: /opt/hudson/workspace/OMERO-merge-develop-ice35/src/lib/cache/omero/omero_client/jars/omero_client-5.0.0-beta1-1073-ee2ba20-dirty-ice35-b122.jar(Glacier2/RouterPrx.java)
file does not contain class Glacier2.RouterPrx
appears to be bogus. The referenced jar file does contain both Glacier2/RouterPrx.java and Glacier2/RouterPrx.class, and the java file does have the correct content.
The other error (import javax.inject.Provider;) appears to be bogus since it also occurs for succeeding builds.
comment:15 Changed 6 years ago by rleigh
https://vaadin.com/forum#!/thread/859533
http://forums.gradle.org/gradle/topics/javadoc_generation_failed_with_vaadin_dependency
http://jira.icesoft.org/browse/PUSH-254
Looks like this is just to the jars containing both .class and .java files. The middle link above suggests this might be worked around by setting the sourcepath to "" to disable its use. I've tried
diff --git a/build.xml b/build.xml
index 4a80b9a..29e864d 100644
--- a/build.xml
+++ b/build.xml
@@ -650,7 +650,8 @@ To get started using Eclipse, execute "./build.py build-dev" and import the top-
docencoding="UTF-8"
windowtitle="OMERO (OME Remote Objects) Server"
overview="target/docs/overview.html"
- stylesheetfile="docs/javadocsstyle.css">
+ stylesheetfile="docs/javadocsstyle.css"
+ sourcepath="">
<classpath>
<fileset dir="lib">
but to no effect.
It looks like the specific issue here is the behaviour of the jdk 1.7 javadoc with jars containing sources. Any ideas about how we might get this working correctly?
comment:16 Changed 6 years ago by jamoore
Did you try filtering out just omero_client.jar rather than all of cache? Adding this on gretzky35 let's the job run to completion:
bash-4.1$ git diff build.xml
diff --git a/build.xml b/build.xml
index d85319e..15aa1dc 100644
--- a/build.xml
+++ b/build.xml
@@ -699,6 +699,7 @@ To get started using Eclipse, execute "./build.py build-dev" and import the top-
<include name="**/*.jar"/>
<exclude name="repository/omero/**"/>
<exclude name="repository/omero-tools/**"/>
+<exclude name="cache/omero/omero_client/jars/**"/>
</fileset>
</classpath>
comment:17 Changed 6 years ago by rleigh
https://github.com/openmicroscopy/openmicroscopy/pull/1712#issuecomment-28469624 contains the above patch.
comment:18 Changed 6 years ago by jamoore
- Resolution set to fixed
- Status changed from new to closed
You likely meant https://github.com/rleigh-dundee/openmicroscopy/commit/49daf2725ed1656d3ec3af7c88979b0887d7c42c
Thanks for applying that, Roger!
Strangely when building with Ice 3.4.2 (but with the 3.5.1 jar PR merged), OpenJDK 7, the same javadoc error occurs but it is ignored:
Constructing Javadoc information... /homes/spli/builds/openmicroscopy/lib/repository/org.springframework.beans-sources-3.0.1.RELEASE-A.jar(org/springframework/beans/factory/support/DefaultListableBeanFactory.java):39: error: package javax.inject does not exist import javax.inject.Provider; ^ /homes/spli/builds/openmicroscopy/lib/repository/org.springframework.core-sources-3.0.1.RELEASE-A.jar(org/springframework/core/io/AbstractFileResolvingResource.java):24: error: package org.jboss.virtual does not exist import org.jboss.virtual.VFS; ^ /homes/spli/builds/openmicroscopy/lib/repository/org.springframework.beans-sources-3.0.1.RELEASE-A.jar(org/springframework/beans/factory/support/DefaultListableBeanFactory.java):1003: error: cannot find symbol private class DependencyProvider extends DependencyObjectFactory implements Provider { ^ symbol: class Provider location: class DefaultListableBeanFactory /homes/spli/builds/openmicroscopy/lib/repository/org.springframework.core-sources-3.0.1.RELEASE-A.jar(org/springframework/core/io/support/PathMatchingResourcePatternResolver.java):35: error: package org.jboss.virtual does not exist import org.jboss.virtual.VFS; ^ /homes/spli/builds/openmicroscopy/lib/repository/org.springframework.core-sources-3.0.1.RELEASE-A.jar(org/springframework/core/io/support/PathMatchingResourcePatternResolver.java):36: error: package org.jboss.virtual does not exist import org.jboss.virtual.VirtualFile; ^ ... Building index for all classes... Generating /homes/spli/builds/openmicroscopy/dist/docs/api/help-doc.html... 1277 warnings BUILD SUCCESSFUL