[mdr-users] Corrupted repository (was [mdr-users] MDR and Swing)

Dimitrios Kolovos <[email protected]> Thu, 22 Sep 2005 15:00:15 +0100
Newsgroups gmane.comp.java.netbeans.modules.mdr.user
Message-ID <[email protected]>
Hi Jarda,

I do call the shutdown() method on my repository (even tried the 
MDRManager.shutdownAll()). The trace of the exception I get is the 
following:

Exception in thread "main" org.netbeans.mdr.util.DebugException
    at 
org.netbeans.mdr.handlers.MDRClassLoader.resolveInterface(MDRClassLoader.java:118)
    at 
org.netbeans.mdr.handlers.BaseObjectHandler.resolveClass(BaseObjectHandler.java:147)
    at 
org.netbeans.mdr.NBMDRepositoryImpl.getHandler(NBMDRepositoryImpl.java:612)
    at 
org.netbeans.mdr.handlers.IndexSetWrapper.wrap(IndexSetWrapper.java:53)
    at 
org.netbeans.mdr.handlers.IndexSetWrapper$IndexIteratorWrapper.next(IndexSetWrapper.java:228)
    at org.xol.models.mdr.MDRModel.findMetaClass(MDRModel.java:216)

If I delete the btd btx etc and re-run the program, it works. As for the 
version it is a couple of weeks old. I ll try today's build but I doubt 
it will help...

Cheers,
Dimitrios

Jaroslav Drazan wrote:

> Hi Dimitrios,
> I need to see the DebugException which are thrown (and maybe it can be 
> some bug of MDR or an issue for Martin Matula). The possible problem 
> could be not calling shutdown() method on MDRManager (or 
> MDRrepository, I'm not sure) otherwise I need to see the log or the 
> source code.
>
> Maybe you can also try some newer version of MDR (I don't know which 
> version do you use).
>
> Regards
> Jarda
>
>>  Hi Jarda,
>>  
>>  Thanks for your response. Skipping transactions solved the threading 
>>  problem (and I really thank you for that!). However, (as usually) 
>> every  solution creates another problem :) Now my repository gets 
>> corrupted  everly time so between two successive "runs" of my 
>> program, I have to  delete the btd, btx files or else I get a lot of 
>> "DebugExceptions". If I  turn transactions on again, everything 
>> (except for the threads of  course) works fine. Any ideas on how to 
>> overcome this?
>>  
>>  Cheers,
>>  Dimitrios
>>  
>>  Jaroslav Drazan wrote:
>>  
>>  > Hi Dimitrios,
>>  > the possible problem can be MDR transactions - if you start a  > 
>> transaction from some threadXXX, you cannot access the repository 
>> from  > another thread (if you do so, the another thread waits until 
>> the  > threadXXX does not finish the transaction).
>>  >
>>  > We had the similar problem - we started a transaction from the 
>> main  > thread and when we accessed the repository frm the AWT-thread 
>> - the  > application freezed. The possible solution in our case were 
>> to access  > the repository from just one thread or not to use MDR 
>> transaction.
>>  >
>>  > We have used Eclipse and swing as well and everything (after 
>> solving  > the problem mentioned above) works fine.
>>  >
>>  > Regards
>>  > Jarda
>>  >
>>  >>  Hi Martin,
>>  >>   >>  Thanks for your reply. Yes, the application freezes 
>> forever. I have  >>  looked into it and managed to get somehow deeper 
>> into the problem. I  >>  believe it has to do with threads and it is 
>> not limited to Swing only.
>>  >>   >>  For example when I populate a RefPackage (e.g. refPackage) 
>> in the  >> main  method of my (Swing) program and try to access it on 
>> a button  >> click  event - AbstractAction.perform() -, since the 
>> perform()  >> function is run  by the dispatcher in a different 
>> thread, I get no  >> response (the code  freezes at the statement I 
>> try to access e.g.  >> refPackage.refAllClasses()  and the statement 
>> does not return!).  >> However, if I populate refPackage  inside the 
>> perform() method (so  >> that it is in the same thread with the  
>> accessing code), everything  >> works fine. Any ideas?
>>  >>   >>  Cheers,
>>  >>  Dimitrios
>>  >>   >>  Martin Matula wrote:
>>  >>   >>  > Hi Dimitrios,
>>  >>  > what kind of freezing do you mean? Does your application 
>> freeze  >> forever?
>>  >>  > Martin
>>  >>  >
>>  >>  > Dimitrios Kolovos wrote:
>>  >>  >
>>  >>  >> I am working on a small utility that displays and MDR model 
>> in a  >>  >> JTree. In generally I face a lot of execution "freezing" 
>> issues  >> and I  >> often have to call SwingUtilities.invokeLater() 
>> to prevent  >> execution  >> from freezing where MDR is involved. 
>> Does anyone else  >> have similar  >> (bad) experience (and hopefully 
>> come up with a  >> solution) with MDR and  >> JTree (or Swing in 
>> general)?
>>  >>  >>
>>  >>  >> Cheers,
>>  >>  >> Dimitrios
>>  >>  >>
>>  >>  >> P.S. I use Eclipse for Java development in case that makes a 
>>  >> difference.
>>  >>  >
>>  >>  >
>>  >>  >
>>  >>  >
>>  >>   >>   >>   >
>>  >
>>  
>>  
>>  
>
>