原因不明的ArrayStoreException - 代码或配置问题

时间:2012-01-22 21:31:50

标签: java configuration classpath classloader environment

我正在尝试通过运行java 1.5版的Websphere Platform 6.1在Windows XP计算机(版本5.1 build 2600 Service Pack 3)上进行本地测试时,调试正常运行的应用程序。

当应用程序部署到运行java版本1.5.0_24的UNIX服务器(SunOS,版本5.10)时,此应用程序抛出ArrayStoreException。

我倾向于这是一个环境配置问题,但(除了在本地工作)我似乎无法确认这是一个配置问题。

以下是添加到代码中的日志消息 以进行故障排除。如日志中所述,代码正在尝试将 Profile 对象添加到 Profile 类型的数组中。我不明白为什么那不起作用。

CollectionUtility.searchMapmsg = ZZZZZ Caught ArrayStoreException ZZZZZ

CollectionUtility.searchMap | msg = ZZZZZ无法将列表项添加到类型为[Lcom.process.im.profile.impl.Profile; ZZZZZ

CollectionUtility.searchMap | msg = ZZZZZ List [0]是类com.process.im.profile.impl.Profile,toString()= com.process.im.profile.impl.Profile mId = 4,mLongName = ccounting ZZZZZ

以下是产生错误的 java代码

public static Object[] searchMap(Map m, Object[] keys, Object[] a)
{
    if (keys != null && a != null)
    {
        List<Object> l = new ArrayList<Object>(keys.length);

        searchMap(m, keys, l, true, null);

        try
        {
            a = l.toArray(a);

        }
        catch (ArrayStoreException eArrayStore)
        {
            Log.warning("CollectionUtility.searchMap", "ZZZZZ Caught ArrayStoreException ZZZZZ", 0);

            if(l==null)
            {
                Log.warning("CollectionUtility.searchMap", "ZZZZZ Core CollectionUtility ZZZZZ null list.", 0);
            }
            else
            {
                for(int i=0; i<l.size(); i++)
                {
                    Object bug = l.get(i);

                    if(bug==null)
                    {
                        Log.warning("CollectionUtility.searchMap", "ZZZZZ List[" + i + "] is null ZZZZZ", 0);
                    }
                    else
                    {
                        if (a!=null && !a.getClass().getName().equals(bug.getClass().getName()))
                        {
                            Log.warning("CollectionUtility.searchMap", "ZZZZZ Unable to add list item to Array of type " + a.getClass().getName() + " ZZZZZ", 0);

                            Log.warning("CollectionUtility.searchMap", "ZZZZZ List[" + i + "] is class " + bug.getClass().getName() + ", toString()=" + bug.toString() + " ZZZZZ", 0);
                        }

                    }
                }
            }

            throw eArrayStore;

        }
    }

    return a;
}

我知道我可能会遗漏一些简单的东西,但我不确定接下来要检查什么。如果您有任何想法,请告诉我。非常感谢任何和所有的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

对于一个,您正在将Object数组的类与Object进行比较。我很确定这不是你打算做的。

相关问题