These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 
Author Message
 Post subject: argument type mismatch
PostPosted: Sun Jun 21, 2009 12:39 pm 
Newbie

Joined: Fri Jun 19, 2009 6:19 pm
Posts: 5
Hi, I am getting the following error. The problem that i see is that PersistentMap is Hibernate's coounterpart for java.util.HashMap. If so, why am i getting the error?

ERROR [http-8443-Processor24] (BasicPropertyAccessor.java:62) - IllegalArgumentException in class: mod.sun.security.acl.AclImpl, setter method of property: allowedUsersTable
ERROR [http-8443-Processor24] (BasicPropertyAccessor.java:66) - expected type: java.util.HashMap, actual value: org.hibernate.collection.PersistentMap
ERROR [http-8443-Processor24] (StandardWrapperValve.java:253) - Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:40)
at org.hibernate.tuple.AbstractTuplizer.setPropertyValues(AbstractTuplizer.java:207)
at org.hibernate.tuple.PojoTuplizer.setPropertyValues(PojoTuplizer.java:176)
at org.hibernate.persister.entity.BasicEntityPersister.setPropertyValues(BasicEntityPersister.java:2919)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:225)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:96)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:468)
at org.hibernate.engine.Cascades$5.cascade(Cascades.java:154)
at org.hibernate.engine.Cascades.cascadeAssociation(Cascades.java:771)
at org.hibernate.engine.Cascades.cascade(Cascades.java:720)
at org.hibernate.engine.Cascades.cascade(Cascades.java:847)
at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:363)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:265)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
at com.belfast.storage.dao.ObjectDataDAO.saveObject(ObjectDataDAO.java:50)
at com.belfast.storage.ObjectDataManager.storeObject(ObjectDataManager.java:21)
at com.belfast.storage.StorageManager.storeObjectInCloud(StorageManager.java:113)
at com.belfast.user.data.UploadFileAction.execute(UploadFileAction.java:122)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:613)


My code is as follows :
/*
* Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Sun designates this
* particular file as subject to the "Classpath" exception as provided
* by Sun in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit http://www.sun.com if you need additional information or
* have any questions.
*/

package mod.sun.security.acl;

import java.security.Principal;
import java.security.acl.Acl;
import java.security.acl.AclEntry;
import java.security.acl.Group;
import java.security.acl.NotOwnerException;
import java.security.acl.Permission;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.Vector;

import com.belfast.storage.object.ObjectData;

/**
* An Access Control List (ACL) is encapsulated by this class.
* @author Satish Dharmaraj
*/
public class AclImpl extends OwnerImpl implements Acl {
//
// Maintain four tables. one each for positive and negative
// ACLs. One each depending on whether the entity is a group
// or principal.
//

private long aclid;

private HashMap<Principal, AclEntry> allowedUsersTable =
new HashMap<Principal, AclEntry>(23);
private HashMap<Principal, AclEntry> allowedGroupsTable =
new HashMap<Principal, AclEntry>(23);
private HashMap<Principal, AclEntry> deniedUsersTable =
new HashMap<Principal, AclEntry>(23);
private HashMap<Principal, AclEntry> deniedGroupsTable =
new HashMap<Principal, AclEntry>(23);
private String aclName = null;
private Vector<Permission> zeroSet = new Vector<Permission>(1,1);
private ObjectData object;

and the mapping file is :

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="mod.sun.security.acl">
<class name="AclImpl" table="BEACL">
<id name="aclid" column="aclid">
<generator class="native"></generator>
</id>
<map name="allowedUsersTable" table="beaclentry">
<key column="aclentryid"></key>
<index-many-to-many column="principal" class="com.belfast.db.object.Alias"></index-many-to-many>
<one-to-many class="mod.sun.security.acl.AclEntryImpl"></one-to-many>
</map>
<map name="allowedGroupsTable" table="beaclentry">
<key column="aclentryid"></key>
<index-many-to-many column="principal" class="mod.sun.security.acl.GroupImpl"></index-many-to-many>
<one-to-many class="mod.sun.security.acl.AclEntryImpl"></one-to-many>
</map>
<map name="deniedUsersTable" table="beaclentry">
<key column="aclentryid"></key>
<index-many-to-many column="principal" class="com.belfast.db.object.Alias"></index-many-to-many>
<one-to-many class="mod.sun.security.acl.AclEntryImpl"></one-to-many>
</map>
<map name="deniedGroupsTable" table="beaclentry">
<key column="aclentryid"></key>
<index-many-to-many column="principal" class="mod.sun.security.acl.GroupImpl"></index-many-to-many>
<one-to-many class="mod.sun.security.acl.AclEntryImpl"></one-to-many>
</map>
<property name="aclName"></property>
<list name="zeroSet" inverse="false" cascade="all" table="BEPERM">
<key column="permid"/>
<index column="permission"></index>
<one-to-many class="mod.sun.security.acl.PermissionImpl"></one-to-many>
</list>
<one-to-one name="object" class="com.belfast.storage.object.ObjectData" constrained="true"/>
</class>
</hibernate-mapping>


Top
 Profile  
 
 Post subject: Re: argument type mismatch
PostPosted: Sun Jun 21, 2009 6:39 pm 
Beginner
Beginner

Joined: Thu Feb 08, 2007 10:40 am
Posts: 46
Try to declare the Variables as Map not HashMap.


Top
 Profile  
 
 Post subject: Re: argument type mismatch
PostPosted: Mon Jun 22, 2009 7:26 pm 
Newbie

Joined: Fri Jun 19, 2009 6:19 pm
Posts: 5
Thanks, what you said is right. But i still am getting the same error.


Top
 Profile  
 
 Post subject: Re: argument type mismatch
PostPosted: Mon Jun 22, 2009 9:28 pm 
Beginner
Beginner

Joined: Wed Jun 17, 2009 9:03 pm
Posts: 31
Location: mumbai
What is the declared type input parameter for allowedUsersTable property setter method. Is it Map or HashMap ?


Top
 Profile  
 
 Post subject: Re: argument type mismatch
PostPosted: Wed Jun 24, 2009 6:02 pm 
Newbie

Joined: Fri Jun 19, 2009 6:19 pm
Posts: 5
Thanks a lot. I corrected it and it now works. Now i have to make a Vector an ArrayList and solve more problems. Thanks again.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.