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.
Following exception is thrown in this case: repository = getRepository("c:/test"); extent = initUMLPackage(); repository.beginTrans(true); RepositoryUtils.importAllFromXMI(extent,"c:/uc.xmi"); repository.endTrans(); //The key step - if I exclude restart (shutdown + creating new instance) of repository, // no exception is thrown repository.shutdown(); System.out.println("Shutting down"); repository = getRepository("c:/test"); extent = initUMLPackage(); repository.beginTrans(true); Set<RefObject> originalObjects = new HashSet<RefObject>(); for(RefClass refClass:RepositoryUtils.getAllRefClasses(extent)) { originalObjects.addAll(refClass.refAllOfClass()); } repository.endTrans(); repository.shutdown(); I have used Java 1.5 and standalone MDR with build number: 200503232205. The testCase and required.xmi will be attached [org.netbeans.mdr.Logger] INFORMATIONAL *********** Exception occurred ************ at Tue Mar 29 12:55:45 CEST 2005 org.netbeans.mdr.util.DebugException at org.netbeans.mdr.util.IOUtils.read(IOUtils.java:497) at org.netbeans.mdr.util.IOUtils.read(IOUtils.java:415) at org.netbeans.mdr.util.IOUtils.read(IOUtils.java:305) at org.netbeans.mdr.util.IOUtils.read(IOUtils.java:506) at org.netbeans.mdr.util.IOUtils.read(IOUtils.java:415) at org.netbeans.mdr.storagemodel.AttrCollection.read (AttrCollection.java:110) at org.netbeans.mdr.util.IOUtils.read(IOUtils.java:487) at org.netbeans.mdr.util.IOUtils.read(IOUtils.java:415) at org.netbeans.mdr.storagemodel.StorableObject.read (StorableObject.java:418) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.readStreamable (BtreeDatabase.java:911) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.getRecord (BtreeDatabase.java:979) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.getIfExists (BtreeDatabase.java:728) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.get (BtreeDatabase.java:749) at org.netbeans.mdr.storagemodel.MdrStorage.resolve (MdrStorage.java:1662) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeStorage.resolveObject (BtreeStorage.java:536) at org.netbeans.mdr.persistence.btreeimpl.btreeindex.MOFIDInfo.objectFromBuffer (MOFIDInfo.java:126) at org.netbeans.mdr.persistence.btreeimpl.btreeindex.BtreeListByKey$BtreeListByKeyI terator.getCurrentItem(BtreeListByKey.java:246) at org.netbeans.mdr.persistence.btreeimpl.btreeindex.BtreeListByKey$BtreeListByKeyI terator.next(BtreeListByKey.java:168) at org.netbeans.mdr.storagemodel.IndexImmutSet$IndexImmutIterator.next (IndexImmutSet.java:165) at org.netbeans.mdr.handlers.IndexSetWrapper$IndexIteratorWrapper.next (IndexSetWrapper.java:228) at java.util.AbstractCollection.addAll(AbstractCollection.java:318) at test.Main.main(Main.java:97) [org.netbeans.mdr.Logger] INFORMATIONAL *********** Exception occurred ************ at Tue Mar 29 12:55:45 CEST 2005 org.netbeans.mdr.util.DebugException at org.netbeans.mdr.storagemodel.StorableObject.read (StorableObject.java:423) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.readStreamable (BtreeDatabase.java:911) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.getRecord (BtreeDatabase.java:979) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.getIfExists (BtreeDatabase.java:728) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeDatabase.get (BtreeDatabase.java:749) at org.netbeans.mdr.storagemodel.MdrStorage.resolve (MdrStorage.java:1662) at org.netbeans.mdr.persistence.btreeimpl.btreestorage.BtreeStorage.resolveObject (BtreeStorage.java:536) at org.netbeans.mdr.persistence.btreeimpl.btreeindex.MOFIDInfo.objectFromBuffer (MOFIDInfo.java:126) at org.netbeans.mdr.persistence.btreeimpl.btreeindex.BtreeListByKey$BtreeListByKeyI terator.getCurrentItem(BtreeListByKey.java:246) at org.netbeans.mdr.persistence.btreeimpl.btreeindex.BtreeListByKey$BtreeListByKeyI terator.next(BtreeListByKey.java:168) at org.netbeans.mdr.storagemodel.IndexImmutSet$IndexImmutIterator.next (IndexImmutSet.java:165) at org.netbeans.mdr.handlers.IndexSetWrapper$IndexIteratorWrapper.next (IndexSetWrapper.java:228) at java.util.AbstractCollection.addAll(AbstractCollection.java:318) at test.Main.main(Main.java:97)
Created attachment 21189 [details] test case and bug stack trace
uc.xml is missing. Please provide it or advise how to proceed without it.
Created attachment 21204 [details] test UML model
Created attachment 21205 [details] test UML model
The problem is that you shut down the repository and then try to access it again. This is not possible. In your original e-mail you wrote you end the transaction and then start a new one. However shutdown() does not end the transaction - it shuts down the repository. To end the transaction use endTrans(). You should use the following pattern to work with trasactions: boolean fail = true; rep.beginTrans(true); try { // do something // .... fail = false; } finally { rep.endTrans(fail); }
I've found the bug that is the primary cause of the exceptions.
Any news regarding this issue?
Fixed. Checking in src/org/netbeans/mdr/util/IOUtils.java; /cvs/mdr/src/org/netbeans/mdr/util/IOUtils.java,v <-- IOUtils.java new revision: 1.34; previous revision: 1.33 done
It works:-), thank you very much.