Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

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

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

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:18 Changed 10 years ago by jamoore

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.74602 sec.)

We're Hiring!