Task #11586 (closed)
Opened 11 years ago
Closed 10 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 11 years ago by spli
comment:2 Changed 11 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 11 years ago by jamoore
- Milestone changed from Unscheduled to 5.0.0-beta2
- Priority changed from major to blocker
comment:4 Changed 11 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 11 years ago by jamoore
Marking #11082 as a duplicate.
comment:6 Changed 11 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 11 years ago by spli
Might be worth trying with the latest OpenJDK 1.7.0_45 when it's released.
comment:8 Changed 10 years ago by jburel
Referencing ticket #11609 has changed sprint.
comment:9 Changed 10 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 10 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 10 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 10 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 10 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 10 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 10 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 10 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 10 years ago by rleigh
https://github.com/openmicroscopy/openmicroscopy/pull/1712#issuecomment-28469624 contains the above patch.
comment:18 Changed 10 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: