Bug 49879 - java.lang.ClassCastException (SourceTypeBinding to a BinaryTypeBinding) in 30M6 within jdt.core.dom.TypeBinding.getKey(TypeBinding.java:411)
Summary: java.lang.ClassCastException (SourceTypeBinding to a BinaryTypeBinding) in 3...
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.0 M8   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-12 15:57 EST by Timothy Halloran CLA
Modified: 2004-03-25 05:46 EST (History)
1 user (show)

See Also:


Attachments
Project to demonstrate bug (6.77 KB, application/octet-stream)
2004-01-13 11:59 EST, Edwin Chan CLA
no flags Details
2nd try at a project to demo the bug (6.93 KB, application/x-zip-compressed)
2004-01-30 14:43 EST, Edwin Chan CLA
no flags Details
Project to put in the run-time workspace (254.56 KB, application/x-zip-compressed)
2004-01-30 14:44 EST, Edwin Chan CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Timothy Halloran CLA 2004-01-12 15:57:09 EST
Problem: Getting a java.lang.ClassCastException (SourceTypeBinding to a
BinaryTypeBinding) in 30M6 within
jdt.core.dom.TypeBinding.getKey(TypeBinding.java:411)

Upgrading from M4 to M6 (we skipped M5 :-) we are noting a problem related to
the changes to getKey and BinaryTypeBindings.  Not sure what is going on here. 
We speculate that this is related to the change in getKey where the type is
checked to see if it is a local type (inner and anonymous classes) -- we think
*maybe* it should be checking if it is an anonymous typebecause inner classes
can appear within binary types.  We are basing this idea on a comment in the new
code.

Jan 9, 2004 9:09:21 PM edu.cmu.cs.fluid.mvc.version.ModificationManagerImpl
executeAtomically
SEVERE: Exception from Runnable
java.lang.ClassCastException:
org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding
	at org.eclipse.jdt.core.dom.TypeBinding.getKey(TypeBinding.java:411)
	at org.eclipse.jdt.core.dom.MethodBinding.getKey(MethodBinding.java:170)
	at edu.cmu.cs.fluid.eclipse.adapter.Binding.genKey(Binding.java:375)
(and so on in our code...)
Comment 1 Philipe Mulet CLA 2004-01-13 05:25:51 EST
Can you provide steps to reproduce ?
Comment 2 Olivier Thomann CLA 2004-01-13 09:20:48 EST
I will investigate as soon as I have steps to reproduce.
Comment 3 Timothy Halloran CLA 2004-01-13 11:42:26 EST
Olivier & Philippe:  Edwin Chan (chance@cs...) is working on it now.  Sadly, our
110 kSLOC research analysis system attached to jdt.core ( For info see
http://www.fluid.cs.cmu.edu ) was looking at Log4j (25 kSLOC), so pulling out an
example is a bit of work :-)  We will post it as soon as possible.
Comment 4 Edwin Chan CLA 2004-01-13 11:59:37 EST
Created attachment 7411 [details]
Project to demonstrate bug

I've attached a plug-in project that should demonstrate the bug when you run
the run-time workbench.  It does however require that the run-time workspace
have at least one Java project to work properly.
Comment 5 Olivier Thomann CLA 2004-01-13 17:57:36 EST
I will investigate it using your test case.
Thanks for producing one.
Comment 6 Olivier Thomann CLA 2004-01-16 13:26:07 EST
What do you need in your java project to reproduce the problem?

