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

Reply via email to