I still don't quite understand Option 2. So what would be stored in this new attribute "keystores1"? If it still contains an instance of FileKeystoreInstance, then there is still a serialization problem.
-Jack On Sat, Mar 13, 2010 at 5:20 PM, Ashish Jain <[email protected]> wrote: > Hi Joe, > > Thanks for your comments. The intent of using option #2 was to make use of > getAttribute and also since modifying the KeystoreManager interface will not > have any effect on any existing functionalities. However as you pointed out > a get method w/o any return types may be misleading. > > Thanks > Ashish > > > On Fri, Mar 12, 2010 at 8:46 PM, Joe Bohn <[email protected]> wrote: > >> I don't know much about the details of the problem but it seems to me that >> you would either make the class serializable (option #1) or exclude it from >> serialization if it is not necessary. I don't see how this would impact any >> existing functions. So I guess I would vote for #1. >> >> I don't understand why you would want to have a "get*" method that doesn't >> return anything - but perhaps I'm missing the point of option #2. >> >> Joe >> >> >> >> Ashish Jain wrote: >> >>> Hi ALL, >>> >>> I have opened up a JIRA GERONIMO-5180 on the unlockKeystore command >>> failure if keystore is created with keytool.exe. I was trying to fix this >>> issue >>> which requires some changes in the class declaration or interface. >>> Following code is being utilized to fix up the issue >>> KeystoreInstance[] >>> keystores=(KeystoreInstance[])kernel.getAttribute(abstractName,"keystores"); >>> where abstractName is obtained through >>> "org.apache.geronimo.management.geronimo.KeystoreManager". However I hit >>> the following exception: >>> >>> java.rmi.UnmarshalException: error unmarshalling return; nested exception >>> is: >>> java.io.WriteAbortedException: writing aborted; >>> java.io.NotSerializableE >>> xception: org.apache.geronimo.security.keystore.FileKeystoreInstance >>> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:172) >>> at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source) >>> at >>> javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(RMIConnecti >>> onImpl_Stub.java:400) >>> at >>> javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection. >>> invoke(RMIConnector.java:984) >>> >>> There are 2 ways to fix this up. >>> >>> 1) Make the class >>> org.apache.geronimo.security.keystore.FileKeystoreInstance serializable. >>> 2) add a new variable in FileKeystoreManager and add a new method in >>> KeystoreManager which does not return anything and just gives a call >>> to getKeystores(). For example getKeystores1() as the new method in >>> KeystoreManager and a new variable as keystores1. >>> >>> I shall prefer #2 over #1 as it should not have any effect on existing >>> functionalities. >>> >>> Suggestions/advice/comments?? >>> >>> Thanks >>> Ashish >>> >> >> >
