This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 120091 - Java editor not finding symbols from Glassfish
Summary: Java editor not finding symbols from Glassfish
Status: RESOLVED WORKSFORME
Alias: None
Product: java
Classification: Unclassified
Component: Editor (show other bugs)
Version: 6.x
Hardware: All Windows XP
: P1 blocker (vote)
Assignee: Jan Lahoda
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-10-25 20:06 UTC by rickhoro
Modified: 2008-04-25 12:47 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description rickhoro 2007-10-25 20:06:40 UTC
This report is similar but appears to be somewhat different from #118100

I'm using NB 6.0b2 on WinXP with Java 1.6.0_03, Glassfish V2b58g. Have not tried this on other platforms so I marked
it as Windows XP only.

The Java editor shows "cannot find symbol" errors for classes in J2EE API classes that are referenced from Glassfish.
Errors are displayed for all classes in javax.faces.* and javax.persistence.*, but not for classes in javax.ejb.*.

I'm using JBoss Seam, so some of my session beans use javax.faces directly. These session beans are defined in
the EJB project. I mention that only because I think it might be possible that this was restricted for some
reason, but javax.persistence.* classes of course should be accessible from the ejb project, so this is unlikely.

This also makes "Fix Imports" work incorrectly in some cases because of symbols that are already in import
statements but are not recognized by editor. 

This doesn't affect the compiler -- the project compiles correctly.

If it will help, I can work with a developer to debug this problem on my computer. I subscribe to GotoMeeting,
so I can set it up for you to debug it directly on my system. Just let me know.
Comment 1 rickhoro 2007-10-26 14:05:23 UTC
This issue is actually much worse than I first thought and I've upgraded the priority to P1. 
Because all many of the javax.* symbols are not recognized by the Java editor, navigation to the 
classes, searching for the classes, the import helper, and source all do not work. In short, it 
makes it very slow going to do any coding that uses these javax.* classes.
Comment 2 Jan Lahoda 2007-10-26 14:09:56 UTC
I tried to reproduce, but did not succeeded - I tried to create an EJB module with Glassfish set as a server and created
a Java class, and I was able to use javax.persistence and javax.faces classes without problems. Could you please provide
more info about your setup (project types, additional classpath entries, etc.)? Also, please select the Java files in
question in Projects tab, select Properties in the right-click pop-up menu and check the Compile Classpath if it
contains correct jars. Thanks.
Comment 3 rickhoro 2007-10-31 18:12:12 UTC
Hi jlahoda,

I emailed you directly on Oct 26th. Perhaps you didn't get the email for some reason, so I'll post the same here.

The easiest way for you to figure out the problem may be for you to look at in on my computer. I use GotoMeeting, which
provides remote access to my computer and I'd be happy to set up a time for us to work together on this so you can
figure out what is causing it. Let me know if that will work for you.

That said, here's some more information for you. This is an J2EE 5 application (including EJB 3.0 and web modules). Web
module uses JSF, JPA provider is Hibernate 3.2.5. Several other libraries are used, including: Hibernate Annotations,
Hibernate EntityManager, Hibernate Search, Lucene in the EJB module, and DWR, Facelets, Apache CommonsDigester,
CommonsFileUpload, CommonsIO, and CommonsLogging.

Thanks...Rick
Comment 4 Jan Lahoda 2007-10-31 18:19:48 UTC
Sorry, but the GoToMeeting does not seem as a good option to me (I work on Linux). Could you please try to look at the
classpath for the files that show the errors as I wrote in my previous comment? Thanks.
Comment 5 Tomas Zezula 2007-10-31 18:39:18 UTC
Sorry I am not able to reproduce it either.
I've created EJB Module on the top of Glassfish and I see both javax.faces.* and javax.persistence.* in code completion
and no error marks. 
Seems to be problem of the project setup. Is it standard EJB or is it EJB from existing sources?
Can you attach the project or at least the metadata (nbproject) folder,
thanks.
Comment 6 rickhoro 2007-10-31 21:29:04 UTC
Hi Guys..thanks very much for taking this problem on.. I have some updates for you. 

Because of this problem I had dropped back to using NB 5.5.1. (An aside...when I did so, I had to recreate my projects
from scratch to get them to work again in 5.5.1.)

In response to your requests, I restarted NB 6.0beta2. Here's what I found.

The project that I had recreated in 5.5.1 (called "Smash") is showing with only 1 error in the 6.0beta2 editor now. The
error is in a managed JSF bean, "in class file null: unknown enum constant javax.persistence.CascadeType.ALL". The
compile classpath for this class is: 

