Community
Participate
Working Groups
Build ID: M20080911-1700 Steps To Reproduce: As far as I know, make a bean class with: 1. The @Stateless annotation 2. The @LocalBinding annotation 3. The @RemoteBinding annotation More information: http://lhunath.lyndir.com/stuff/remotebinding.png
Please provide more information. Which version of Eclipse are you using ? 4.0 is not out yet Also provide detailed steps to recreate, with a small test program reproducing.
Created attachment 125998 [details] Eclipse Project that exhibits the problem.
I don't know why it put the version on 4.0 - The build ID is in the primary description; this is version 3.4.1
The project requires two dependencies: <classpathentry kind="lib" path="/Users/lhunath/.m2/repository/javaee/javaee-api/5/javaee-api-5.jar"/> <classpathentry kind="lib" path="/Users/lhunath/.m2/repository/org/jboss/jboss-annotations-ejb3/4.2.2.GA/jboss-annotations-ejb3-4.2.2.GA.jar"/> Those are for the annotations used in the project. javaee-api-5.jar provides @Stateless and jboss-annotations-ejb3-4.2.2.GA.jar provides @RemoteBinding. To obtain them; see http://download.java.net/maven/1/javaee/jars/ http://repository.jboss.org/maven2/jboss/jboss-annotations-ejb3/4.2.2.GA/ I'm sure plenty of mirrors can be found on google if those give problems (I just found those by googling a bit)
Somehow the reconciler is dealing with an annotation: import org.jboss.annotation.ejb.RemoteBinding; @RemoteBinding(jndiBinding = RemoteFoo.JNDI_BINDING) public class Foo implements RemoteFoo {} differently than the normal compile/build loop. RemoteBinding.class has a reference to a missing type org.jboss.ejb3.remoting.RemoteProxyFactory that only shows up in the editor and not after a build.
The referenced annotation type org.jboss.ejb3.remoting.RemoteProxyFactory has a method factory() with a default value of the missing type : AnnotationMethodInfo{public factory()Ljava/lang/Class;} default Lorg/jboss/ejb3/remoting/RemoteProxyFactory;.class The normal compilation loop does not need/resolve annotations but the editor/reconciler do, where we are resolving the defaultValue as soon as create the method factory().
The testcase is: import org.jboss.annotation.ejb.RemoteBinding; import javax.ejb.Remote; @RemoteBinding(jndiBinding = RemoteFoo.JNDI_BINDING) class Foo implements RemoteFoo {} @Remote interface RemoteFoo { public static final String JNDI_BINDING = ""; } with the 2 jars from comment #4
Created attachment 128599 [details] Proposed patch This patch delays resolving the defaultValue of an annotation in a binary method until its requested
Fix released for 3.5M7 To verify, add this to an editor in a project with the 2 jars from comment #4: import org.jboss.annotation.ejb.RemoteBinding; import javax.ejb.Remote; @RemoteBinding(jndiBinding = RemoteFoo.JNDI_BINDING) class Foo implements RemoteFoo {} @Remote interface RemoteFoo { public static final String JNDI_BINDING = ""; } Without the patch, a missing type error should appear in the editor but no error should appear with the patch.
Verified for 3.5M7 using build I20090426-2000