You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Ron Gavlin (JIRA)" <tu...@ws.apache.org> on 2006/08/31 18:54:23 UTC

[jira] Commented: (TUSCANY-682) NPE at o.a.t.sdo.impl.ClassImpl.getProperty(ClassImpl.java:192) w/multiple threads

    [ http://issues.apache.org/jira/browse/TUSCANY-682?page=comments#action_12431917 ] 
            
Ron Gavlin commented on TUSCANY-682:
------------------------------------

Hi Ron,

Multiple threads eh .... The only way I can see this happing is when 
propertyNameToProperyMap is set back to null in getProperty(String). Could 
you try changing a couple of ClassImpl methods to the following and see if 
it fixes the problem?

  private void initAliasNames(boolean force) {
    if (propertyNameToPropertyMap == null || force)
    {
      Map result = new HashMap();
      for (Iterator i = getProperties().iterator(); i.hasNext(); )
      {
        Property property = (Property)i.next();
        result.put(property.getName(), property);

        List aliasNames = property.getAliasNames();
        for (int count = aliasNames.size(); count > 0; )
        {
          result.put(aliasNames.get(--count), property);
        }
      }
      propertyNameToPropertyMap = result;
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated NOT
   */
  public Property getProperty(String propertyName)
  {
    initAliasNames(false);
    Property property = 
(Property)propertyNameToPropertyMap.get(propertyName);
    if (property == null && !isOpen()) {
      //propertyNameToPropertyMap = null;
      initAliasNames(true);
      property = (Property)propertyNameToPropertyMap.get(propertyName);
    }
    return property;
  }

Thanks,
Frank.


> NPE at o.a.t.sdo.impl.ClassImpl.getProperty(ClassImpl.java:192) w/multiple threads
> ----------------------------------------------------------------------------------
>
>                 Key: TUSCANY-682
>                 URL: http://issues.apache.org/jira/browse/TUSCANY-682
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SDO Implementation
>    Affects Versions: Java-M1
>         Environment: Win2K, multi-threaded load test
>            Reporter: Ron Gavlin
>            Priority: Critical
>
> I receive the following NPE when using Tuscany SDO in a multi-threaded environment. Here is the stack trace:
> java.lang.NullPointerException
> at org.apache.tuscany.sdo.impl.ClassImpl.getProperty(ClassImpl.java:192)
> at org.apache.tuscany.sdo.util.DataObjectUtil.getProperty(DataObjectUtil.java:2342)
> at org.apache.tuscany.sdo.util.DataObjectUtil.getProperty(DataObjectUtil.java:1284)
> at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.setFeatureName(DataObjectUtil.java:2032)
> at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.process(DataObjectUtil.java:2139)
> at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.init(DataObjectUtil.java:1918)
> at org.apache.tuscany.sdo.util.DataObjectUtil$Accessor.create(DataObjectUtil.java:1838)
> at org.apache.tuscany.sdo.util.DataObjectUtil.get(DataObjectUtil.java:739)
> at org.apache.tuscany.sdo.util.DataObjectUtil.get(DataObjectUtil.java:213)
> ...
> I suspect the NPE is due to synchronization problems with the ClassImpl.propertyNameToPropertyMap. This problem occurs during load testing of our application. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org