C:\NetBeansProjects\Smash\Smash-ejb\dist\Smash-ejb.jar;C:\NetBeansProjects\ToolCafeUtil\dist\ToolCafeUtil.jar;C:\install.dsk\dwr-2.0.1\WEB-INF\lib\bsf-2.3.jar;C:\install.dsk\dwr-2.0.1\WEB-INF\lib\bsh-2.0b4.jar;C:\install.dsk\dwr-2.0.1\WEB-INF\lib\commons-logging-1.0.4.jar;C:\install.dsk\dwr-2.0.1\WEB-INF\lib\commons-validator-1.1.4.jar;C:\install.dsk\dwr-2.0.1\WEB-INF\lib\dwr.jar;C:\install.dsk\dwr-2.0.1\WEB-INF\lib\jakarta-oro-2.0.8.jar;C:\install.dsk\dwr-2.0.1\WEB-INF\lib\log4j-1.2.12.jar;C:\install.dsk\facelets\facelets-1.1.13\jsf-facelets.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\commons-beanutils.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\commons-collections.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\commons-digester.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\commons-logging.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\el-api-1.0.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\el-impl-1.0.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\jsf-api-1.2_04-p02.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\jsp-api.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\maven-repository-importer-1.1.jar;C:\install.dsk\facelets\facelets-1.1.13\lib\servlet-api-2.4.jar;C:\install.dsk\jsfSecurityExtensions\dist\jsf-security.jar;C:\install.dsk\apache\commons\commons-digester-1.8\commons-digester-1.8.jar;C:\install.dsk\apache\commons\commons-fileupload-1.1.1\commons-fileupload-1.1.1.jar;C:\install.dsk\apache\commons\commons-io-1.2\commons-io-1.2.jar;C:\install.dsk\apache\commons\commons-logging-1.1\commons-logging-1.1\commons-logging-1.1.jar;C:\install.dsk\apache\commons\commons-logging-1.1\commons-logging-1.1\commons-logging-api-1.1.jar;C:\install.dsk\apache\commons\commons-logging-1.1\commons-logging-1.1\commons-logging-adapters-1.1.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\javaee.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\jsf-impl.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\activation.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\appserv-tags.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\mail.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\appserv-jstl.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\webservices-tools.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\webservices-rt.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\appserv-ws.jar

In my other J2EE project that had been imported from 5.5.1 when I installed NB 6.0beta2, I still see bunches of
J2EE symbol not found errors in the editor. Clean/Rebuild has no effect. These errors are only in the EJB module -- not
in the WAR module. Here's the compile classpath for an example class, Address.java, which is a straightforward entity.

C:\install.dsk\hibernate\hibernate-3.2\hibernate3.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\ant-1.6.5.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\ant-antlr-1.6.5.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\ant-junit-1.6.5.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\ant-launcher-1.6.5.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\ant-swing-1.6.5.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\antlr-2.7.6.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\asm-attrs.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\asm.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\c3p0-0.9.1.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\cglib-2.1.3.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\checkstyle-all.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\cleanimports.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\commons-collections-2.1.1.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\commons-logging-1.0.4.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\concurrent-1.3.2.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\connector.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\dom4j-1.6.1.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\ehcache-1.2.3.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jaas.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jacc-1_0-fr.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\javassist.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jaxen-1.1-beta-7.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jboss-cache.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jboss-common.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jboss-jmx.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jboss-system.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jdbc2_0-stdext.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jgroups-2.2.8.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\jta.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\junit-3.8.1.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\log4j-1.2.11.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\oscache-2.1.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\proxool-0.8.3.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\swarmcache-1.0rc2.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\syndiag2.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\versioncheck.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\xerces-2.6.2.jar;C:\install.dsk\hibernate\hibernate-3.2\lib\xml-apis.jar;C:\install.dsk\hibernate\hibernate-annotations-3.3.0.GA\hibernate-annotations.jar;C:\install.dsk\hibernate\hibernate-annotations-3.3.0.GA\lib\hibernate-commons-annotations.jar;C:\install.dsk\hibernate\hibernate-entitymanager-3.3.1.GA\hibernate-entitymanager.jar;C:\install.dsk\hibernate\hibernate-entitymanager-3.3.1.GA\lib\hibernate-validator.jar;C:\install.dsk\hibernate\hibernate-search-3.0.0.CR1\hibernate-search.jar;C:\install.dsk\ostermillerutil\ostermillerutils_1_06_01.jar;C:\NetBeansProjects\ToolCafeUtil\dist\ToolCafeUtil.jar;C:\install.dsk\dom4j\dom4j-1.6.1\dom4j-1.6.1.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\jboss-seam-ui.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\jboss-seam.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\lib\jboss-cache-jdk50.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\lib\el-api.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\lib\el-ri.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\lib\jsf-facelets.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\lib\thirdparty-all.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\lib\jbpm-3.1.4.jar;C:\install.dsk\seam\jboss-seam-1.2.1.GA\jboss-seam-mail.jar;C:\install.dsk\hibernate\hibernate-search-3.0.0.Beta4\lib\lucene-core-2.2.0.jar;C:\install.dsk\apache\axis\axis-1_4\lib\axis.jar;C:\install.dsk\apache\axis\axis-1_4\lib\commons-httpclient-3.0-rc2.jar;C:\install.dsk\apache\commons\commons-net-1.4.1\commons-net-1.4.1.jar;C:\install.dsk\columba\ristretto-1.0-src\dist\ristretto-20070106-all.jar;C:\install.dsk\jammlibs\jammlibs.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\javaee.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\jsf-impl.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\activation.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\appserv-tags.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\mail.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\appserv-jstl.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\webservices-tools.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\webservices-rt.jar;C:\install.dsk\glassfishv2rc8\glassfish\lib\appserv-ws.jar

