mercoledì 8 aprile 2009

Comportamento strano di JAXB la JAXBElement.class non voluta

Ciao a tutti,
spesso capita di trovarsi davanti errori strani, inspiegabili. Quasi sempre sono dovuti a sviste di difficile individuazione, questa mattina è capitato con JAXB generando le classi java mediante il tool XJC il risultato ottenuto era una classe con un parametro content di tipo List e una serie di annotation indicanti i campi dell'xsd di partenza di tipo JAXBElement.


public class TtodgEclIndirizzo {

@XmlElementRefs({
@XmlElementRef(name = "dsc_localita", type = JAXBElement.class),
@XmlElementRef(name = "cod_comune", type = JAXBElement.class),
@XmlElementRef(name = "id_cliente", type = JAXBElement.class),
@XmlElementRef(name = "dat_ini_val", type = JAXBElement.class),
@XmlElementRef(name = "prg_indirizzo", type = JAXBElement.class),
@XmlElementRef(name = "dsc_presso", type = JAXBElement.class),
.....


Mi sarei aspettato di trovare definite le proerties dei tipi Java

@XmlElement(name = "id_cliente", required = true, nillable = true)
protected BigDecimal idCliente;
@XmlElement(name = "cod_nazione", required = true, nillable = true)
protected String codNazione;
@XmlElement(name = "cod_provincia", required = true, nillable = true)
protected String codProvincia;
@XmlElement(name = "prg_indirizzo", required = true, type = Integer.class, nillable = true)
protected Integer prgIndirizzo;
@XmlElement(name = "cod_comune", required = true, nillable = true)
protected String codComune;

...

Se doveste incappare in un problema del genere controllate l'xsd probabilmente è stato definito all'interno dello stesso complexType due o più volte lo stesso element.

martedì 31 marzo 2009

Eclipse/RAD/RSA non riparte a seguito di un crash

Sarà capitato a molti di voi che vi crashasse eclipse o un tool ad esso riconducibile (RSA/RAD).
Nel mio caso specifico ho dovuto killare il processo java e l'effetto è stato devastante sul workspace.
Il workspace che stavo utilizzando non si apre più, il fantastico alert "leggi il .log" è inquietante.


L'eccezione che il log mostra è:

!SESSION 2009-03-31 14:39:08.703 -----------------------------------------------
eclipse.buildId=unknown
java.fullversion=J2RE 1.6.0 IBM J9 2.4 Windows XP x86-32 jvmwi3260-20081105_25433 (JIT enabled, AOT enabled)
J9VM - 20081105_025433_lHdSMr
JIT - r9_20081031_1330
GC - 20081027_AB
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=us_EN
Framework arguments: -product com.ibm.rational.rsa4ws.product.v75.ide
Command-line arguments: -os win32 -ws win32 -arch x86 -product com.ibm.rational.rsa4ws.product.v75.ide

This is a continuation of log file C:\workspace75\.metadata\.bak_0.log
Created Time: 2009-03-31 14:39:13.328

!ENTRY org.eclipse.osgi 4 0 2009-03-31 14:39:13.328
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org.eclipse.core.resources.IContainer
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(Unknown Source)
at java.lang.J9VMInternals.initialize(Unknown Source)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
at org.eclipse.equinox.launcher.Main.run(Unknown Source)
at org.eclipse.equinox.launcher.Main.main(Unknown Source)
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.core.resources (1967).
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(Unknown Source)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(Unknown Source)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(Unknown Source)
at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(Unknown Source)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more
Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.core.resources.ResourcesPlugin.start() of bundle org.eclipse.core.resources.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(Unknown Source)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Unknown Source)
at org.eclipse.osgi.framework.util.SecureAction.start(Unknown Source)
... 27 more
Caused by: org.eclipse.core.internal.dtree.ObjectNotFoundException: Tree element '/OnLineBackend/ejbModule/it/fondsai/odg/startup/StartUpContextBean.class' not found.
at org.eclipse.core.internal.dtree.AbstractDataTree.handleNotFound(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.getData(Unknown Source)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.asBackwardDelta(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(Unknown Source)
at org.eclipse.core.internal.watson.ElementTree.immutable(Unknown Source)
at org.eclipse.core.internal.resources.SaveManager.restore(Unknown Source)
at org.eclipse.core.internal.resources.SaveManager.startup(Unknown Source)
at org.eclipse.core.internal.resources.Workspace.startup(Unknown Source)
at org.eclipse.core.internal.resources.Workspace.open(Unknown Source)
at org.eclipse.core.resources.ResourcesPlugin.start(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Unknown Source)
... 32 more

Non so spiegarvi il motivo ma cancellando i seguenti files sotto il workspace danneggiato tutto ripartirà a meraviglia:

\.metadata\.plugins\org.eclipse.core.resources\.snap
and
\.metadata\.plugins\org.eclipse.core.resources\.root\.markers.snap