This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 27488 - XMIReader cannot read nested StructureTypes
Summary: XMIReader cannot read nested StructureTypes
Status: VERIFIED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Unsupported (show other bugs)
Version: 3.x
Hardware: PC Windows ME/2000
: P1 blocker (vote)
Assignee: Daniel Prusa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-09-20 17:06 UTC by Jens Fransson
Modified: 2005-07-27 09:01 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jens Fransson 2002-09-20 17:06:05 UTC
Hi Daniel!

XMIReader seems unable to read nested StructureTypes. In 
my case, it fails
to read an XMI containing M1 instances of the following 
datatypes:

<<Class>> GraphEdge {
  +waypoints {ordered} [2..*]: BezierPoint
}

<<StructureType>> BezierPoint {
  +base: Point
  +control1: Point
  +control2: Point
}

<<StructureType>> Point {
  +x: Double
  +y: Double
}


The XMI generated with MDR using XMIWriter looks as 
follows:
[...]
<UML:GraphEdge.waypoints>
  <XMI.field>
    <XMI.field>413.5</XMI.field>
    <XMI.field>205.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>380.0</XMI.field>
    <XMI.field>150.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>465.0</XMI.field>
    <XMI.field>150.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>513.5</XMI.field>
    <XMI.field>55.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
  <XMI.field>
    <XMI.field>0.0</XMI.field>
    <XMI.field>0.0</XMI.field>
  </XMI.field>
</UML:GraphEdge.waypoints>
[...]


When reading this file, MDR throws a DebugException 
saying "Wrong number of values of structure: BezierPoint":

[...]
XMI reader started
LINE: 4727
org.netbeans.lib.jmi.util.DebugException: Wrong number of 
values of structure: BezierPoint
	at 
org.netbeans.lib.jmi.xmi.XmiElement$StructureValue.startSub
Element(XmiElement.java:1070)
	at 
org.netbeans.lib.jmi.xmi.XmiSAXReader.startElement
(XmiSAXReader.java:193)
	at org.apache.crimson.parser.Parser2.maybeElement
(Parser2.java:1490)
	at org.apache.crimson.parser.Parser2.content
(Parser2.java:1779)
	at org.apache.crimson.parser.Parser2.maybeElement
(Parser2.java:1507)
	at org.apache.crimson.parser.Parser2.content
(Parser2.java:1779)
	at org.apache.crimson.parser.Parser2.maybeElement
(Parser2.java:1507)
	at org.apache.crimson.parser.Parser2.content
(Parser2.java:1779)
	at org.apache.crimson.parser.Parser2.maybeElement
(Parser2.java:1507)
	at org.apache.crimson.parser.Parser2.content
(Parser2.java:1779)
	at org.apache.crimson.parser.Parser2.maybeElement
(Parser2.java:1507)
	at org.apache.crimson.parser.Parser2.content
(Parser2.java:1779)
	at org.apache.crimson.parser.Parser2.maybeElement
(Parser2.java:1507)
	at org.apache.crimson.parser.Parser2.content
(Parser2.java:1779)
	at org.apache.crimson.parser.Parser2.maybeElement
(Parser2.java:1507)
	at org.apache.crimson.parser.Parser2.parseInternal
(Parser2.java:500)
	at org.apache.crimson.parser.Parser2.parse
(Parser2.java:305)
	at org.apache.crimson.parser.XMLReaderImpl.parse
(XMLReaderImpl.java:442)
	at javax.xml.parsers.SAXParser.parse
(SAXParser.java:345)
	at org.netbeans.lib.jmi.xmi.XmiSAXReader.read
(XmiSAXReader.java:113)
	at org.netbeans.lib.jmi.xmi.XmiSAXReader.read
(XmiSAXReader.java:94)
	at org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read
(XMISaxReaderImpl.java:67)
	at org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read
(XMISaxReaderImpl.java:49)
	at 
jboogie.app.test.mdr.ditest.JBoogieM1Reader.readM1XmiFile
(JBoogieM1Reader.java:93)
	at jboogie.app.test.mdr.ditest.JBoogieM1Reader.run
(JBoogieM1Reader.java:55)
	at jboogie.app.test.mdr.ditest.JBoogieM1Reader.main
(JBoogieM1Reader.java:47)
[...]

This looks like a bug in either XMIReader or perhaps 
XMIWriter.

Regards,
Jens


____________________________________________
| Jens Fransson
| University of Hamburg
| Department of Computer Science
| Vogt-Koelln-Str. 30
| 22527 Hamburg, Germany
| E-Mail: 3fransso@informatik.uni-hamburg.de
Comment 1 Daniel Prusa 2002-09-25 14:32:49 UTC
Fixed.
Comment 2 Jiri Prox 2005-07-27 09:01:43 UTC
quiet for too long, verified