1.1 --- a/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java Wed Oct 09 16:28:42 2002 +0000
1.2 +++ b/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java Thu Oct 10 17:47:12 2002 +0000
1.3 @@ -790,30 +790,41 @@
1.4 try {
1.5 Map datatypes = new HashMap();
1.6 // collect datatypes
1.7 - for (Iterator it = metaObject.getContents().iterator(); it.hasNext();) {
1.8 - ModelElement element = (ModelElement) it.next();
1.9 - if (element instanceof EnumerationType) {
1.10 - List members = new ArrayList(((EnumerationType) element).getLabels());
1.11 - String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
1.12 - datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, members, ifcName, storageId));
1.13 - } else if (element instanceof StructureType) {
1.14 - ModelElement me;
1.15 - List members = new ArrayList();
1.16 - List memberTypes = new ArrayList();
1.17 -
1.18 - for (Iterator it2 = ((StructureType) element).getContents().iterator(); it2.hasNext();) {
1.19 - me = (ModelElement) it2.next();
1.20 - if (me instanceof StructureField) {
1.21 - members.add(me.getName());
1.22 - try {
1.23 - memberTypes.add(BaseObjectHandler.resolveInterface(TagSupport.getDataTypeName((StorableObject) ((BaseObjectHandler) ((StructureField) me).getType())._getDelegate())));
1.24 - } catch (ClassNotFoundException e) {
1.25 - throw (DebugException) Logger.getDefault().annotate(new DebugException(), e);
1.26 + Iterator supers = null;
1.27 +
1.28 + while (supers == null || supers.hasNext()) {
1.29 + MofPackage metaPackage;
1.30 + if (supers == null) {
1.31 + supers = metaObject.allSupertypes().iterator();
1.32 + metaPackage = metaObject;
1.33 + } else {
1.34 + metaPackage = (MofPackage) supers.next();
1.35 + }
1.36 + for (Iterator it = metaPackage.getContents().iterator(); it.hasNext();) {
1.37 + ModelElement element = (ModelElement) it.next();
1.38 + if (element instanceof EnumerationType) {
1.39 + List members = new ArrayList(((EnumerationType) element).getLabels());
1.40 + String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
1.41 + datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, members, ifcName, storageId));
1.42 + } else if (element instanceof StructureType) {
1.43 + ModelElement me;
1.44 + List members = new ArrayList();
1.45 + List memberTypes = new ArrayList();
1.46 +
1.47 + for (Iterator it2 = ((StructureType) element).getContents().iterator(); it2.hasNext();) {
1.48 + me = (ModelElement) it2.next();
1.49 + if (me instanceof StructureField) {
1.50 + members.add(me.getName());
1.51 + try {
1.52 + memberTypes.add(BaseObjectHandler.resolveInterface(TagSupport.getDataTypeName((StorableObject) ((BaseObjectHandler) ((StructureField) me).getType())._getDelegate())));
1.53 + } catch (ClassNotFoundException e) {
1.54 + throw (DebugException) Logger.getDefault().annotate(new DebugException(), e);
1.55 + }
1.56 }
1.57 }
1.58 + String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
1.59 + datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, element.getQualifiedName(), members, memberTypes, ifcName, storageId));
1.60 }
1.61 - String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
1.62 - datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, element.getQualifiedName(), members, memberTypes, ifcName, storageId));
1.63 }
1.64 }
1.65
2.1 --- a/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java Wed Oct 09 16:28:42 2002 +0000
2.2 +++ b/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java Thu Oct 10 17:47:12 2002 +0000
2.3 @@ -18,6 +18,7 @@
2.4
2.5 import org.netbeans.mdr.persistence.btreeimpl.btreeindex.*;
2.6 import org.netbeans.mdr.persistence.*;
2.7 +import org.netbeans.mdr.util.Logger;
2.8
2.9 /**
2.10 * This is the primary index for the btree implementation of Storage.
2.11 @@ -484,32 +485,32 @@
2.12 dirtyIter.remove();
2.13 transactionCache.addReplaced(id, baoStrmToBytes);
2.14 }
2.15 - else if (commit) {
2.16 + else /*if (commit)*/ {
2.17 throw writeError;
2.18 }
2.19 - else if (loggingStream != null) {
2.20 - loggingStream.println("Error writing streamable: " +
2.21 - writeError.toString());
2.22 - }
2.23 +// else if (loggingStream != null) {
2.24 +// loggingStream.println("Error writing streamable: " +
2.25 +// writeError.toString());
2.26 +// }
2.27 }
2.28
2.29 // Last, add what needs adding
2.30 Iterator newIter = cache.getNew().iterator();
2.31 while (newIter.hasNext()) {
2.32 - id = (MOFID)newIter.next();
2.33 + id = (MOFID)newIter.next();
2.34 value = cache.get(id);
2.35 writeError = addRecord(id, value);
2.36 if (writeError == null) {
2.37 newIter.remove();
2.38 transactionCache.addInserted(id, baoStrmToBytes);
2.39 }
2.40 - else if (commit) {
2.41 + else /*if (commit)*/ {
2.42 throw writeError;
2.43 }
2.44 - else if (loggingStream != null) {
2.45 - loggingStream.println("Error writing streamable: " +
2.46 - writeError.toString());
2.47 - }
2.48 +// else if (loggingStream != null) {
2.49 +// loggingStream.println("Error writing streamable: " +
2.50 +// writeError.toString());
2.51 +// }
2.52 }
2.53
2.54 if (classIndexChanged) {
2.55 @@ -869,11 +870,11 @@
2.56 return ex;
2.57 }
2.58 catch (IOException ioException) {
2.59 - return new StorageIOException (ioException);
2.60 + return (StorageException) Logger.getDefault().annotate(new StorageIOException(ioException), ioException);
2.61 }
2.62 catch (RuntimeException th) {
2.63 - return new StorageTransientDataException(
2.64 - th.getClass().getName() + ": " + th.getMessage());
2.65 + return (StorageException) Logger.getDefault().annotate(new StorageTransientDataException(
2.66 + th.getClass().getName() + ": " + th.getMessage()), th);
2.67 }
2.68 finally {
2.69 currentlyStreamingMofidGenerator = previous;
2.70 @@ -1201,7 +1202,6 @@
2.71 return;
2.72 }
2.73 }
2.74 -
2.75 if (newIter == null) {
2.76 newIter = cache.iterateNew();
2.77 }
3.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java Wed Oct 09 16:28:42 2002 +0000
3.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java Thu Oct 10 17:47:12 2002 +0000
3.3 @@ -510,7 +510,8 @@
3.4 */
3.5 public void shutDown() throws StorageException {
3.6 for (Iterator it = this.storages.values().iterator(); it.hasNext();) {
3.7 - ((Storage)it.next()).shutDown();
3.8 + Storage s = (Storage)it.next();
3.9 + s.shutDown();
3.10 }
3.11 }
3.12
3.13 @@ -1647,6 +1648,7 @@
3.14 public int store(Object value) {
3.15 if (value == null) return 0;
3.16 try {
3.17 + storage.objectStateWillChange(id);
3.18 Object index = new Integer(map.size());
3.19 Object old = map.put(value, index);
3.20 if (old != null) {
3.21 @@ -1691,7 +1693,7 @@
3.22 if (value == null) return 0;
3.23 Integer result = (Integer) map.get(value);
3.24 if (result == null) {
3.25 - throw new DebugException("Value not found.");
3.26 + throw new DebugException("Value not found: " + value);
3.27 }
3.28 return result.intValue() + 1;
3.29 }