Gabriele - 2002-09-23

I have to read an XMI file (version 1.1) exported by Rational Rose.
I've tried this code but it doesn't work as  expected.

public class MyReader {
  public static final String extPkg = "ru.novosoft.uml.impl.UMLUMLPackageImpl";
  public static void main(String[] args) {
    try {
      MDFOutermostPackage extent = (MDFOutermostPackage)Class.forName(extPkg).newInstance();
      XMIReader xmiReader = (XMIReader)extent.getXMIReader("1.1"); 
      MyReadingModelSample cls = new MyReadingModelSample();
      InputStream io =  cls.getClass().getResourceAsStream("test_14.xml");
      xmiReader.read(extent, io);   
    }
    catch (Exception ex) {
      ex.printStackTrace();
      System.exit(1);
    }
    System.out.println("All is O.K.");
  }
}

Running the sample the following exception is thrown
java.lang.AbstractMethodError: ru/novosoft/mdf/impl/MDFListImpl.size
    at java.util.ArrayList.<init>(ArrayList.java:125)
    at ru.novosoft.mdf.impl.MDFBaseObjectImpl.bagdiff(MDFBaseObjectImpl.java:222)
    at ru.novosoft.uml.impl.model_management.UMLPackageImpl.refSetValue(UMLPackageImpl.java:354)
    at ru.novosoft.mdf.impl.xmi.XMICompositionState.namespaceSetting(XMICompositionState.java:132)
    at ru.novosoft.mdf.impl.xmi.XMICompositionState.endElement(XMICompositionState.java:108)
    at ru.novosoft.mdf.impl.XMI11ReaderSAX2.endElement(XMI11ReaderSAX2.java:384)
    at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1489)
    at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
    at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
    at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
    at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
    at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
    at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
    at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
    at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
    at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
    at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
    at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
    at ru.novosoft.mdf.impl.XMI11ReaderSAX2.read(XMI11ReaderSAX2.java:309)
    at ru.novosoft.mdf.impl.XMI11ReaderSAX2.read(XMI11ReaderSAX2.java:247)
    at samples.MyReadingModelSample.main(MyReadingModelSample.java:33)

Can you help me? I wonder where the problem is.
Thanks