I get this:
Initialized.
Found P
Found A.java in 
Key = java.lang/Object
Key = java.lang/Object
No compilation units in 'com.sun.swing.internal.
No compilation units in 'com.sun.corba.se.internal.orbutil.
No compilation units in 'javax.swing.undo.
No compilation units in 'javax.imageio.plugins.
No compilation units in 'com.sun.java.swing.plaf.
No compilation units in 'com.sun.corba.se.interceptor.
No compilation units in 'com.sun.imageio.plugins.
No compilation units in 'com.sun.corba.se.extension.
No compilation units in 'com.sun.corba.se.ActivationIDL.
No compilation units in 'com.sun.jndi.toolkit.url.
No compilation units in 'javax.naming.
No compilation units in 'com.sun.org.
No compilation units in 'org.apache.xml.dtm.
No compilation units in 'javax.swing.plaf.multi.
No compilation units in 'org.w3c.
No compilation units in 'java.nio.channels.
No compilation units in 'sun.security.tools.
No compilation units in 'com.sun.corba.se.ActivationIDL.LocatorPackage.
No compilation units in 'org.apache.crimson.util.
No compilation units in 'javax.transaction.xa.
No compilation units in 'java.lang.reflect.
No compilation units in 'com.sun.corba.se.org.omg.CORBA.
No compilation units in 'sun.security.provider.
No compilation units in 'org.apache.xalan.serialize.
No compilation units in 'org.apache.xalan.res.
No compilation units in 'sun.awt.im.
No compilation units in 'org.apache.xpath.operations.
No compilation units in 'sun.security.jgss.
No compilation units in 'sun.net.www.protocol.gopher.
No compilation units in 'org.omg.stub.java.rmi.
No compilation units in 'org.apache.xml.utils.res.
No compilation units in 'java.beans.beancontext.
No compilation units in 'com.sun.corba.se.internal.PCosNaming.
No compilation units in 'sunw.io.
No compilation units in 'com.sun.corba.se.internal.DynamicAny.
No compilation units in 'com.sun.jndi.ldap.pool.
No compilation units in 'sun.net.spi.
No compilation units in 'java.awt.peer.
No compilation units in 'javax.rmi.CORBA.
No compilation units in 'sun.awt.print.resources.
No compilation units in 'org.apache.xml.utils.synthetic.
No compilation units in 'sun.beans.
No compilation units in 'sun.dc.
No compilation units in 'sun.net.www.protocol.http.
No compilation units in 'sun.print.
No compilation units in 'sun.tools.
No compilation units in 'sun.security.krb5.internal.rcache.
No compilation units in 'org.omg.CORBA_2_3.
No compilation units in 'com.sun.jndi.url.iiopname.
No compilation units in 'java.awt.geom.
No compilation units in 'com.sun.java.swing.plaf.windows.
No compilation units in 'org.apache.xpath.compiler.
No compilation units in 'sun.awt.datatransfer.
No compilation units in 'javax.swing.text.html.
No compilation units in 'com.sun.security.auth.module.
No compilation units in 'com.sun.jndi.dns.
No compilation units in 'org.
No compilation units in 'javax.swing.plaf.metal.
No compilation units in 'javax.swing.colorchooser.
No compilation units in 'org.omg.IOP.CodecFactoryPackage.
No compilation units in 'sun.net.www.protocol.mailto.
No compilation units in 'java.awt.datatransfer.
No compilation units in 'org.apache.xalan.processor.
No compilation units in 'sun.applet.
No compilation units in 'java.util.prefs.
No compilation units in 'org.apache.xalan.
No compilation units in 'org.omg.CosNaming.
No compilation units in 'javax.security.auth.x500.
No compilation units in 'javax.swing.border.
No compilation units in 'org.omg.CORBA.
No compilation units in 'org.omg.IOP.
No compilation units in 'org.omg.CosNaming.NamingContextExtPackage.
No compilation units in 'com.sun.swing.internal.plaf.basic.
No compilation units in 'sun.
No compilation units in 'org.omg.CORBA.DynAnyPackage.
No compilation units in 'java.applet.
No compilation units in 'com.sun.security.auth.
No compilation units in 'javax.naming.directory.
No compilation units in 'sun.rmi.transport.tcp.
No compilation units in 'com.sun.corba.se.ActivationIDL.RepositoryPackage.
No compilation units in 'com.sun.jndi.ldap.
No compilation units in 'org.apache.crimson.tree.resources.
No compilation units in 'sun.security.
No compilation units in 'sun.dc.pr.
No compilation units in 'java.nio.charset.spi.
No compilation units in 'javax.sound.midi.spi.
No compilation units in 'com.sun.
No compilation units in 'sun.dc.path.
No compilation units in 'com.sun.corba.se.internal.
No compilation units in 'javax.transaction.
No compilation units in 'com.sun.image.codec.jpeg.
No compilation units in 'org.apache.xalan.trace.
No compilation units in 'com.sun.corba.se.internal.iiop.messages.
No compilation units in 'org.omg.IOP.CodecPackage.
No compilation units in 'org.omg.SendingContext.
No compilation units in 'com.sun.java.swing.plaf.motif.resources.
No compilation units in 'sun.java2d.
No compilation units in 'com.sun.corba.se.internal.core.
No compilation units in 'sun.rmi.server.
No compilation units in 'com.sun.corba.
No compilation units in 'com.sun.org.omg.CORBA.portable.
No compilation units in 'sun.audio.
No compilation units in 'javax.naming.event.
No compilation units in 'com.sun.java.
No compilation units in 'org.apache.xml.utils.synthetic.reflection.
No compilation units in 'sun.awt.geom.
No compilation units in 'org.omg.PortableServer.ServantLocatorPackage.
No compilation units in 'sun.io.
No compilation units in 'sun.net.www.protocol.jar.
No compilation units in 'javax.swing.plaf.
No compilation units in 'javax.accessibility.
No compilation units in '.
No compilation units in 'com.sun.accessibility.internal.
No compilation units in 'javax.sound.sampled.
No compilation units in 'com.sun.image.
No compilation units in 'sun.text.
No compilation units in 'org.omg.PortableServer.POAManagerPackage.
No compilation units in 'java.sql.
No compilation units in 'org.apache.xpath.patterns.
No compilation units in 'javax.imageio.plugins.jpeg.
No compilation units in 'sun.rmi.transport.
No compilation units in 'javax.xml.parsers.
No compilation units in 'org.ietf.jgss.
No compilation units in 'javax.xml.transform.stream.
No compilation units in 'org.w3c.dom.stylesheets.
No compilation units in 'com.sun.corba.se.internal.ior.
No compilation units in 'sun.jdbc.odbc.ee.
No compilation units in 'sun.net.www.content.text.
No compilation units in 'com.sun.corba.se.internal.orbutil.resources.
No compilation units in 'com.sun.security.
No compilation units in 'sun.net.www.protocol.doc.
No compilation units in 'com.sun.jndi.rmi.
No compilation units in 'sun.security.krb5.internal.util.
No compilation units in 'com.sun.swing.internal.plaf.metal.resources.
No compilation units in 'sun.net.www.content.image.
No compilation units in 'org.omg.PortableInterceptor.ORBInitInfoPackage.
No compilation units in 'javax.security.auth.kerberos.
No compilation units in 'com.sun.accessibility.
No compilation units in 'java.awt.print.
No compilation units in 'com.sun.naming.internal.
No compilation units in 'com.sun.java.browser.dom.
No compilation units in 'com.sun.org.omg.
No compilation units in 'javax.security.auth.callback.
No compilation units in 'java.util.logging.
No compilation units in 'org.apache.xml.
No compilation units in 'com.sun.jndi.toolkit.dir.
No compilation units in 'sun.java2d.pipe.
No compilation units in 'java.
No compilation units in 'org.omg.PortableInterceptor.
No compilation units in 'org.omg.Messaging.
No compilation units in 'sun.beans.editors.
No compilation units in 'javax.swing.text.html.icons.
No compilation units in 'javax.swing.plaf.basic.
No compilation units in 'org.apache.xalan.transformer.
No compilation units in 'com.sun.swing.internal.plaf.metal.
No compilation units in 'org.omg.CORBA_2_3.portable.
No compilation units in 'sun.net.www.protocol.netdoc.
No compilation units in 'sun.rmi.
No compilation units in 'javax.swing.plaf.metal.icons.
No compilation units in 'javax.xml.transform.
No compilation units in 'sun.awt.dnd.
No compilation units in 'com.sun.security.auth.callback.
No compilation units in 'javax.imageio.event.
No compilation units in 'javax.sound.midi.
No compilation units in 'java.awt.im.spi.
No compilation units in 'sun.util.logging.resources.
No compilation units in 'org.apache.xpath.
No compilation units in 'com.sun.imageio.plugins.png.
No compilation units in 'META-INF.
No compilation units in 'com.sun.media.
No compilation units in 'org.apache.crimson.jaxp.
No compilation units in 'sun.awt.resources.
No compilation units in 'sun.security.util.
No compilation units in 'com.sun.java.browser.
No compilation units in 'com.sun.java.swing.plaf.motif.
No compilation units in 'org.apache.xalan.client.
No compilation units in 'org.ietf.
No compilation units in 'javax.print.attribute.
No compilation units in 'org.xml.
No compilation units in 'sun.print.resources.
No compilation units in 'sun.rmi.rmid.
No compilation units in 'com.sun.media.sound.
No compilation units in 'sun.net.www.protocol.systemresource.
No compilation units in 'org.omg.CosNaming.NamingContextPackage.
No compilation units in 'org.omg.DynamicAny.
No compilation units in 'com.sun.corba.se.org.omg.
No compilation units in 'sunw.util.
No compilation units in 'org.omg.DynamicAny.DynAnyPackage.
No compilation units in 'java.security.
No compilation units in 'com.sun.org.omg.SendingContext.CodeBasePackage.
No compilation units in 'org.xml.sax.
No compilation units in 'javax.imageio.
No compilation units in 'com.sun.java.swing.plaf.motif.icons.
No compilation units in 'com.sun.corba.se.internal.corba.
No compilation units in 'javax.imageio.stream.
No compilation units in 'javax.swing.text.html.parser.
No compilation units in 'org.apache.
No compilation units in 'java.io.
No compilation units in 'javax.rmi.
No compilation units in 'com.sun.corba.se.internal.javax.rmi.CORBA.
No compilation units in 'org.apache.crimson.tree.
No compilation units in 'sun.security.acl.
No compilation units in 'com.sun.naming.
No compilation units in 'java.lang.
No compilation units in 'java.net.
No compilation units in 'sun.awt.print.
No compilation units in 'com.sun.jndi.toolkit.
No compilation units in 'com.sun.jndi.rmi.registry.
No compilation units in 'java.nio.charset.
No compilation units in 'java.rmi.
No compilation units in 'sun.util.
No compilation units in 'org.apache.xpath.res.
No compilation units in 'javax.print.attribute.standard.
No compilation units in 'sun.security.x509.
No compilation units in 'sun.security.krb5.internal.ccache.
No compilation units in 'org.apache.xalan.xslt.
No compilation units in 'java.awt.
No compilation units in 'com.sun.image.codec.
No compilation units in 'sun.java2d.loops.
No compilation units in 'javax.
No compilation units in 'com.sun.imageio.plugins.common.
No compilation units in 'javax.swing.event.
No compilation units in 'org.apache.xml.utils.
No compilation units in 'org.xml.sax.ext.
No compilation units in 'com.sun.java.swing.
No compilation units in 'com.sun.org.omg.CORBA.ValueDefPackage.
No compilation units in 'java.security.interfaces.
No compilation units in 'com.sun.accessibility.internal.resources.
No compilation units in 'sun.rmi.registry.resources.
No compilation units in 'com.sun.swing.internal.plaf.basic.resources.
No compilation units in 'sun.misc.
No compilation units in 'org.omg.PortableServer.portable.
No compilation units in 'sun.net.
No compilation units in 'com.sun.corba.se.internal.Interceptors.
No compilation units in 'sun.nio.cs.
No compilation units in 'com.sun.imageio.
No compilation units in 'com.sun.java.browser.net.
No compilation units in 'sun.jdbc.
No compilation units in 'sun.awt.
No compilation units in 'com.sun.security.jgss.
No compilation units in 'com.
No compilation units in 'java.rmi.registry.
No compilation units in 'org.omg.DynamicAny.DynAnyFactoryPackage.
No compilation units in 'java.security.spec.
No compilation units in 'javax.swing.text.rtf.charsets.
No compilation units in 'org.omg.CORBA.portable.
No compilation units in 'com.sun.corba.se.
No compilation units in 'org.w3c.dom.traversal.
No compilation units in 'sun.awt.image.
No compilation units in 'javax.print.event.
No compilation units in 'com.sun.java.swing.plaf.windows.icons.
No compilation units in 'org.omg.PortableServer.
No compilation units in 'com.sun.corba.se.internal.javax.rmi.
No compilation units in 'javax.sound.sampled.spi.
No compilation units in 'com.sun.jndi.cosnaming.
No compilation units in 'org.w3c.dom.css.
No compilation units in 'java.awt.dnd.peer.
No compilation units in 'javax.swing.
No compilation units in 'java.awt.font.
No compilation units in 'com.sun.corba.se.ActivationIDL.InitialNameServicePackage.
No compilation units in 'org.w3c.dom.html.
No compilation units in 'java.beans.
No compilation units in 'com.sun.rmi.
No compilation units in 'org.apache.xml.dtm.ref.dom2dtm.
No compilation units in 'sun.security.pkcs.
No compilation units in 'com.sun.corba.se.internal.util.
No compilation units in 'java.awt.image.renderable.
No compilation units in 'com.sun.imageio.spi.
No compilation units in 'sun.net.spi.nameservice.
No compilation units in 'com.sun.jndi.url.
No compilation units in 'sun.net.www.content.
No compilation units in 'com.sun.imageio.plugins.jpeg.
No compilation units in 'com.sun.corba.se.internal.Activation.
No compilation units in 'META-INF.services.
No compilation units in 'javax.swing.tree.
No compilation units in 'sun.security.jgss.spi.
No compilation units in 'com.sun.jndi.url.dns.
No compilation units in 'sun.applet.resources.
No compilation units in 'com.sun.corba.se.connection.
No compilation units in 'org.apache.xpath.objects.
No compilation units in 'sun.nio.
No compilation units in 'java.awt.image.
No compilation units in 'sun.net.www.protocol.file.
No compilation units in 'org.apache.xalan.lib.sql.
No compilation units in 'sun.net.ftp.
No compilation units in 'org.w3c.dom.
No compilation units in 'javax.xml.
No compilation units in 'sun.awt.font.
No compilation units in 'sun.text.resources.
No compilation units in 'org.omg.
No compilation units in 'javax.swing.filechooser.
No compilation units in 'javax.swing.text.rtf.
No compilation units in 'sun.net.www.protocol.verbatim.
No compilation units in 'sun.net.www.protocol.ftp.
No compilation units in 'com.sun.org.omg.SendingContext.
No compilation units in 'com.sun.java.swing.plaf.windows.resources.
No compilation units in 'com.sun.corba.se.internal.CosNaming.
No compilation units in 'sun.net.smtp.
No compilation units in 'sun.util.logging.
No compilation units in 'java.rmi.activation.
No compilation units in 'java.text.
No compilation units in 'sun.rmi.runtime.
No compilation units in 'org.w3c.dom.events.
No compilation units in 'javax.naming.spi.
No compilation units in 'java.lang.ref.
No compilation units in 'sun.tools.jar.
No compilation units in 'javax.imageio.spi.
No compilation units in 'com.sun.corba.se.org.
No compilation units in 'com.sun.corba.se.internal.iiop.
No compilation units in 'org.apache.crimson.parser.resources.
No compilation units in 'sun.rmi.log.
No compilation units in 'org.apache.crimson.
No compilation units in 'com.sun.jndi.toolkit.ctx.
No compilation units in 'sun.security.krb5.internal.
No compilation units in 'org.apache.xpath.axes.
No compilation units in 'java.awt.color.
No compilation units in 'sun.jdbc.odbc.
No compilation units in 'java.security.acl.
No compilation units in 'java.rmi.dgc.
No compilation units in 'com.sun.swing.internal.plaf.
No compilation units in 'com.sun.jndi.url.rmi.
No compilation units in 'sun.util.calendar.
No compilation units in 'java.security.cert.
No compilation units in 'org.xml.sax.helpers.
No compilation units in 'sun.tools.jar.resources.
No compilation units in 'javax.security.auth.
No compilation units in 'java.rmi.server.
No compilation units in 'org.apache.xalan.extensions.
No compilation units in 'sun.security.jgss.krb5.
No compilation units in 'sun.security.krb5.internal.tools.
No compilation units in 'javax.security.auth.login.
No compilation units in 'sun.security.krb5.internal.ktab.
No compilation units in 'java.util.
No compilation units in 'sun.security.krb5.
No compilation units in 'org.apache.xalan.templates.
No compilation units in 'com.sun.swing.
No compilation units in 'org.omg.CORBA.ORBPackage.
No compilation units in 'javax.swing.text.
No compilation units in 'com.sun.corba.se.internal.javax.
No compilation units in 'org.w3c.dom.views.
No compilation units in 'org.omg.CORBA.TypeCodePackage.
No compilation units in 'sun.awt.image.codec.
No compilation units in 'sun.net.www.http.
No compilation units in 'javax.xml.transform.dom.
No compilation units in 'javax.naming.ldap.
No compilation units in 'sun.nio.ch.
No compilation units in 'com.sun.security.auth.login.
No compilation units in 'com.sun.jndi.url.iiop.
No compilation units in 'java.nio.
No compilation units in 'sun.tools.util.
No compilation units in 'org.apache.xml.dtm.ref.
No compilation units in 'org.apache.xpath.functions.
No compilation units in 'org.omg.PortableServer.POAPackage.
No compilation units in 'sun.security.krb5.internal.crypto.
No compilation units in 'javax.print.
No compilation units in 'java.nio.channels.spi.
No compilation units in 'com.sun.org.omg.CORBA.
No compilation units in 'com.sun.imageio.plugins.gif.
No compilation units in 'sun.beans.infos.
No compilation units in 'javax.security.auth.spi.
No compilation units in 'org.omg.Dynamic.
No compilation units in 'com.sun.jndi.url.corbaname.
No compilation units in 'com.sun.jndi.url.ldap.
No compilation units in 'sun.rmi.rmid.resources.
No compilation units in 'java.awt.event.
No compilation units in 'java.awt.dnd.
No compilation units in 'sun.net.www.
No compilation units in 'java.awt.im.
No compilation units in 'sun.security.provider.certpath.
No compilation units in 'javax.sound.
No compilation units in 'sun.reflect.
No compilation units in 'javax.security.
No compilation units in 'java.math.
No compilation units in 'sun.security.action.
No compilation units in 'com.sun.corba.se.internal.io.
No compilation units in 'sun.rmi.transport.proxy.
No compilation units in 'sun.awt.color.
No compilation units in 'javax.swing.table.
No compilation units in 'sun.rmi.registry.
No compilation units in 'javax.sql.
No compilation units in 'javax.imageio.metadata.
No compilation units in 'java.util.zip.
No compilation units in 'org.apache.xalan.lib.
No compilation units in 'java.util.jar.
No compilation units in 'org.apache.crimson.parser.
No compilation units in 'org.omg.PortableServer.CurrentPackage.
No compilation units in 'org.omg.stub.java.
No compilation units in 'org.apache.xml.dtm.ref.sax2dtm.
No compilation units in 'sun.net.dns.
No compilation units in 'java.util.regex.
No compilation units in 'com.sun.rmi.rmid.
No compilation units in 'org.omg.stub.
No compilation units in 'com.sun.jndi.
No compilation units in 'sun.awt.shell.
No compilation units in 'javax.xml.transform.sax.
No compilation units in 'com.sun.corba.se.internal.POA.
No compilation units in 'sun.awt.windows.
No compilation units in 'javax.swing.plaf.metal.sounds.
No compilation units in 'sun.net.www.content.audio.
No compilation units in 'com.sun.jndi.toolkit.corba.
No compilation units in 'sunw.
No compilation units in 'sun.net.www.protocol.
No compilation units in 'com.
No compilation units in 'META-INF.
No compilation units in 'com.sun.
No compilation units in 'com.sun.rsasign.
No compilation units in 'com.sun.rsajca.
No compilation units in '.
No compilation units in 'javax.security.cert.
No compilation units in 'COM.rsa.Intel.
No compilation units in 'com.sun.net.ssl.internal.
No compilation units in 'COM.rsa.
No compilation units in 'com.sun.security.cert.
No compilation units in 'sun.net.
No compilation units in 'com.sun.
No compilation units in 'com.sun.net.
No compilation units in 'com.sun.net.ssl.internal.www.
No compilation units in 'com.sun.net.ssl.internal.www.protocol.https.
No compilation units in 'com.
No compilation units in 'META-INF.
No compilation units in 'com.sun.security.cert.internal.
No compilation units in 'COM.rsa.asn1.
No compilation units in 'com.sun.security.cert.internal.x509.
No compilation units in 'sun.net.www.
No compilation units in 'javax.
No compilation units in 'COM.rsa.jsafe.
No compilation units in 'com.sun.net.ssl.
No compilation units in 'COM.
No compilation units in 'sun.
No compilation units in 'javax.net.
No compilation units in 'com.sun.security.
No compilation units in 'com.sun.net.ssl.internal.ssl.
No compilation units in 'javax.security.
No compilation units in 'com.sun.net.ssl.internal.www.protocol.
No compilation units in 'sun.net.www.protocol.https.
No compilation units in 'javax.net.ssl.
No compilation units in '.
No compilation units in 'sun.net.www.protocol.
No compilation units in 'javax.crypto.interfaces.
No compilation units in 'META-INF.
No compilation units in 'javax.crypto.spec.
No compilation units in 'javax.crypto.
No compilation units in 'javax.
No compilation units in '.
No compilation units in 'META-INF.
No compilation units in 'META-INF.services.
No compilation units in 'sun.
No compilation units in 'sun.io.
No compilation units in 'sun.nio.cs.
No compilation units in 'sun.nio.
No compilation units in 'sun.nio.cs.ext.
No compilation units in '.
No compilation units in 'sun.net.spi.nameservice.dns.
No compilation units in 'sun.net.
No compilation units in 'META-INF.
No compilation units in 'META-INF.services.
No compilation units in 'sun.
No compilation units in 'sun.net.spi.nameservice.
No compilation units in 'sun.net.spi.
No compilation units in '.
No compilation units in 'com.sun.jndi.
No compilation units in 'com.sun.security.sasl.
No compilation units in 'com.sun.security.sasl.preview.
No compilation units in 'com.
No compilation units in 'com.sun.jndi.ldap.ext.
No compilation units in 'META-INF.
No compilation units in 'com.sun.
No compilation units in 'META-INF.services.
No compilation units in 'com.sun.security.sasl.util.
No compilation units in 'com.sun.security.sasl.digest.
No compilation units in 'com.sun.security.
No compilation units in 'com.sun.security.sasl.gsskerb.
No compilation units in 'com.sun.jndi.ldap.sasl.
No compilation units in 'com.sun.jndi.ldap.
No compilation units in '.
No compilation units in 'sun.text.
No compilation units in 'META-INF.
No compilation units in 'sun.
No compilation units in 'sun.text.resources.
No compilation units in '.
No compilation units in 'com.
No compilation units in 'META-INF.
No compilation units in 'com.sun.
No compilation units in 'com.sun.crypto.
No compilation units in 'com.sun.crypto.provider.
No compilation units in '.

