| Summary: | Important reordering for J2EEInit.initEMFModels() | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [WebTools] WTP Java EE Tools | Reporter: | Carl Anderson <ccc> | ||||
| Component: | jst.j2ee | Assignee: | Carl Anderson <ccc> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Chuck Bridgham <cbridgha> | ||||
| Severity: | major | ||||||
| Priority: | P3 | Flags: | ccc:
pmc_approved?
(david_williams) ccc: pmc_approved? (raghunathan.srinivasan) ccc: pmc_approved? (naci.dai) deboer: pmc_approved+ ccc: pmc_approved? (neil.hauge) ccc: pmc_approved? (kaloyan) cbridgha: review+ |
||||
| Version: | 3.2 | ||||||
| Target Milestone: | 3.2.1 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | PMC_approved | ||||||
| Bug Depends on: | 315286 | ||||||
| Bug Blocks: | |||||||
| Attachments: |
|
||||||
|
Description
Carl Anderson
Here is a stack trace from an encounter of this problem in an adopter product:
Exception in thread "Thread-7" java.lang.ExceptionInInitializerError
at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:934)
at java.lang.reflect.Field.getFieldAccessor(Field.java:901)
at java.lang.reflect.Field.get(Field.java:360)
at org.eclipse.emf.ecore.plugin.RegistryReader$EPackageDescriptor.getEPackage(RegistryReader.java:274)
at org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage(EPackageRegistryImpl.java:133)
at org.eclipse.jst.j2ee.webapplication.internal.impl.WebapplicationPackageImpl.initializePackageContents(WebapplicationPackageImpl.java:1579)
at org.eclipse.jst.j2ee.webapplication.internal.impl.WebapplicationPackageImpl.init(WebapplicationPackageImpl.java:337)
at org.eclipse.jst.j2ee.webapplication.WebapplicationPackage.<clinit>(WebapplicationPackage.java:1230)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:934)
at java.lang.reflect.Field.getFieldAccessor(Field.java:901)
at java.lang.reflect.Field.get(Field.java:360)
at org.eclipse.emf.ecore.plugin.RegistryReader$EPackageDescriptor.getEPackage(RegistryReader.java:274)
at org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage(EPackageRegistryImpl.java:133)
at org.eclipse.jst.j2ee.taglib.internal.impl.TaglibPackageImpl.initializePackageContents(TaglibPackageImpl.java:719)
at org.eclipse.jst.j2ee.taglib.internal.impl.TaglibPackageImpl.init(TaglibPackageImpl.java:154)
at org.eclipse.jst.j2ee.taglib.internal.TaglibPackage.<clinit>(TaglibPackage.java:66)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
at org.eclipse.jst.j2ee.internal.J2EEInit$20.run(J2EEInit.java:342)
at java.lang.Thread.run(Thread.java:736)
Caused by: java.lang.NullPointerException
at org.eclipse.emf.common.util.AbstractEList.getNonDuplicates(AbstractEList.java:1167)
at org.eclipse.emf.common.util.AbstractEList.addAll(AbstractEList.java:372)
at org.eclipse.emf.ecore.impl.EClassImpl.getEAllStructuralFeatures(EClassImpl.java:767)
at org.eclipse.emf.ecore.impl.EClassImpl.freeze(EClassImpl.java:132)
at org.eclipse.emf.ecore.impl.EModelElementImpl.freeze(EModelElementImpl.java:100)
at org.eclipse.emf.ecore.impl.EPackageImpl.freeze(EPackageImpl.java:203)
at org.eclipse.jst.j2ee.jsp.internal.impl.JspPackageImpl.init(JspPackageImpl.java:127)
at org.eclipse.jst.j2ee.jsp.JspPackage.<clinit>(JspPackage.java:74)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
... 28 more
Created attachment 173570 [details]
Move TaglibPackage's initialization after WebapplicationPackage
approved This fix is important to ensure proper initialization of the EMF models. There is no workaround. I have run the JUnit bucket against it and tested this by hand. The fix is to move TaglibPackage's initialization after WebapplicationPackage. Chuck Bridgham has reviewed this fix. This is an extremely low risk fix- all that is happening is a simple reordering of the deferred initialization of the EMF models, to comply with the hard coded dependencies. Committed to HEAD for WTP 3.2.1 and WTP 3.3 |