Re: [mdr-users] Truncated class file error

Martin Matula <[email protected]> Tue, 30 Aug 2005 17:44:01 +0200
Newsgroups gmane.comp.java.netbeans.modules.mdr.user
Message-ID <[email protected]>
Dimitrios,
I am not able to reproduce the problem with the XMI you provided. Please 
try to generate JMI interfaces from this metamodel, compile them and put 
them on the classpath. Then it should definitely work. If you are able 
to provide a reproducible example, it would be nice.
Martin

Dimitrios Kolovos wrote:

> Hi,
>
> I have a very simple meta-model that consists of a package and two 
> classes. Its XMI follows:
>
> <?xml version = '1.0' encoding = 'ISO-8859-1' ?>
> <XMI xmi.version = '1.2' xmlns:Model = 'org.omg.xmi.namespace.Model' 
> timestamp = 'Thu Aug 25 00:45:15 BST 2005'>
>  <XMI.header>
>    <XMI.documentation>
>      <XMI.exporter>Netbeans XMI Writer</XMI.exporter>
>      <XMI.exporterVersion>1.0</XMI.exporterVersion>
>    </XMI.documentation>
>  </XMI.header>
>  <XMI.content>
>     <Model:Tag xmi.id = 'a4' name = 'javax.jmi.packagePrefix' 
> annotation = ''
>      tagId = 'javax.jmi.packagePrefix'>
>      <Model:Tag.values>org</Model:Tag.values>
>      <Model:Tag.elements>
>        <Model:Package xmi.idref = 'a1'/>
>      </Model:Tag.elements>
>    </Model:Tag>
>    <Model:Package xmi.id = 'a1' name = 'SRDB' annotation = 'Simple 
> Relational DataBase'
>      isRoot = 'false' isLeaf = 'false' isAbstract = 'false' visibility 
> = 'public_vis'>
>      <Model:Namespace.contents>
>        <Model:Class xmi.id = 'a2' name = 'Database' annotation = '' 
> isRoot = 'false'
>          isLeaf = 'false' isAbstract = 'false' isSingleton = 'false' 
> visibility = 'public_vis'/>
>        <Model:Class xmi.id = 'a3' name = 'Table' annotation = '' 
> isRoot = 'false'
>          isLeaf = 'false' isAbstract = 'false' isSingleton = 'false' 
> visibility = 'public_vis'/>
>      </Model:Namespace.contents>
>    </Model:Package>
>  </XMI.content>
> </XMI>
>
> When I try to create an instance of this meta-model I get the 
> following error. I have searched the MDR website and found the same 
> problem 
> (http://mdr.netbeans.org/servlets/ReadMsg?listName=users&msgId=736932) 
> but unfortunately no resolution.
>
> [org.netbeans.mdr.Logger] Metamodel specific JMI class 
> srdb.SrdbPackage not found. Using bytecode generation to create it.
> Exception in thread "AWT-EventQueue-0" java.lang.ClassFormatError: 
> Truncated class file
>    at java.lang.ClassLoader.defineClass1(Native Method)
>    at java.lang.ClassLoader.defineClass(Unknown Source)
>    at 
> org.netbeans.mdr.handlers.MDRClassLoader.defineClass(MDRClassLoader.java:85) 
>
>    at 
> org.netbeans.mdr.handlers.MDRClassLoader$ClassOutputStream.close(MDRClassLoader.java:215) 
>
>    at 
> org.netbeans.lib.jmi.mapping.ClassFileMapper.closeStream(ClassFileMapper.java:85) 
>
>    at 
> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:381) 
>
>    at 
> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefPackage(GenericMapper.java:401) 
>
>    at 
> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefBaseObject(GenericMapper.java:409) 
>
>    at 
> org.netbeans.mdr.handlers.MDRClassLoader.resolveInterface(MDRClassLoader.java:113) 
>
>    at 
> org.netbeans.mdr.handlers.BaseObjectHandler.resolveClass(BaseObjectHandler.java:147) 
>
>    at 
> org.netbeans.mdr.NBMDRepositoryImpl.getHandler(NBMDRepositoryImpl.java:612) 
>
>    at 
> org.netbeans.mdr.NBMDRepositoryImpl.instantiatePackage(NBMDRepositoryImpl.java:796) 
>
>    at 
> org.netbeans.mdr.NBMDRepositoryImpl.createExtent(NBMDRepositoryImpl.java:482) 
>
>    at 
> org.netbeans.mdr.NBMDRepositoryImpl.createExtent(NBMDRepositoryImpl.java:287) 
>
>    at 
> org.netbeans.mdr.NBMDRepositoryImpl.createExtent(NBMDRepositoryImpl.java:275) 
>
>    at 
> org.xol.models.mdr.MDRModelRepository.addModel(MDRModelRepository.java:71) 
>
>    at org.xol.workbench.mdr.editor.MDREditor$1.run(MDREditor.java:147)
>    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
>    at java.awt.EventQueue.dispatchEvent(Unknown Source)
>    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown 
> Source)
>    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
>    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>    at java.awt.EventDispatchThread.run(Unknown Source)
>
> Any ideas would be appreciated.
>
> Regards,
> Dimitrios
>