I don't have a ClassCastException.
Comment 7 Edwin Chan CLA 2004-01-16 14:55:27 EST
I used the auto-generated 'Hello, World' plug-in project.
Comment 8 Olivier Thomann CLA 2004-01-20 09:05:04 EST
Using the auto-generated Hello World plugin, I get:
Initialized.
Found HelloWorld
No compilation units in '.
Found HelloWorldPlugin.java in HelloWorld
Key = java.lang/Object
Key = java.lang/Object
Found SampleAction.java in HelloWorld.actions
.....

It looks good. I will try to build a test case.
Comment 9 Olivier Thomann CLA 2004-01-20 09:31:53 EST
Your problem seems to be a problem when you have a local type (a type defined
inside a method) as a parameter type of a method.
I don't see how this is doable. Are you iterating inside method bodies?
Comment 10 Olivier Thomann CLA 2004-01-20 09:36:17 EST
What I don't see is how you can get a binary type that is local. A local type is
visible only in its defining method.
If you have a workspace that produces the error, please attach it to the bug
report if it is not too big.
Comment 11 Edwin Chan CLA 2004-01-20 12:36:58 EST
The code that I wrote to demonstrate the bug tries to find java.lang.String, 
which has a private inner class CaseInsensitiveComparator.  It then tries to 
call getKey() on the parameters of the methods (or constructors) of the inner
class.

