1 – Introduction
Lately I have been asked to solve the following problem with the ReconciliationEvent91.jar package for Oracle Identity Manager:
trace log
ERROR,06 Oct 2010 15:12:40,362,[XELLERATE.WEBAPP],Class/Method: tcActionBase/execute encounter some problems: java.util.Collections$UnmodifiableMap cannot be cast to java.util.HashMap
java.lang.ClassCastException: java.util.Collections$UnmodifiableMap cannot be cast to java.util.HashMap
at com.oracle.oim.ocs.reconciliationEvents91.ReconciliationEventsAction.getSelectedValuesToLink(ReconciliationEventsAction.java:438)
at com.oracle.oim.ocs.reconciliationEvents91.ReconciliationEventsAction.handleStatusButtons(ReconciliationEventsAction.java:333)
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:597)
...
Basing on the steps taken to solve this issue, I want to write down the main guidelines to decompile, modify and repackage existing jar files; I want also to put the focus on Oracle Identity Manager cause by my experience the following steps are more or less the same that should be used whenever you need to add custom backend functionalities to the product.
2 – Prerequisites
You will need the following:
- The last version of the JAVA SDK (You could need the J2EE libraries also)
- A JAVA IDE (Oracle JDeveloper 11g has been used in this case)
- A JAVA decompiler tool (JAD has been used http://www.varaneckas.com/jad)
Read the rest of this entry »