Index: main/java/java/beans/beancontext/BeanContextMembershipEvent.java =================================================================== --- main/java/java/beans/beancontext/BeanContextMembershipEvent.java (revision 423454) +++ main/java/java/beans/beancontext/BeanContextMembershipEvent.java (working copy) @@ -30,7 +30,8 @@ */ public class BeanContextMembershipEvent extends BeanContextEvent { - + + static final long serialVersionUID = 3499346510334590959L; /** * */ @@ -60,7 +61,7 @@ } // Initialize collection - this.children = new Vector(); + this.children = new Vector(); // Add all elements to it for(int i = 0; i < changes.length; i++) { Index: main/java/java/beans/beancontext/BeanContextServiceAvailableEvent.java =================================================================== --- main/java/java/beans/beancontext/BeanContextServiceAvailableEvent.java (revision 423454) +++ main/java/java/beans/beancontext/BeanContextServiceAvailableEvent.java (working copy) @@ -29,6 +29,8 @@ public class BeanContextServiceAvailableEvent extends BeanContextEvent { + static final long serialVersionUID = -5333985775656400778L; + /** * @serial */ Index: main/java/java/beans/beancontext/BeanContextServiceRevokedEvent.java =================================================================== --- main/java/java/beans/beancontext/BeanContextServiceRevokedEvent.java (revision 423454) +++ main/java/java/beans/beancontext/BeanContextServiceRevokedEvent.java (working copy) @@ -27,6 +27,8 @@ public class BeanContextServiceRevokedEvent extends BeanContextEvent { + static final long serialVersionUID = -1295543154724961754L; + /** * @serial */ Index: main/java/java/beans/beancontext/BeanContextServicesSupport.java =================================================================== --- main/java/java/beans/beancontext/BeanContextServicesSupport.java (revision 423454) +++ main/java/java/beans/beancontext/BeanContextServicesSupport.java (working copy) @@ -164,7 +164,7 @@ /** * @com.intel.drl.spec_ref */ - protected transient ArrayList bcsListeners; + protected transient ArrayList bcsListeners; /** * @com.intel.drl.spec_ref @@ -179,7 +179,7 @@ /** * @com.intel.drl.spec_ref */ - protected transient HashMap services; + protected transient HashMap services; /** * @com.intel.drl.spec_ref @@ -352,9 +352,10 @@ protected final void fireServiceAdded( BeanContextServiceAvailableEvent bcssae) { - for (Iterator it = this.bcsListeners.iterator(); it.hasNext(); ) { - BeanContextServicesListener l = - (BeanContextServicesListener) it.next(); + for (Iterator it = + this.bcsListeners.iterator(); it.hasNext(); ) + { + BeanContextServicesListener l = it.next(); l.serviceAvailable(bcssae); } @@ -372,9 +373,10 @@ */ protected final void fireServiceRevoked(BeanContextServiceRevokedEvent bcsre) { - for (Iterator it = this.bcsListeners.iterator(); it.hasNext(); ) { - BeanContextServicesListener l = - (BeanContextServicesListener) it.next(); + for (Iterator it = + this.bcsListeners.iterator(); it.hasNext(); ) + { + BeanContextServicesListener l = it.next(); l.serviceRevoked(bcsre); } @@ -430,8 +432,7 @@ synchronized(BeanContext.globalHierarchyLock) { synchronized(this.services) { - BCSSServiceProvider bcsp = - (BCSSServiceProvider) this.services.get(serviceClass); + BCSSServiceProvider bcsp = this.services.get(serviceClass); return bcsp.getServiceProvider().getCurrentServiceSelectors( getBeanContextServicesPeer(), serviceClass); @@ -479,8 +480,7 @@ Object service = null; synchronized(this.services) { - BCSSServiceProvider bcsp = - (BCSSServiceProvider) this.services.get(serviceClass); + BCSSServiceProvider bcsp = this.services.get(serviceClass); if (bcsp != null) { service = bcsp.getServiceProvider().getService( @@ -524,8 +524,8 @@ public void initialize() { super.initialize(); - this.services = new HashMap(); - this.bcsListeners = new ArrayList(); + this.services = new HashMap(); + this.bcsListeners = new ArrayList(); } /** @@ -550,8 +550,9 @@ synchronized(this.services) { for (int i = 0; i < this.serializable; i++) { - BCSSServiceProvider prov = - (BCSSServiceProvider) ois.readObject(); + BCSSServiceProvider prov = (BCSSServiceProvider) + ois.readObject(); + this.services.put(prov.getServiceClass(), prov); } } @@ -662,9 +663,10 @@ throw new NullPointerException("The event is null"); } - for (Iterator it = this.bcsListeners.iterator(); it.hasNext(); ) { - BeanContextServicesListener l = - (BeanContextServicesListener) it.next(); + for (Iterator it = + this.bcsListeners.iterator(); it.hasNext(); ) + { + BeanContextServicesListener l = it.next(); l.serviceAvailable(bcssae); } @@ -678,9 +680,10 @@ throw new NullPointerException("The event is null"); } - for (Iterator it = this.bcsListeners.iterator(); it.hasNext(); ) { - BeanContextServicesListener l = - (BeanContextServicesListener) it.next(); + for (Iterator it = + this.bcsListeners.iterator(); it.hasNext(); ) + { + BeanContextServicesListener l = it.next(); l.serviceRevoked(bcssre); } Index: main/java/java/beans/beancontext/BeanContextSupport.java =================================================================== --- main/java/java/beans/beancontext/BeanContextSupport.java (revision 423454) +++ main/java/java/beans/beancontext/BeanContextSupport.java (working copy) @@ -36,13 +36,10 @@ import java.net.URL; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; -import java.util.List; import java.util.Locale; -import java.util.Set; /** * @author Sergei A. Krivenko @@ -141,12 +138,12 @@ /** * */ - protected transient ArrayList bcmListeners; + protected transient ArrayList bcmListeners; /** * */ - protected transient HashMap children; + protected transient HashMap children; /** * @serial @@ -300,7 +297,7 @@ */ public boolean addAll(Collection c) { - Collection col = new ArrayList(); + Collection col = new ArrayList(); // Add children one by one for (Iterator i = c.iterator(); i.hasNext(); ) { @@ -610,9 +607,10 @@ protected final void fireChildrenAdded(BeanContextMembershipEvent bcme) { // Notify all registered listenes about the change made - for (Iterator i = bcmListeners.iterator(); i.hasNext(); ) { - BeanContextMembershipListener cur = - (BeanContextMembershipListener) i.next(); + for (Iterator i = + bcmListeners.iterator(); i.hasNext(); ) + { + BeanContextMembershipListener cur = i.next(); cur.childrenAdded(bcme); } @@ -624,9 +622,10 @@ protected final void fireChildrenRemoved(BeanContextMembershipEvent bcme) { // Notify all registered listenes about the change made - for (Iterator i = bcmListeners.iterator(); i.hasNext(); ) { - BeanContextMembershipListener cur = - (BeanContextMembershipListener) i.next(); + for (Iterator i = + bcmListeners.iterator(); i.hasNext(); ) + { + BeanContextMembershipListener cur = i.next(); cur.childrenRemoved(bcme); } @@ -766,9 +765,9 @@ * * @return PropertyChangeEvent object */ - private PropertyChangeEvent getPCE(String prop, Object o, Object n) { - return new PropertyChangeEvent(getBeanContextPeer(), prop, o, n); - } +// private PropertyChangeEvent getPCE(String prop, Object o, Object n) { +// return new PropertyChangeEvent(getBeanContextPeer(), prop, o, n); +// } /** * @com.intel.drl.spec_ref @@ -836,8 +835,8 @@ protected synchronized void initialize() { // Initialize some fields - this.children = new HashMap(); - this.bcmListeners = new ArrayList(); + this.children = new HashMap(); + this.bcmListeners = new ArrayList(); this.serializable = 0; this.serializing = false; @@ -1047,7 +1046,7 @@ // Just before removing save a reference to it for later use // in childJustRemovedHook() method - BCSChild ch = (BCSChild) this.children.get(targetChild); + BCSChild ch = this.children.get(targetChild); removed = this.children.remove(targetChild); childJustRemovedHook(targetChild, ch); } Index: main/java/java/beans/DefaultPersistenceDelegate.java =================================================================== --- main/java/java/beans/DefaultPersistenceDelegate.java (revision 423454) +++ main/java/java/beans/DefaultPersistenceDelegate.java (working copy) @@ -64,8 +64,10 @@ Method setter = pd.getWriteMethod(); if (setter != null) { - Object oldValue = getter.invoke(oldInstance, null); - Object newValue = getter.invoke(newInstance, null); + Object oldValue = getter.invoke(oldInstance, + (Object[]) null); + Object newValue = getter.invoke(newInstance, + (Object[]) null); if (oldValue != null && !oldValue.equals(newValue) || oldValue == null && newValue != null) { @@ -117,7 +119,8 @@ Method getter = pds[j].getReadMethod(); if (getter != null) { - args[i] = getter.invoke(oldInstance, null); + args[i] = getter.invoke(oldInstance, + (Object[]) null); found = true; break; } else { Index: main/java/java/beans/Encoder.java =================================================================== --- main/java/java/beans/Encoder.java (revision 423454) +++ main/java/java/beans/Encoder.java (working copy) @@ -32,7 +32,8 @@ private ExceptionListener exceptionListener = null; - private HashMap, PersistenceDelegate> persistenceDelegates = new HashMap, PersistenceDelegate>(); + private HashMap, PersistenceDelegate> persistenceDelegates = + new HashMap, PersistenceDelegate>(); Vector roots = new Vector(); @@ -159,6 +160,8 @@ nodes.put(oldInstance, node); // if an expression is not a constructor + // FIXME prevents instance methods of Class and Method objects + // from being handled correctly if (!(oldExp.getTarget() instanceof Class || oldExp.getTarget() instanceof Field)) { ObjectNode parent = nodes.get(oldExp.getTarget()); Index: main/java/java/beans/IntrospectionException.java =================================================================== --- main/java/java/beans/IntrospectionException.java (revision 423454) +++ main/java/java/beans/IntrospectionException.java (working copy) @@ -26,6 +26,8 @@ */ public class IntrospectionException extends Exception { + + static final long serialVersionUID = -3728150539969542619L; /** * @com.intel.drl.spec_ref Index: main/java/java/beans/VetoableChangeSupport.java =================================================================== --- main/java/java/beans/VetoableChangeSupport.java (revision 423454) +++ main/java/java/beans/VetoableChangeSupport.java (working copy) @@ -46,7 +46,6 @@ // fields for serialization compatibility private Hashtable> children; - private Object source; private int vetoableChangeSupportSerializedDataVersion = 1; /** Index: main/java/java/beans/XMLDecoder.java =================================================================== --- main/java/java/beans/XMLDecoder.java (revision 423454) +++ main/java/java/beans/XMLDecoder.java (working copy) @@ -46,9 +46,9 @@ private ExceptionListener exceptionListener = null; - private Vector objects = new Vector(); + private Vector objects = new Vector(); - private Iterator iterator = null; + private Iterator iterator = null; /** * @com.intel.drl.spec_ref Index: main/java/java/beans/XMLEncoder.java =================================================================== --- main/java/java/beans/XMLEncoder.java (revision 423454) +++ main/java/java/beans/XMLEncoder.java (working copy) @@ -41,7 +41,7 @@ private Object owner; - private Vector printed = new Vector(); + private Vector printed = new Vector(); /** * @com.intel.drl.spec_ref @@ -471,19 +471,19 @@ String name; - LinkedHashMap attrs; + LinkedHashMap attrs; String characters; public Tag(String name) { this.name = name; - this.attrs = new LinkedHashMap(); + this.attrs = new LinkedHashMap(); this.characters = null; } public Tag(String name, String characters) { this.name = name; - this.attrs = new LinkedHashMap(); + this.attrs = new LinkedHashMap(); this.characters = characters; } @@ -497,11 +497,11 @@ public String toStringOnOpenUnfinished() { String result = "<" + name; - Iterator i = attrs.keySet().iterator(); + Iterator i = attrs.keySet().iterator(); while (i.hasNext()) { - String attrName = (String) i.next(); - String attrValue = (String) attrs.get(attrName); + String attrName = i.next(); + String attrValue = attrs.get(attrName); result += " " + attrName + "=\"" + attrValue + "\""; } @@ -532,7 +532,8 @@ static class NameMaker { - private static HashMap numOfExemplars = new HashMap(); + private static HashMap numOfExemplars = + new HashMap(); public static void clear() { numOfExemplars.clear(); @@ -561,7 +562,7 @@ fullName = type.getName(); shortName = fullName.substring(fullName.lastIndexOf(".") + 1); } - iNum = (Integer) numOfExemplars.get(shortName); + iNum = numOfExemplars.get(shortName); if (iNum == null) { numOfExemplars.put(shortName, new Integer(0)); result = shortName + "0"; Index: main/java/org/apache/harmony/beans/Command.java =================================================================== --- main/java/org/apache/harmony/beans/Command.java (revision 423454) +++ main/java/org/apache/harmony/beans/Command.java (working copy) @@ -29,8 +29,6 @@ import java.beans.XMLDecoder; import java.beans.Expression; -import java.io.File; -import java.io.FileOutputStream; import java.lang.reflect.Array; import java.lang.reflect.Method; @@ -55,17 +53,18 @@ private String tagName; // tag name private HashMap attrs; // set of attrs private String data = null; // string data - private Vector commands = new Vector(); // inner commands - private Vector arguments = new Vector(); // arguments - private Vector operations = new Vector(); // operations - private Vector auxArguments = new Vector(); // additonal arguments placed before others + private Vector commands = new Vector(); // inner commands + private Vector arguments = new Vector(); // arguments + private Vector operations = new Vector(); // operations + // additonal arguments placed before others + private Vector auxArguments = new Vector(); private Argument result = null; // result argument private Object target = null; // target to execute a command on private String methodName = null; // method name private Command ctx = null; // context for command private int status; // commands - private int tabCount = 0; private XMLDecoder decoder; + //private int tabCount = 0; public Command(String tagName, HashMap attrs) { this.tagName = tagName; @@ -86,9 +85,9 @@ } // set tab count to display log messages - public void setTabCount(int tabCount) { - this.tabCount = tabCount; - } +// public void setTabCount(int tabCount) { +// this.tabCount = tabCount; +// } // set context - upper level command public void setContext(Command ctx) { @@ -120,12 +119,18 @@ return false; } else { for(int i = 0; i < arguments.size(); ++i) { - Command arg = (Command) arguments.elementAt(i); - if(!arg.isResolved()) return false; + Command arg = arguments.elementAt(i); + + if(!arg.isResolved()) { + return false; + } } for(int j = 0; j < operations.size(); ++j) { - Command opr = (Command) operations.elementAt(j); - if(!opr.isResolved()) return false; + Command opr = operations.elementAt(j); + + if(!opr.isResolved()) { + return false; + } } return true; } @@ -157,11 +162,13 @@ // execute commands in backtrack order public boolean backtrack(HashMap references) throws Exception { for(int i = 0; i < arguments.size(); ++i) { - Command arg = (Command) arguments.elementAt(i); + Command arg = arguments.elementAt(i); + arg.backtrack(references); } for(int i = 0; i < operations.size(); ++i) { - Command opr = (Command) operations.elementAt(i); + Command opr = operations.elementAt(i); + opr.backtrack(references); } if(status == Command.CHILDREN_FILTERED) { @@ -175,16 +182,18 @@ } } - // put command in one of two collections - arguments ot operations + // put command in one of two collections - arguments or operations private int doBeforeRun(HashMap references) throws Exception { if(status == Command.INITIALIZED) { for(int i = 0; i < commands.size(); ++i) { - Command cmd = (Command) commands.elementAt(i); - Vector dest = operations; + Command cmd = commands.elementAt(i); + + // XXX is this correct? if(cmd.isExecutable()) { - dest = arguments; + arguments.add(cmd); + } else { + operations.add(cmd); } - dest.add(cmd); } return Command.CHILDREN_FILTERED; } else { @@ -258,12 +267,12 @@ private int doAfterRun(HashMap references) throws Exception { if(status == Command.COMMAND_EXECUTED) { //System.out.println("doAfterRun(): command " + getResultType() + " processed..."); - Vector toBeRemoved = new Vector(); + Vector toBeRemoved = new Vector(); try { Statement[] statements = null; for(int i = 0; i < operations.size(); ++i) { - Command cmd = (Command) operations.elementAt(i); + Command cmd = operations.elementAt(i); if(cmd.isArrayElement()) { @@ -600,10 +609,12 @@ // return a list of arguments as of Argument type private Argument[] getArguments() { Argument[] args = new Argument[auxArguments.size() + arguments.size()]; + for(int i = 0; i < auxArguments.size(); ++i) - args[i] = (Argument) auxArguments.elementAt(i); + args[i] = auxArguments.elementAt(i); for(int j = 0; j < arguments.size(); ++j) { - Command cmd = (Command) arguments.elementAt(j); + Command cmd = arguments.elementAt(j); + if(cmd.getStatus() >= Command.COMMAND_EXECUTED) { args[auxArguments.size() + j] = cmd.getResult(); } else { @@ -625,9 +636,9 @@ // copy arguments to treat as commands private void copyArgumentsToCommands() { - Iterator i = arguments.iterator(); + Iterator i = arguments.iterator(); while(i.hasNext()) { - Command cmd = (Command) i.next(); + Command cmd = i.next(); cmd.status = Command.CHILDREN_FILTERED; operations.add(cmd); } @@ -640,9 +651,9 @@ } // return number of commands - private int getOperationsNumber() { - return operations.size(); - } +// private int getOperationsNumber() { +// return operations.size(); +// } // add argument to the beginning of arguments private void addArgument(Argument argument, int idx) { @@ -701,7 +712,7 @@ } private boolean matchMethodParams(Method method, HashMap references) { - Class[] paramTypes = method.getParameterTypes(); + Class[] paramTypes = method.getParameterTypes(); Argument[] args = getArguments(); if(args == null) return false; boolean result = true; @@ -726,7 +737,7 @@ } public static HashMap parseAttrs(String tagName, Attributes attrs) { - HashMap result = new HashMap(); + HashMap result = new HashMap(); if(tagName.equals("object")) { for(int i = 0; i < objectAttrNames.length; ++i) { String name = objectAttrNames[i]; @@ -791,19 +802,19 @@ return Command.INITIALIZED; } - private static String translateStatus(int status) { - String result = "unknown"; - if(status == Command.INITIALIZED) { - result = "intialized"; - } else if(status == Command.CHILDREN_FILTERED) { - result = "children filtered"; - } else if(status == Command.COMMAND_EXECUTED) { - result = "executed"; - } else if(status == Command.CHILDREN_PROCESSED) { - result = "children processed"; - } - return result; - } +// private static String translateStatus(int status) { +// String result = "unknown"; +// if(status == Command.INITIALIZED) { +// result = "intialized"; +// } else if(status == Command.CHILDREN_FILTERED) { +// result = "children filtered"; +// } else if(status == Command.COMMAND_EXECUTED) { +// result = "executed"; +// } else if(status == Command.CHILDREN_PROCESSED) { +// result = "children processed"; +// } +// return result; +// } private static final String[] objectAttrNames = { "id", "idref", "class", "field", "method", "property", "index" }; Index: main/java/org/apache/harmony/beans/DefaultPersistenceDelegatesFactory.java =================================================================== --- main/java/org/apache/harmony/beans/DefaultPersistenceDelegatesFactory.java (revision 423454) +++ main/java/org/apache/harmony/beans/DefaultPersistenceDelegatesFactory.java (working copy) @@ -32,7 +32,8 @@ public final class DefaultPersistenceDelegatesFactory { - private static HashMap persistenceDelegates = new HashMap(); + private static HashMap persistenceDelegates = + new HashMap(); private static PersistenceDelegate createPersistenceDelegate(Class type) { PersistenceDelegate pd = null; @@ -65,8 +66,8 @@ public static PersistenceDelegate getPersistenceDelegate(Class type) { String className = type.getName(); - PersistenceDelegate result = - (PersistenceDelegate) persistenceDelegates.get(className); + PersistenceDelegate result = persistenceDelegates.get(className); + if(result == null) { if(type.isArray()) { result = org.apache.harmony.beans.ArrayPersistenceDelegate.getInstance(); Index: main/java/org/apache/harmony/beans/Handler.java =================================================================== --- main/java/org/apache/harmony/beans/Handler.java (revision 423454) +++ main/java/org/apache/harmony/beans/Handler.java (working copy) @@ -37,19 +37,19 @@ public class Handler extends DefaultHandler { - private Vector result; - private Vector commands; + private Vector result; + private Vector commands; private XMLDecoder decoder; - private HashMap references; - private Stack stack; + private HashMap references; + private Stack stack; private int tabCount; - public Handler(XMLDecoder decoder, Vector result) { + public Handler(XMLDecoder decoder, Vector result) { this.decoder = decoder; this.result = result; - this.commands = new Vector(); - this.references = new HashMap(); - this.stack = new Stack(); + this.commands = new Vector(); + this.references = new HashMap(); + this.stack = new Stack(); } // clear collections to prepare parsing document @@ -79,7 +79,7 @@ if(data.length() > 0) { Command.prn(tabCount, tabCount + ">setting data=" + data + ""); - Command cmd = (Command) stack.peek(); + Command cmd = stack.peek(); cmd.setData(data); } } @@ -89,12 +89,12 @@ public void endElement(String namespaceURI, String localeName, String tagName) throws SAXException { - Command cmd = (Command) stack.pop(); - cmd.setTabCount(tabCount); + Command cmd = stack.pop(); + //cmd.setTabCount(tabCount); // find if command works in context if(!stack.isEmpty()) { - Command ctx = (Command) stack.peek(); + Command ctx = stack.peek(); ctx.addChild(cmd); } @@ -124,22 +124,19 @@ // iterate over deferred commands and execute them again public void endDocument() throws SAXException { for(int i = 0; i < commands.size(); ++i) { - Command cmd = (Command) commands.elementAt(i); - boolean backtracked = true; - try { - backtracked = cmd.backtrack(references); - } catch (Exception e) { - throw new SAXException("Exception in command excution"); - } - /* - if(!backtracked) - throw new SAXException("Command " + cmd.getTagName() + - " is unresolved on second run() call."); - */ + Command cmd = commands.elementAt(i); + try { + cmd.backtrack(references); + } catch (Exception e) { + throw new SAXException("Exception in command execution"); + } +// if(!backtracked) +// throw new SAXException("Command " + cmd.getTagName() + +// " is unresolved on second run() call."); } for(int i = 0; i < commands.size(); ++i) { - Command cmd = (Command) commands.elementAt(i); + Command cmd = commands.elementAt(i); result.add(cmd.getResultValue()); } }