One part of the problem is that the Java compiler seems to convert this private 
inner class into what looks like an anonymous class (java.lang.String$1 in my 
debugger).  The second part is that even though there are no methods that refer 
to CaseInsensitiveComparator in the source for java.lang.String, there seems to 
be a constructor that refers to it.  This is what I get out of the debugger:

   void <init>(java.lang.String$1) 
Comment 12 Olivier Thomann CLA 2004-01-22 12:34:06 EST
I still cannot reproduce it. Now I get:
Initialized.
Found P
Found C.java in 
private static class java.lang.String$CaseInsensitiveComparator
	extends java.lang.Object
	implements : Unresolved type java.util.Comparator, Unresolved type
java.io.Serializable
	enclosing type : java.lang.String
/*   fields   */
long serialVersionUID
/*   methods   */
void <init>() 
int compare(java.lang.Object, java.lang.Object) 



Key = java.lang/Object
Key = java.lang/Object

I found a bug in the test case. The computeKey was called using 'i' as the index
 and not 'k'.
I understand what you are trying to do. But I cannot reproduce. You should not
be able to get a local class inside the getKey() method. I will try to reproduce
such a case.
Do you get it again using latest integration build?
Comment 13 Edwin Chan CLA 2004-01-23 16:00:27 EST
I downloaded I20040121, and my test code doesn't get the exception anymore 
(also fixing the bug).

