Re: [mdr-users] Clustering the UML for Traceability

Pieter Van Gorp <[email protected]> Thu, 4 Aug 2005 15:41:11 +0200
Newsgroups gmane.comp.java.netbeans.modules.mdr.user
Message-ID <[email protected]>
I changed the order of the createExtent/getExtent calls and most
exceptions disappeared.  As stated in my other mail, I had to move the
shutdownall calls as well to remove a "missing storage files"
exception with the in-memory implementation (btree impl was already
doing fine).

Best regards,
-- Pieter.

On 7/21/05, Martin Matula <[email protected]> wrote:
> Also, from the maven.log and from the source code I found out there
> might be several problems:
> 1) in initMDR() you first try to call createExtent(), if that fails you
> call getExtent() - from the log I see the create extent fails saying
> that extent with the same name already exists - this means you are
> trying to run the test with existing storages that were created by a
> previous test.
> 2) if you still want to run with existing storage, you should reverse
> the order of createExtent and getExtent operations - first call
> getExtent() to check whether the extent already exists, then call
> createExtent() if getExtent() returned null. This way you will prevent
> the exception and switching MDR to a "fail" state.
> 3) if createExtent() fails, it initiates a rollback (switches the
> transaction into a "fail" state to make sure a rollback is performed
> when the outer transaction is finalized) - however, you just catch the
> exception (do not end the transaction), log it and continue performing
> further operations - this may cause problems - you should finalize the
> transaction and do the other stuff in a separate transaction
> Regards,
> Martin
> 
> Pieter Van Gorp wrote:
> 
> >Hi Martin and others,
> >I've managed to generate the JMI interfaces for a tracing metamodel
> >that clusters the UML metamodel.  I've attached the MOF-XMI (see
> >traceMMmof.xml).
> >
> >I have a test in which I create a trace between two UML attributes.
> >I'm not sure if I'm using the NB/JMI API right when creating the
> >clustering extent: I create a new extent and pass an array of size one
> >in which the UML application model is stored.  When serializing the
> >trace extent to XMI, no problems are reported but the references to
> >the UML attributes are in fact dangling IDREFs instead of HREFs to the
> >original UML-XMI file.
> >
> >Even worse, I get a classcastexception when trying to create a new
> >trace extent to test whether the XMI for the traceability model
> >contains the required information:
> >org.netbeans.api.mdr.CreationFailedException: Cannot instantiate
> >package because of unexpected exception: java.lang.ClassCastException
> >        at org.netbeans.mdr.NBMDRepositoryImpl.createExtent(NBMDRepositoryImpl.java:472)
> >        at org.netbeans.mdr.NBMDRepositoryImpl.createExtent(NBMDRepositoryImpl.java:292)
> >        at be.ac.ua.fots.motmot.prototypes.crossreferences.TestMDR.testReadTraceBetweenUmlAttributes(TestMDR.java:176)
> >
> >I've attached the source of my test and the output of its execution by Maven.
> >
> >I hope I've simply used the API "a little bit" wrong... by the way,
> >I'm setting up some documentation about MOF clustering that I'll
> >publish on my website once I've get this prototype right...
> >
> >Looking forward to hear from you,
> >Pieter Van Gorp.
> >
> >
> >
> 
>