So, perhaps there is a problem with the 6.0 code that is used to import J2EE projects from 5.5.1?
Comment 7 rickhoro 2007-11-27 21:59:53 UTC
I really need this problem fixed before you finalize the 6.0 release. NB 6.0 displays hundreds of errors in one of my
projects that uses EJB 3.0, JSF, JBoss Seam and Facelets. Sorry I did not post on this problem recently -- I had to drop
back to NB 5.5.1 because I had to get work done and going back and forth between the releases required a time consuming
step of recreating my projects from scratch and then I was away for Thanksgiving -- just got back and discovered that
you are going FCS. Please see the description from my earlier posts about this problem. If this isn't fixed, I will have
to move to Eclipse -- which I do not want to do -- NB is totally broken for me -- not just a little bug I can work
around. Please fix this. I will make all of my sources and libraries available to you, if necessary.
Comment 8 Jan Lahoda 2007-11-28 12:37:33 UTC
I am afraid it is too late for 6.0 - it is already frozen. Moreover, it is still not clear to me what exactly happens.
Exact steps to reproduce the problem from scratch would be very helpful. Tomas (tzezula) is also working on some patch
with debugging outputs that should give us some pointers on what is happening. Just to be sure: could you please double
check that "C:\install.dsk\glassfishv2rc8\glassfish\lib\javaee.jar" contains what it should contain? This jar has
1115234 bytes in my Glassfish. Thanks.
Comment 9 rickhoro 2007-11-28 15:09:31 UTC
I switched to the Glassfish instance installed by NB 6.0 for the sub-projects in question and the errors disappeared. I
don't know why that would be, but I'm very relieved. I did check the javaee.jar file in my other Glassfish instance. It
contains all the classes that were causing errors with NB 6.0, but it works fine with NB 5.5.1. The byte count is
slightly different from what you said: instead of 1115234, it contains 1115284 bytes. I will need to configure the new
Glassfish instance appropriately before I run the application, but hopefully, my problem has been solved. I'll post back
later today -- need to go do something else now. Thanks.
Comment 10 Tomas Zezula 2007-11-28 16:55:18 UTC
I've added logging into the JavacFileManager, so if you will have this problem you can try to run the IDE containing
this logging. You can download the IDE with logging here:
http://deadlock.netbeans.org/hudson/job/trunk/4615/artifact/nbbuild/dist/zip/. You need to run the IDE with an extra
command line argument: -J-Dorg.netbeans.modules.java.source.parsing.level=300 to enable the logging. The IDE will
generate lots of logging info stored in nbuserdir/var/log/messages.log. It would be good if you just open the java file
which complains about missing javax.persistence.* classes and close the IDE to keep the log file smaller and readable.
Comment 11 Jiri Prox 2008-04-11 00:54:27 UTC
moving opened issues from TM <= 6.1 to TM=Dev
Comment 12 pribyl 2008-04-24 11:24:27 UTC
Well, it seems there is no need of having this issue still incomplete (as it is open for quite long without any activity).

I hope rickhoro really solved this problem succesfully and is no longer experiencing issues with that.
In other case, please reopen with some additional info.

Thanks a lot