However, when I run our system using the same setup, I still get the exception, 
so I'll have to investigate it more.
Comment 14 Olivier Thomann CLA 2004-01-26 09:42:07 EST
I think this is why I cannot reproduce this issue. If you could provide a test
case even if it is not simple, I will investigate.
Comment 15 Philipe Mulet CLA 2004-01-30 10:24:31 EST
Incrementing milestone as no testcase is available.
Comment 16 Edwin Chan CLA 2004-01-30 14:43:38 EST
Created attachment 7664 [details]
2nd try at a project to demo the bug
Comment 17 Edwin Chan CLA 2004-01-30 14:44:34 EST
Created attachment 7665 [details]
Project to put in the run-time workspace
Comment 18 Edwin Chan CLA 2004-01-30 14:45:29 EST
The two new attachments should demo the bug in the latest integration build
(I20040129).
Comment 19 Olivier Thomann CLA 2004-02-16 11:36:21 EST
Reproduced. I am investigating.
Comment 20 Olivier Thomann CLA 2004-02-16 11:53:40 EST
The bug comes from the fact that an anonymous class is returned as a member
class. The cast is fine. An anonymous type should never reach that line.
I am investigating the problem.
Thanks for the reproducable test case. It helped a lot.
Comment 21 Olivier Thomann CLA 2004-02-16 12:17:11 EST
Would you have any idea where I can get the source of the mail.jar that you are
using? Do you know what version it is?
It seems that the compiler used to compile it didn't respect the JVM specs and
this leads to wrong members for the enclosing class javax.mail.Folder. I would
need the source to confirm that this is a problem with the
javax/mail/Folder.class file itself.
Comment 22 Edwin Chan CLA 2004-02-16 12:44:49 EST
We got that jar file as part of jakarta-log4j-1.2.8.

