Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 345031 - ClassCastException: SourceField/SourceMethod cannot be cast to JavaResourceAbstractType
Summary: ClassCastException: SourceField/SourceMethod cannot be cast to JavaResourceAb...
Status: VERIFIED FIXED
Alias: None
Product: Dali JPA Tools
Classification: WebTools
Component: JAXB (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 3.0.1   Edit
Assignee: Paul Fullbright CLA
QA Contact:
URL:
Whiteboard: fix_ready
Keywords:
Depends on:
Blocks: 348639
  Show dependency tree
 
Reported: 2011-05-06 16:35 EDT by Nan Li CLA
Modified: 2011-08-31 12:49 EDT (History)
2 users (show)

See Also:
neil.hauge: review+


Attachments
3.0.1 proposed patch (2.62 KB, patch)
2011-06-07 12:50 EDT, Paul Fullbright CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nan Li CLA 2011-05-06 16:35:37 EDT
Build Identifier: I20110428-0848

When trying to apply @XmlType to a field, the following CCE would be thrown:

----------------
java.lang.ClassCastException: org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceField cannot be cast to org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType
	at org.eclipse.jpt.jaxb.core.internal.resource.java.XmlTypeAnnotationDefinition.buildAnnotation(XmlTypeAnnotationDefinition.java:47)
	at org.eclipse.jpt.jaxb.core.internal.GenericAnnotationProvider.buildAnnotation(GenericAnnotationProvider.java:84)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement.buildAnnotation(SourceAnnotatedElement.java:219)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement.addOrSyncAnnotation_(SourceAnnotatedElement.java:286)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement.addOrSyncAnnotation(SourceAnnotatedElement.java:266)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement$SynchronizeAnnotationVisitor.visitChildAnnotation(SourceAnnotatedElement.java:437)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement$AnnotationVisitor.visit_(SourceAnnotatedElement.java:394)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement$AnnotationVisitor.visit(SourceAnnotatedElement.java:388)
	at org.eclipse.jdt.core.dom.MarkerAnnotation.accept0(MarkerAnnotation.java:137)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2482)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2553)
	at org.eclipse.jdt.core.dom.FieldDeclaration.accept0(FieldDeclaration.java:284)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2482)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement.syncAnnotations(SourceAnnotatedElement.java:234)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAnnotatedElement.synchronizeWith(SourceAnnotatedElement.java:103)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceMember.synchronizeWith(SourceMember.java:57)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceAttribute.synchronizeWith(SourceAttribute.java:86)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceType.syncFields(SourceType.java:415)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceType.synchronizeWith(SourceType.java:134)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceTypeCompilationUnit.syncType(SourceTypeCompilationUnit.java:116)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceTypeCompilationUnit.synchronizeWith(SourceTypeCompilationUnit.java:68)
	at org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceCompilationUnit.synchronizeWithJavaSource(SourceCompilationUnit.java:156)
	at org.eclipse.jpt.jaxb.core.internal.AbstractJaxbProject.processJavaCompilationUnitDelta(AbstractJaxbProject.java:1125)
	at org.eclipse.jpt.jaxb.core.internal.AbstractJaxbProject.processJavaDelta(AbstractJaxbProject.java:970)
	at org.eclipse.jpt.jaxb.core.internal.AbstractJaxbProject.javaElementChanged(AbstractJaxbProject.java:949)
	at org.eclipse.jpt.jaxb.core.GenericJaxbProjectManager.javaElementChanged_(GenericJaxbProjectManager.java:544)
	at org.eclipse.jpt.jaxb.core.GenericJaxbProjectManager$6.execute_(GenericJaxbProjectManager.java:533)
	at org.eclipse.jpt.jaxb.core.GenericJaxbProjectManager$EventHandlerCommand.execute(GenericJaxbProjectManager.java:709)
	at org.eclipse.jpt.common.utility.internal.AsynchronousCommandExecutor$Consumer.execute(AsynchronousCommandExecutor.java:163)
	at org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator$RunnableConsumer.execute_(ConsumerThreadCoordinator.java:226)
	at org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator$RunnableConsumer.execute(ConsumerThreadCoordinator.java:216)
	at org.eclipse.jpt.common.utility.internal.ConsumerThreadCoordinator$RunnableConsumer.run(ConsumerThreadCoordinator.java:204)
	at java.lang.Thread.run(Unknown Source)
--------------

Similar exception would be thrown when trying to apply @XmlType to a property complaining org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceField cannot be cast to org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType.

Reproducible: Always
Comment 1 Nan Li CLA 2011-05-06 16:37:44 EDT
Correction of the last paragraph in the bug description:

Similar exception would be thrown when trying to apply @XmlType to a property
complaining org.eclipse.jpt.jaxb.core.internal.resource.java.source.SourceMethod cannot be cast to
org.eclipse.jpt.jaxb.core.resource.java.JavaResourceAbstractType.
Comment 2 Paul Fullbright CLA 2011-06-07 12:50:31 EDT
Created attachment 197520 [details]
3.0.1 proposed patch

patch for 3.0.1 - no changes to api; only catch the exception and swallow it
Comment 3 Paul Fullbright CLA 2011-06-23 13:50:41 EDT
fixed post 3.0
Comment 4 Jolene Moffitt CLA 2011-08-31 12:49:14 EDT
Verified in Build I-3.4.0-20110826171354 

Verified when you add @XmlType to a field that no CastClassException appears in the error log.  See the link to view test steps for verification. 
http://wiki.eclipse.org/Dali_3.0.1