According to the manifest file for that jar, it looks like it's pretty old:

Manifest-Version: 1.0
SCCS-ID: @(#)javamail.mf 1.4 00/09/26
Extension-Name: javax.mail
Specification-Title: JavaMail(TM) API Design Specification
Specification-Version: 1.2
Specification-Vendor: Sun Microsystems, Inc.
Implementation-Version: 1.2
Implementation-Vendor: Sun Microsystems, Inc.
Implementation-Vendor-Id: com.sun
Comment 23 Olivier Thomann CLA 2004-02-16 13:12:50 EST
I can confirm that the .class file doesn't follow the JVM specs. Inside the
javax.mail.Folder there is an anonymous class defined in the terminateQueue()
method. The inner class attribute for this anynomous class is invalid.
I get this:
     inner class info name: #16 javax/mail/Folder$1
      outer class info name: #15 javax/mail/Folder
      inner name: #145 
      accessflags: 18 private final 
Because this is an anonymous class, the inner name index should be 0 instead of
145 and the outer class info name index should also be 0 instead of 15.
The only thing I can do to remove this class from the member types is to test
the length of the inner name. It must not be zero for a member class. In this
case, we have 0. The concern I have is that I add an extra-check to handle an
invalid case.
However it would not be possible to filter out a local class.
Comment 24 Olivier Thomann CLA 2004-02-16 13:25:48 EST
I will release this extra check. It will fix this issue.
Fixed and released in HEAD.
Do you want a patch to test it or is is fine for you to wait for an integration
build? We won't submit code for tomorrow's integration build, so this would be
fixed in the 24th of February integration build.
Comment 25 Olivier Thomann CLA 2004-02-16 14:18:23 EST
JavaMail 1.3.1 seems to have the same bug.
I requested the source to double check it.
Comment 26 Edwin Chan CLA 2004-02-16 19:00:45 EST
We can wait for an integration build.
Comment 27 Jerome Lanneluc CLA 2004-03-24 10:31:08 EST
Cannot verify until bug 55901 is fixed.
Comment 28 Jerome Lanneluc CLA 2004-03-25 05:46:51 EST
Verified in I200403250010.