ClassCastException in InvocableMap.ParallelAwareAggregator

I am using InvocableMap.ParallelAwareAggregator to sort results set on cache server side. But I'm keep getting ClassCastException like below :
2008-02-14 17:33:28.603 Oracle Coherence DC 3.3.1/389p1 <Info> (thread=main, member=n/a): Connected to 10.5.235.162:9096
Exception in thread "main" com.tangosol.io.pof.PortableException (Remote: An exception occurred while processing a AggregateFilterRequest) (Wrapped: Failed request execution for DistributedService service on Member(Id=10, Timestamp=2008-02-14 17:21:38.86, Address=10.5.235.162:8089, MachineId=58530, Location=machine:docqa4,member:dvCache2)) java.lang.ClassCastException
at com.docview.test.SortByServerAggregator$SortingParallelAggregator.sortByDate(SortByServerAggregator.java:188)
at com.docview.test.SortByServerAggregator$SortingParallelAggregator.sortEntries(SortByServerAggregator.java:151)
at com.docview.test.SortByServerAggregator$SortingParallelAggregator.aggregate(SortByServerAggregator.java:133)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.DistributedCache.onAggregateFilterRequest(DistributedCache.CDB:74)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.DistributedCache$AggregateFilterRequest.run(DistributedCache.CDB:1)
at com.tangosol.coherence.component.util.DaemonPool$WrapperTask.run(DaemonPool.CDB:24)
at com.tangosol.coherence.component.util.DaemonPool$Daemon.onNotify(DaemonPool.CDB:49)
at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:35)
at java.lang.Thread.run(Thread.java:534)
Any ideas ? I can see the messages in cache server logs which indicate the sorting is done and size of sorted entries on each cache server instance. But if trying to print out each entry, I will get ClassCastException.
Attached please see my codes as below :
==================================================
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.List;
import java.util.TreeSet;
import java.util.HashSet;
import java.util.ArrayList;
import com.tangosol.io.ExternalizableLite;
import com.tangosol.util.ExternalizableHelper;
import com.tangosol.util.InvocableMap;
import com.tangosol.util.ValueExtractor;
import com.tangosol.util.InvocableMap.Entry;
import com.tangosol.util.InvocableMap.EntryAggregator;
import com.tangosol.util.InvocableMap.ParallelAwareAggregator;
import com.tangosol.util.extractor.ReflectionExtractor;
import com.docview.query.Cache_Query_Constants;
import com.docview.util.SortUtils;
import com.docview.cache.MultiTagPubSearchCacheKey;
import com.docview.entity.MultiTagPubSearchCacheEntity;
public class SortByServerAggregator implements ParallelAwareAggregator, ExternalizableLite {
     private String sortFlag;
     private String ascDescFlag;
     public SortByServerAggregator(String sortFlag, String ascDescFlag) {
          this.sortFlag = sortFlag;
          this.ascDescFlag = ascDescFlag;
     public SortByServerAggregator() {
          super();
     public Object aggregate(Set entries) {
          return new SortingParallelAggregator(sortFlag, ascDescFlag).aggregate(entries);
     public Object aggregateResults(Collection resultObjects) {
          return mergeMultipleResults(resultObjects);
     public EntryAggregator getParallelAggregator() {
          return new SortingParallelAggregator(sortFlag, ascDescFlag);
     public void readExternal(DataInput input) throws IOException {
          sortFlag = ExternalizableHelper.readSafeUTF(input);
          ascDescFlag = ExternalizableHelper.readSafeUTF(input);
     public void writeExternal(DataOutput output) throws IOException {
          ExternalizableHelper.writeSafeUTF(output, sortFlag);
          ExternalizableHelper.writeSafeUTF(output, ascDescFlag);
     private List mergeMultipleResults(Collection resultObjects) {
          ArrayList list = new ArrayList();
          Iterator iter = resultObjects.iterator();
          while (iter.hasNext()) {
               ParallelResultObject result = (ParallelResultObject)iter.next();
               list.addAll(result.generateResultList());
          return list;
     public static class ParallelResultObject implements ExternalizableLite {
          private MultiTagPubSearchCacheEntity[] entries;
          public ParallelResultObject() {}
          public ParallelResultObject(MultiTagPubSearchCacheEntity[] entries) {
               this.entries = entries;
          public List generateResultList() {
               ArrayList l = new ArrayList();
               for(int i=0;i<entries.length;i++) {
                    l.add(entries);
               return l;
          public void readExternal(DataInput input) throws IOException {
               int numEntries = ExternalizableHelper.readInt(input);
               if(numEntries >0) {
                    entries = new MultiTagPubSearchCacheEntity[numEntries];
                    for(int i=0;i<numEntries;i++) {
                         entries[i] = (MultiTagPubSearchCacheEntity)ExternalizableHelper.readObject(input);     
          public void writeExternal(DataOutput output) throws IOException {
               int numEntries = entries.length;
               if(numEntries >0) {
                    ExternalizableHelper.writeInt(output, numEntries);
                    for(int i=0;i<numEntries;i++) {
                         ExternalizableHelper.writeObject(output, entries[i]);     
     public static class SortingParallelAggregator implements ExternalizableLite, EntryAggregator {
          private String sortFlag;
          private String ascDescFlag;
          public SortingParallelAggregator() {
               super();
          public SortingParallelAggregator(String sortFlag, String ascDescFlag) {
               super();
               this.sortFlag = sortFlag;
               this.ascDescFlag = ascDescFlag;
          public Object aggregate(Set entries) {
               return sortEntries(entries, sortFlag, ascDescFlag);
          public void readExternal(DataInput input) throws IOException {
               sortFlag = ExternalizableHelper.readSafeUTF(input);
               ascDescFlag = ExternalizableHelper.readSafeUTF(input);
          public void writeExternal(DataOutput output) throws IOException {
               ExternalizableHelper.writeSafeUTF(output, sortFlag);
               ExternalizableHelper.writeSafeUTF(output, ascDescFlag);
          private ParallelResultObject sortEntries(Set entries, String sortFlag, String ascDescFlag) {
               ArrayList sortedList;
               ArrayList arrayList = new ArrayList(entries);     
               if ( sortFlag != null && !"".equals(sortFlag.trim()) ) {
     if ( Cache_Query_Constants.DATE_SORT_FLAG.equals(sortFlag.trim().toUpperCase()) ) {
                         sortedList = sortByDate(arrayList, ascDescFlag);
     } else {
     sortedList = arrayList;
     } else {
     sortedList = arrayList;
               return new ParallelResultObject(convertListToArray(sortedList));
          private ArrayList sortByDate(ArrayList arrayList, String ascDescFlag) {
               if("DESC".equals(ascDescFlag.trim().toUpperCase())) {
                    System.out.println("Start sort by DATE DESC");
                    Collections.sort(arrayList, new Comparator() {
                         public int compare(Object o1, Object o2) {
                              int rc = 0;
                              if((o1 instanceof MultiTagPubSearchCacheEntity) && (o2 instanceof MultiTagPubSearchCacheEntity))
                                   System.out.println("Sorting by MultiTagPubSearchCacheEntity ...");
                                   MultiTagPubSearchCacheEntity p1 = (MultiTagPubSearchCacheEntity) o1;
                                   MultiTagPubSearchCacheEntity p2 = (MultiTagPubSearchCacheEntity) o2;
                                   rc = p1.getPub_Date() - p2.getPub_Date();
                                   if ( rc == 0 ) {
                                        rc = p2.getTitle().compareTo(p1.getTitle());
                              return rc;
                    Collections.reverse(arrayList);
                    System.out.println("Done sort by DATE DESC");
               System.out.println("Size of sorted result : " + arrayList.size());
               Iterator iter = arrayList.iterator();
               while(iter.hasNext()) {
     MultiTagPubSearchCacheEntity e = (MultiTagPubSearchCacheEntity)iter.next();
     System.out.println("### Sorted Entries : " + e.toString());
               return arrayList;
          private MultiTagPubSearchCacheEntity[] convertListToArray(ArrayList sortedList) {
               MultiTagPubSearchCacheEntity[] entries = new MultiTagPubSearchCacheEntity[sortedList.size()];
               Iterator iter = sortedList.iterator();
               int idx = 0;
               while(iter.hasNext()) {
                    entries[idx] = (MultiTagPubSearchCacheEntity)iter.next();     
                    idx++;
               return entries;
==================================================
Thanks,
Bing

Hi, Gene
I'm getting another ClassCastException during the client call as below :
public class SortByServerFactory
        // sortFlag
        public static MultiTagPubSearchCacheEntity[] filterAndSortByServer(String cacheName, String sortFlag, String ascDescFlag, Filter filter)
                InvocableMap cache = CacheFactory.getCache(cacheName);
                return (MultiTagPubSearchCacheEntity[])cache.aggregate(filter, new SortByServerAggregator(sortFlag, ascDescFlag));
}2008-02-15 15:11:41.850 Oracle Coherence DC 3.3.1/389p1 <Info> (thread=main, member=n/a): Connected to 10.56.32.91:9098
Exception in thread "main" java.lang.ClassCastException
at com.docview.test.SortByServerFactory.filterAndSortByServer(SortByServerFactory.java:16)
at com.docview.test.TestRegSectorAnalystCacheQueryInvocationSVC.main(TestRegSectorAnalystCacheQueryInvocationSVC.java:83)
Attached please find my updated "SortByServerAggregator" class also :
The method "aggregateResults(Collection resultObjects)" within SortByServerAggregator class will return "MultiTagPubSearchCacheEntity[]"
Would you please help me to point out where is problem ?
Maybe I'm still not fully understand how ParallelAwareAggregator works, and what should be done for aggregate(Set entries), aggregateResults(Collection resultObjects) and getParallelAggregator() .
Many thanks for your help.
Bing
=========================================================
public class SortByServerAggregator implements ParallelAwareAggregator, ExternalizableLite {
     private String sortFlag;
     private String ascDescFlag;
     public SortByServerAggregator(String sortFlag, String ascDescFlag) {
          this.sortFlag = sortFlag;
          this.ascDescFlag = ascDescFlag;
     public SortByServerAggregator() {
          super();
     public Object aggregate(Set entries) {
          return new SortingParallelAggregator(sortFlag, ascDescFlag).aggregate(entries);
     public Object aggregateResults(Collection resultObjects) {
          return mergeMultipleResults(resultObjects);
     public EntryAggregator getParallelAggregator() {
          return new SortingParallelAggregator(sortFlag, ascDescFlag);
     public void readExternal(DataInput input) throws IOException {
          sortFlag = ExternalizableHelper.readSafeUTF(input);
          ascDescFlag = ExternalizableHelper.readSafeUTF(input);
     public void writeExternal(DataOutput output) throws IOException {
          ExternalizableHelper.writeSafeUTF(output, sortFlag);
          ExternalizableHelper.writeSafeUTF(output, ascDescFlag);
     private MultiTagPubSearchCacheEntity[] mergeMultipleResults(Collection resultObjects) {
          HashSet tmpSet = new HashSet();
          Iterator iter = resultObjects.iterator();
          while (iter.hasNext()) {
               ParallelResultObject result = (ParallelResultObject)iter.next();
               int numEntries = result.getNumEntries();
               if(numEntries > 0) {
                    MultiTagPubSearchCacheEntity[] entries = result.getEntries();
                    for(int i=0;i<numEntries;i++) {
                         tmpSet.add(entries);     
          return toEntityArray(tmpSet);
     private MultiTagPubSearchCacheEntity[] toEntityArray(HashSet s) {
          MultiTagPubSearchCacheEntity[] entries = new MultiTagPubSearchCacheEntity[s.size()];
          int idx = 0;
          Iterator iter = s.iterator();
          while (iter.hasNext()) {
               MultiTagPubSearchCacheEntity e = (MultiTagPubSearchCacheEntity)iter.next();
               entries[idx] = e;
               idx++;
          return entries;
     public static class ParallelResultObject implements ExternalizableLite {
          private MultiTagPubSearchCacheEntity[] entries;
          private int numEntries;
          public ParallelResultObject() {}
          public ParallelResultObject(MultiTagPubSearchCacheEntity[] entries, int numEntries) {
               this.entries = entries;
               this.numEntries = numEntries;
          public List generateResultList() {
               ArrayList l = new ArrayList();
               if(entries != null) {
                    for(int i=0;i<entries.length;i++) {
                         l.add(entries[i]);
               return l;
          public MultiTagPubSearchCacheEntity[] getEntries() {
               return entries;
          public int getNumEntries() {
               return numEntries;
          public void readExternal(DataInput input) throws IOException {
               int numEntries = ExternalizableHelper.readInt(input);
               if(numEntries >0) {
                    MultiTagPubSearchCacheEntity[] entries = new MultiTagPubSearchCacheEntity[numEntries];
                    for(int i=0;i<numEntries;i++) {
                         entries[i] = (MultiTagPubSearchCacheEntity)ExternalizableHelper.readObject(input);     
               this.entries = entries;
          public void writeExternal(DataOutput output) throws IOException {
               if(numEntries >0) {
                    ExternalizableHelper.writeInt(output, numEntries);
                    for(int i=0;i<numEntries;i++) {
                         ExternalizableHelper.writeObject(output, entries[i]);     
               } else {
                    ExternalizableHelper.writeInt(output, 0);
     public static class SortingParallelAggregator implements ExternalizableLite, EntryAggregator {
          private String sortFlag;
          private String ascDescFlag;
          public SortingParallelAggregator() {
               super();
          public SortingParallelAggregator(String sortFlag, String ascDescFlag) {
               super();
               this.sortFlag = sortFlag;
               this.ascDescFlag = ascDescFlag;
          public Object aggregate(Set entries) {
               return sortEntries(entries, sortFlag, ascDescFlag);
          public void readExternal(DataInput input) throws IOException {
               sortFlag = ExternalizableHelper.readSafeUTF(input);
               ascDescFlag = ExternalizableHelper.readSafeUTF(input);
          public void writeExternal(DataOutput output) throws IOException {
               ExternalizableHelper.writeSafeUTF(output, sortFlag);
               ExternalizableHelper.writeSafeUTF(output, ascDescFlag);
          private ParallelResultObject sortEntries(Set entries, String sortFlag, String ascDescFlag) {
               ArrayList sortedList;
               ArrayList arrayList = new ArrayList(entries);     
               if ( sortFlag != null && !"".equals(sortFlag.trim()) ) {
     if ( Cache_Query_Constants.DATE_SORT_FLAG.equals(sortFlag.trim().toUpperCase()) ) {
                         sortedList = sortByDate(arrayList, ascDescFlag);
     } else {
     sortedList = arrayList;
     } else {
     sortedList = arrayList;
               return new ParallelResultObject(convertListToArray(sortedList), sortedList.size());
          private ArrayList sortByDate(ArrayList arrayList, String ascDescFlag) {
               if("DESC".equals(ascDescFlag.trim().toUpperCase())) {
                    System.out.println("Start sort by DATE DESC");
                    Collections.sort(arrayList, new Comparator() {
                         public int compare(Object o1, Object o2) {
                              int rc = 0;
                              if((o1 instanceof MultiTagPubSearchCacheEntity) && (o2 instanceof MultiTagPubSearchCacheEntity))
                                   System.out.println("Sorting by MultiTagPubSearchCacheEntity ...");
                                   MultiTagPubSearchCacheEntity p1 = (MultiTagPubSearchCacheEntity) o1;
                                   MultiTagPubSearchCacheEntity p2 = (MultiTagPubSearchCacheEntity) o2;
                                   rc = p1.getPub_Date() - p2.getPub_Date();
                                   if ( rc == 0 ) {
                                        rc = p2.getTitle().compareTo(p1.getTitle());
                              return rc;
                    Collections.reverse(arrayList);
                    System.out.println("Done sort by DATE DESC");
               System.out.println("Size of sorted result : " + arrayList.size());
               Iterator iter = arrayList.iterator();
               while(iter.hasNext()) {
     InvocableMap.Entry entry = (InvocableMap.Entry)iter.next();
                    MultiTagPubSearchCacheEntity e = (MultiTagPubSearchCacheEntity)entry.getValue();     
     System.out.println("### Sorted Entries : " + e.toString());
               return arrayList;
          private MultiTagPubSearchCacheEntity[] convertListToArray(ArrayList sortedList) {
               MultiTagPubSearchCacheEntity[] entries = new MultiTagPubSearchCacheEntity[sortedList.size()];
               Iterator iter = sortedList.iterator();
               int idx = 0;
               while(iter.hasNext()) {
                    InvocableMap.Entry e = (InvocableMap.Entry)iter.next();
                    entries[idx] = (MultiTagPubSearchCacheEntity)e.getValue();
                    idx++;
               return entries;
=========================================================

Similar Messages

  • ClassCastException in CompositeAggregator.Parallel

    As you Tangosol folks have proved so useful lately, I have another conundrum :)
    I am using the Tangosol library of aggregators to run a parallel query across two distributed cache service members. The code I am running is as follows:
    cache.aggregate(
                   new EqualsFilter("isRejected", false),
                   GroupAggregator.Parallel.createInstance("getCcyPair",
                        CompositeAggregator.Parallel.createInstance(
                             new InvocableMap.ParallelAwareAggregator[] {
                                  new Count(),
                                  new LongSum("getBalance")
    where I have confirmed that isRejected returns a boolean primitive and getBalance a long primitive.
    This appears to run fine on one node but across two nodes throws an exception:
    An exception occurred while processing a AggregateFilterRequest
    java.lang.ClassCastException: [Lcom.tangosol.util.InvocableMap$EntryAggregator;
         at com.tangosol.util.aggregator.CompositeAggregator$Parallel.getParallelAggregator(CompositeAggregator.java:330)
         at com.tangosol.util.aggregator.GroupAggregator$Parallel.getParallelAggregator(GroupAggregator.java:445)
         at com.tangosol.coherence.component.util.daemon.queueProcessor.service.DistributedCache$ViewMap.aggregate(DistributedCache.CDB:46)
         at com.tangosol.coherence.component.util.SafeNamedCache.aggregate(SafeNamedCache.CDB:1)
         at com.tangosol.coherence.component.util.collections.wrapperMap.WrapperNamedCache.aggregate(WrapperNamedCache.CDB:1)
         at com.tangosol.coherence.component.comm.messageFactory.NamedCacheFactory$AggregateFilterRequest.onRun(NamedCacheFactory.CDB:6)
         at com.tangosol.coherence.component.comm.message.Request.run(Request.CDB:13)
         at com.tangosol.coherence.component.net.extend.proxy.NamedCacheProxy.process(NamedCacheProxy.CDB:7)
         at com.tangosol.coherence.component.comm.Channel.onReceive(Channel.CDB:94)
         at com.tangosol.coherence.component.comm.Connection.onReceive(Connection.CDB:64)
         at com.tangosol.coherence.component.comm.ConnectionManager$MessageTask.run(ConnectionManager.CDB:4)
         at com.tangosol.coherence.component.util.DaemonPool$Daemon.onNotify(DaemonPool.CDB:41)
         at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:35)
         at java.lang.Thread.run(Thread.java:595)
    Any ideas? I have tried using an EntryAggregator[] array in the CompositeAggregator.Parallel constructor instead.
    Regards, James

    I am using coherence tangosol 3.3, and i get the same error.
    InvocableMap.EntryAggregator aggregator = GroupAggregator.createInstance(multiExtractor,
    CompositeAggregator.createInstance(
    new InvocableMap.EntryAggregator[]{
    new LongSum("getRiskQty"),
    new LongSum("getRiskDelta"),
    new LongSum("getRiskMtm"),
    new LongSum("getRiskGamma"),
    new LongSum("getRiskTheta"),
    new LongSum("getRiskVega"),
    new LongSum("getRiskCashVega"),
    new LongSum("getDiscRiskMtm"),
    new LongSum("getDiscRiskDelta")}
    results in this error:
    Exception in thread "main" com.tangosol.io.pof.PortableException (Remote: An exception occurred while processing a Aggrega
    teFilterRequest) java.lang.ClassCastException: [Lcom.tangosol.util.InvocableMap$EntryAggregator; cannot be cast to [Lcom.t
    angosol.util.InvocableMap$ParallelAwareAggregator;
         at com.tangosol.util.aggregator.CompositeAggregator$Parallel.getParallelAggregator(CompositeAggregator.java:330)
         at com.tangosol.util.aggregator.GroupAggregator$Parallel.getParallelAggregator(GroupAggregator.java:445)
         at com.tangosol.coherence.component.util.daemon.queueProcessor.service.DistributedCache$ViewMap.aggregate(DistributedCach
    e.CDB:44)
    I have a data client connecting to a tangosol cluster using a tcp proxy (tangosol*extend).
    The same code worked if the client was started on the same machine without using extend.
    Can somebody please help with this? Could this be a licensing issue? We are still evaluating the product.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Expand collection in GroupAggregator?

    Let's say I have an object in my cache with this method declared on it:
        public Collection getListOfStuff() { . . . }If I do this:
        GroupAggregator groupBy = GroupAggregator.createInstance("getListOfStuff", new Count());
        Map results = (Map) cache.aggregate((Filter) null, groupBy);I'll get counts of how many time each combination of stuff in the collection returned by getListOfStuff appears.
    What if I want to break out the individual elements in the collection before counting it? E.g., If I have two objects, one where getListOfStuff returns {noformat}["foo", "bar"]{noformat} and the other where it returns {noformat}["bar", "batz"]{noformat}
    I'd like to get the result:
    "foo" = 1;
    "bar" = 2;
    "batz" = 1;
    instead of:
    ["foo", "bar"] = 1;
    ["bar", "batz"] = 1;
    I don't see an easy way to do this. Is there one?
    Thanks.

    Hi timberwolf,
    You can write your own:
    import com.tangosol.net.CacheFactory;
    import com.tangosol.net.NamedCache;
    import com.tangosol.util.Base;
    import com.tangosol.util.Filter;
    import com.tangosol.util.InvocableMap;
    import com.tangosol.util.ValueExtractor;
    import com.tangosol.util.extractor.IdentityExtractor;
    import com.tangosol.util.extractor.ReflectionExtractor;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    * dimitri
    public class Main extends Base
        public static class MyAggregator implements InvocableMap.ParallelAwareAggregator
            public MyAggregator(String sMethodName)
                this(new ReflectionExtractor(sMethodName));
            public MyAggregator(ValueExtractor extractor)
                m_extractor = extractor;
            public InvocableMap.EntryAggregator getParallelAggregator()
                return this;
            public Object aggregateResults(Collection collResults)
                Map mapResult = new HashMap();
                for (Iterator iter = collResults.iterator(); iter.hasNext(); )
                    Map mapPartial = (Map) iter.next();
                    for (Iterator iterPartial = mapPartial.entrySet().iterator(); iterPartial.hasNext(); )
                        Map.Entry entry      = (Map.Entry) iterPartial.next();
                        Object    oKey       = entry.getKey();
                        int       cIncrement = ((Integer)entry.getValue()).intValue();
                        mapIncrement(mapResult, oKey, cIncrement);
                return mapResult;
            public Object aggregate(Set setEntries)
                Map            mapResults = new HashMap();
                ValueExtractor extractor  = m_extractor;
                for (Iterator iter = setEntries.iterator(); iter.hasNext(); )
                    InvocableMap.Entry entry = (InvocableMap.Entry) iter.next();
                    if (entry.isPresent())
                        Collection coll = (Collection) entry.extract(extractor);
                        for (Iterator iterExtracted = coll.iterator(); iterExtracted.hasNext(); )
                            mapIncrement(mapResults, iterExtracted.next(), 1);
                return mapResults;
            void mapIncrement(Map map, Object oKey, int cIncrement)
                Integer iValue = (Integer)map.get(oKey);
                iValue = iValue == null ? makeInteger(cIncrement) : makeInteger(iValue.intValue() + cIncrement);
                map.put(oKey, iValue);
            ValueExtractor m_extractor;
        public static void main(String[] asArg)
            try
                NamedCache cache = CacheFactory.getCache("test");
                cache.addIndex(IdentityExtractor.INSTANCE, false, null);
                Collection coll  = new ArrayList();
                coll.add("foo");
                coll.add("bar");
                cache.put("a", coll);
                coll.clear();
                coll.add("bar");
                coll.add("batz");
                cache.put("b", coll);
                Map  mapResult = (Map) cache.aggregate((Filter)null, new MyAggregator(IdentityExtractor.INSTANCE));
                System.out.println(mapResult);
            catch (Throwable oops)
                err(oops);
            finally
                CacheFactory.shutdown();
        }Regards,
    Dimitri

  • Query Cache to Derive Summary Data - Advice?

    Good Evening, I am faced with a problem and I was hoping to get a nudge in the right direction.
         I have a cache that is storing the status of orders and their respective times they took to process in that status going though our system. I need to retrieve from that some average times. I need to calculate the average time it took for an order to go from status "A" (endtime) to status "B" (starttime). So essentially i will need to retrieve the difference between variables of two different statuses for every order then get the average of those. I know how to query the cache to get my result set and then obviously iterate across them and calculate the average. However I was wondering/hoping there was a more eloquent solution.
         I have been reading through the user guide (http://wiki.tangosol.com/display/COH32UG/Provide+a+Data+Grid) and reading up on Aggregators and Agents but there are no complete examples for me to view and am unsure if these approaches would help in my goal.
         Knowing my task, is there any approach i should focus on and if so is there documentation anywhere to support that?
         Thanks in Advance!
         -- Grant
         Our data structure looks something like this:
         class ClientReport{
              public long lasttimeaccessed;
         public long clientid;
              ...some other stuff....
              Map Orders; //map of Order Objects, keyed on orderid
         class Order{
              public long orderID;
              ...some other stuff....
              Map statuses //map of status changes, keyed on status
         class Status{
              public String status;
              public long starttime;
              public long endtime;     
         }

    Hi Grant,
         first of all, you might want to create an index on the status changes, so that you can prefilter for the status changes, but for that you would need to implement a custom ValueExtractor implementation, because the status is twice nested in maps, and use that to create the index.
         You can add the index with that ValueExtractor with the addIndex(ValueExtractor, boolean, Comparator) method of the cache.
         The ValueExtractor would need to collect the status strings from each status change in each order, and return them as a collection.
         You can then use this index to filter for those report objects which do have at least one status changes ending up in the expected state.
         You could also create a similar ValueExtractor (let's name it ReportStatusObjectExtractor) which returns each Status objects from all orders in a report, and create an index also with this ValueExtractor.
         Please be aware that the ValueExtractor-s need to implement the equals() and the hashCode() method properly. In this case, because the extractors will have no parameters, you can implement equals() so that true is returned for all objects of the same class, and hashCode() can return 1.
         This index could then be used to speed up evaluation of the aggregator because you would not need to deserialize the entire report instance.
         You can now create an own InvocableMap.EntryAggregator implementation which should also implement the InvocableMap.ParallelAwareAggregator.
         The getParallelAggregator() method should return an instance of a Serializable class again implementing EntryAggregator, and in the aggregate method it should use the extract method on each entry with an instance of the second mentioned ValueExtractor (should be a constant) to extract the status objects belonging to the report instance from the index:
                  public class ReportStatusStringExtractor implements ValueExtractor, Serializable {
               public static final ReportStatusStringExtractor INSTANCE = new ReportStatusStringExtractor();
               public Object extract(Object oTarget) {
                 ClientReport report = (ClientReport) oTarget;
                 // extract each status strings from each order object and return all of them in a collection
               public boolean equals(Object other) {
                 return other!=null && other.getClass().equals(this.getClass());
               public int hashCode() {
                 return 1;
             public class ReportStatusObjectExtractor implements ValueExtractor, Serializable {
               public static final ReportStatusObjectExtractor INSTANCE = new ReportStatusObjectExtractor();
               public Object extract(Object oTarget) {
                 ClientReport report = (ClientReport) oTarget;
                 // extract each status objects from each order object and return all of them in a collection
               public boolean equals(Object other) {
                 return other!=null && other.getClass().equals(this.getClass());
               public int hashCode() {
                 return 1;
             public class OrderAverageAggregator implements InvocableMap.ParallelAwareAggregator {
               public static final OrderAverageAggregator  INSTANCE = new OrderAverageAggregator();
               public InvocableMap.EntryAggregator getParallelAggregator() {
                 return OrderAverageParallelAggregator.INSTANCE;
               public Object aggregateResults(Collection collResults) {
                 // join results from all servers
                 // the object returned from this method will be returned from the cache.aggregate call
               public Object aggregate(Set setEntries) {
                 // the object returned from this method will be returned
                 // from the cache.aggregate call if invoked on a replicated cache
                 return aggregateResults(
                   Collections.singletonList(
                     OrderAverageParallelAggregator.INSTANCE.aggregate(
                       setEntries)));
             public class OrderAverageParallelAggregator implements InvocableMap.EntryAggregator, Serializable {
               public static final OrderAverageParallelAggregator INSTANCE = new OrderAverageParallelAggregator();
             // aggregate method of the parallel aggregator
               public Object aggregate(Set setEntries) {
                 Iterator iter = setEntries.iterator();
                 while (iter.hasNext()) {
                   InvocableMap.Entry entry = iter.next();
                   Collection statusObjects = (Collection)  
                     entry.extract(ReportStatusObjectExtractor.INSTANCE);
                   // ... do averaging ...
                 // the objects returned from this method on each storage-enabled node will be passed in a collection
                 // to the aggregateResults method of the OrderAverageAggregator class
                 return (Serializable) result;
             // code doing the querying
             NamedCache cache = CacheFactory.getCache(...);
             Object result = cache.aggregate(new ContainsFilter(ReportStatusStringExtractor.INSTANCE, "expectedStatus"),
                   OrderAverageAggregator.INSTANCE);
             // code adding the indexes, this needs to run only once after the cluster is started
             NamedCache cache = CacheFactory.getCache(...);
             cache.addIndex(ReportStatusStringExtractor.INSTANCE, false, null);
             cache.addIndex(ReportStatusObjectExtractor.INSTANCE, false, null);
                       The class files for the two extractor classes and the OrderAverageParallelAggregator class must reside in the classpath of the storage-enabled cache JVMs.
         I hope this helps,
         Robert

  • Accessing index directly from backing map

    Hi Guys,
    I have an interesting problem and would greatly appreciate some input.
    I am trying to find the minimum or maximum values of a specific field from data held
    in the backing map for a cache.
    I have seen examples of PofValue being used to extract individual entries - or being used in
    Iterators, working through the entries in the backing map.
    However, I was wondering if there is a faster way to do this, given that the field I'm interested in
    has an ordered index created against it.
    My thoughts were along the lines of trying to extract the Mapindex entries for the field, and just then
    taking the first value (which, I'm assuming, would be the smallest since the index is ordered).
    Does this make sense, or do I need to abandon the idea of using the pre-existing index and just iterate through
    the PofValues? Is it even possible to access the index entries for values directly from the backing map?
    Many Thanks,
    Adrian.

    Hi Adrian,
    you should be able to write an index-aware filter which makes this really fast, provided that you have a sorted index on the particular attribute which sorts according to the same order (or reverse) according to which you want the least or highest value. The following Filter implementation filters for the entries with the least extracted value:
    import java.util.Map;
    import java.util.Set;
    import java.util.SortedMap;
    import com.tangosol.util.Filter;
    import com.tangosol.util.MapIndex;
    import com.tangosol.util.filter.ExtractorFilter;
    import com.tangosol.util.filter.IndexAwareFilter;
    public class LeastExtractedValueFilter extends ExtractorFilter implements IndexAwareFilter {
       public LeastExtractedValueFilter(ValueExtractor extractor) {
          super(extractor);
       public LeastExtractedValueFilter() {
       @Override
       protected boolean evaluateExtracted(Object extractedValue) {
          throw new UnsupportedOperationException("This filter is only usable with a sorted index");
       @Override
       public Filter applyIndex(Map mapIndexes, Set candidateKeys) {
          MapIndex mapIndex = (MapIndex) mapIndexes.get(m_extractor);
          if (mapIndex != null && mapIndex.isOrdered()) {
             SortedMap reverseMap = (SortedMap) mapIndex.getIndexContents();
             if (reverseMap.isEmpty()) {
                candidateKeys.clear();
             } else {
                candidateKeys.retainAll((Set)reverseMap.values().iterator().next());
             return null;
          throw new UnsupportedOperationException("This filter is only usable with a sorted index");
       @Override
       public int calculateEffectiveness(Map mapIndexes, Set candidateKeys) {
          MapIndex mapIndex = (MapIndex) mapIndexes.get(m_extractor);
          if (mapIndex != null && mapIndex.isOrdered()) {
             return 1;
          throw new UnsupportedOperationException("This filter is only usable with a sorted index");
    }You can then try to extract whatever you want from the candidates in a parallel aggregator, e.g.:
    import java.io.IOException;
    import java.io.Serializable;
    import java.util.Collection;
    import java.util.Set;
    import com.tangosol.io.pof.PofReader;
    import com.tangosol.io.pof.PofWriter;
    import com.tangosol.io.pof.PortableObject;
    import com.tangosol.util.InvocableMap;
    import com.tangosol.util.ValueExtractor;
    import com.tangosol.util.InvocableMap.EntryAggregator;
    import com.tangosol.util.InvocableMap.ParallelAwareAggregator;
    public class FirstEntryExtractorAggregator implements ParallelAwareAggregator {
       public static class Parallel extends FirstEntryExtractorAggregator implements PortableObject, Serializable {
          public Parallel() {
             super(null);
          public Parallel(ValueExtractor extractor) {
             super(extractor);
          @Override
          public void readExternal(PofReader in) throws IOException {
             extractor = (ValueExtractor) in.readObject(0);
          @Override
          public void writeExternal(PofWriter out) throws IOException {
             out.writeObject(0, extractor);
       protected ValueExtractor extractor;
       public FirstEntryExtractorAggregator(ValueExtractor extractor) {
          super();
          this.extractor = extractor;
       @Override
       public Object aggregate(Set entries) {
          if (!entries.isEmpty()) {
             InvocableMap.Entry entry = (InvocableMap.Entry)entries.iterator().next();
             return entry.extract(extractor);
          return null;
       @Override
       public Object aggregateResults(Collection collResults) {
          Comparable least = null;
          for (Object object : collResults) {
             least = leastOf(least, object);
          return least;
       private Comparable leastOf(Comparable least, Object other) {
          if (other == null) return least;
          Comparable compOther = (Comparable) other;
          if (least == null) return compOther;
          return compOther.compareTo(least) > 0 ? least : compOther;
       @Override
       public EntryAggregator getParallelAggregator() {
          return new Parallel(extractor);
    }You would then run this as:
    Object leastExtractedValue = cache.aggregate(new LeastExtractedValueFilter(extractor), new FirstEntryExtractorAggregator(extractor));Best regards,
    Robert
    Edited by: robvarga on Sep 21, 2010 3:00 PM
    Edited by: robvarga on Sep 21, 2010 7:44 PM

  • Running a task locally or invoking it once

    Hi,
    I want to run a quartz job on the entries of my cache deleting them if they apply to some constraint. I guess I can do that in 2 ways:
    1. run the quartz job on only 1 node which will call cache.invokeAll(filter, myProcessor). This node will send the entryProcessor to the other nodes that contain the relevant data.
    Question: How can I make sure a quartz job is run on only one node as all nodes are running the same code and use the same configuration? I don't want to specify the same quartz job an all nodes because then the job would be invoked once for each node. Do I need to define some sort of election policy for that? Or are there better ways to handle a similar situation where only one node of a cluster needs to trigger some action?
    2. run the quartz job on all nodes of the cluster. Each job will call cache.invokeAll(new KeyAssociatedFilter(filter), myProcessor) on every node. This will make sure the entryProcessor will only be executed on the own node's data. Will this work?
    Best regards
    Jan

    Jan,
    could you please describe your eviction criteria? If you want to remove the entries, then removing it by cache.removeAll() is the fastest approach, and for local only keys it automatically knows not to send to remote nodes, so you don't need the partition filter there.
    On the other hand, as you described your eviction criteria in an earlier post to require decision on the content of the entire cache, in which case the prefiltering should not have a partitioned filter.
    If your eviction criteria is the following: evict the number of keys from each category as the number of the surplus entries in the category, then PartitionFilter is not something you would want to use.
    Instead, you can first do an aggregation on the count of keys in each category to find out the number of keys to be removed. This can easily be done by a GroupAggregator and a Count:
    categorySizesByDiscriminator = cache.aggregate(GroupAggregator.createInstance("getCategoryDiscriminator", new Count()));where getCategoryDiscriminator is the name of the method (parentheses intentionally missing) which returns a different value for each category (was it getColor? ).
    After this you know how many entries the surplus is.
    You can now send a custom parallel aggregation which returns as many keys as the surplus from the category is from each node and throws away the unnecessary from the result (this is necessary because of the arbitrary distribution of the entries), something like this:
    import java.io.DataInput;
    import java.io.DataOutput;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import com.tangosol.io.ExternalizableLite;
    import com.tangosol.io.pof.PofReader;
    import com.tangosol.io.pof.PofWriter;
    import com.tangosol.io.pof.PortableObject;
    import com.tangosol.util.ExternalizableHelper;
    import com.tangosol.util.InvocableMap;
    import com.tangosol.util.InvocableMap.EntryAggregator;
    import com.tangosol.util.InvocableMap.ParallelAwareAggregator;
    import com.tangosol.util.extractor.ReflectionExtractor;
    public class ByCategoryToBeEvictedKeyHarvester implements
              ParallelAwareAggregator, PortableObject, ExternalizableLite {
         public static class PerNodeResultElement implements PortableObject, ExternalizableLite {
              private String categoryDiscriminator;
              private int currentCountPerCategory;
              private List<Object> keys;
              private transient int toBeEvictedFromCategory;
              public PerNodeResultElement() {
                   super();
              private PerNodeResultElement(String categoryDiscriminator, int toBeEvictedFromCategory) {
                   super();
                   this.categoryDiscriminator = categoryDiscriminator;
                   this.currentCountPerCategory = 0;
                   this.keys = new ArrayList<Object>(toBeEvictedFromCategory);
                   this.toBeEvictedFromCategory = toBeEvictedFromCategory;
              private void addEntry(InvocableMap.Entry entry) {
                   if (toBeEvictedFromCategory < keys.size()) {
                        keys.add(entry.getKey());
                   ++currentCountPerCategory;
              @Override
              public void readExternal(PofReader reader) throws IOException {
                   categoryDiscriminator = reader.readString(0);
                   currentCountPerCategory = reader.readInt(1);
                   keys = (List<Object>) reader.readCollection(2, new ArrayList<Object>());
              @Override
              public void writeExternal(PofWriter writer) throws IOException {
                   writer.writeString(0, categoryDiscriminator);
                   writer.writeInt(1, currentCountPerCategory);
                   writer.writeCollection(2, keys);
              @Override
              public void readExternal(DataInput input) throws IOException {
                   categoryDiscriminator = ExternalizableHelper.readSafeUTF(input);
                   currentCountPerCategory = ExternalizableHelper.readInt(input);
                   int numKeys = ExternalizableHelper.readInt(input);
                   keys = numKeys > 0 ? new ArrayList<Object>(numKeys) : Collections.EMPTY_LIST;
                   while (numKeys > 0) {
                        keys.add(ExternalizableHelper.readObject(input));
                        --numKeys;
              @Override
              public void writeExternal(DataOutput output) throws IOException {
                   ExternalizableHelper.writeSafeUTF(output, categoryDiscriminator);
                   ExternalizableHelper.writeInt(output, currentCountPerCategory);
                   ExternalizableHelper.writeInt(output, keys.size());
                   for (Object key : keys) {
                        ExternalizableHelper.writeObject(output, key);
         private Map<String,Integer> toEvictByCategories;
         private String categoryDiscriminatorGetMethodName;
         private transient int toEvictAbove;
         public ByCategoryToBeEvictedKeyHarvester(
                   String categoryDiscriminatorGetMethodName, Map<String, Integer> toEvictByCategories, int toEvictAbove) {
              super();
              this.toEvictByCategories = toEvictByCategories;
              this.categoryDiscriminatorGetMethodName = categoryDiscriminatorGetMethodName;
              this.toEvictAbove = toEvictAbove;
         private static class PerCategoryCounter {
              private int elementsPerCategory = 0;
              private LinkedList<Collection<Object>> keys = new LinkedList<Collection<Object>>();
              void addPerNodeResultElement(PerNodeResultElement element) {
                   elementsPerCategory += element.currentCountPerCategory;
                   keys.add(element.keys);
         @Override
         public Object aggregateResults(Collection results) {
              Map<String, PerCategoryCounter> temp = new HashMap<String, PerCategoryCounter>();
              int numKeysToRemove = 0;
              for (Object result : results) {
                   Collection<PerNodeResultElement> perNodeResults = (Collection<PerNodeResultElement>) result;
                   for (PerNodeResultElement perNodeResultElement : perNodeResults) {
                        String categoryDiscriminator = perNodeResultElement.categoryDiscriminator;
                        PerCategoryCounter counter = temp.get(categoryDiscriminator);
                        if (counter == null) {
                             counter = new PerCategoryCounter();
                             temp.put(categoryDiscriminator, counter);
                        int oldCount = counter.elementsPerCategory;
                        counter.addPerNodeResultElement(perNodeResultElement);
                        int newCount = counter.elementsPerCategory;
                        if (newCount > toEvictAbove) {
                             numKeysToRemove += newCount - (oldCount < toEvictAbove ? toEvictAbove : oldCount);
              // we now have a current view of how many elements there are (sort of)
              // and hopefully enough keys to evict (if there were not really too many entries added since then)
              ArrayList keysToRemove = new ArrayList(numKeysToRemove);
              for (PerCategoryCounter perCategoryCounter : temp.values()) {
                   int elementsPerCategory = perCategoryCounter.elementsPerCategory;
                   Iterator<Collection<Object>> iter = perCategoryCounter.keys.iterator();
                   while (elementsPerCategory > toEvictAbove && iter.hasNext()) {
                        Collection<Object> keys = iter.next();
                        Iterator<Object> keyIter = keys.iterator();
                        while (elementsPerCategory > toEvictAbove && keyIter.hasNext()) {
                             keysToRemove.add(keyIter.next());
                             --elementsPerCategory;
              return keysToRemove;
         @Override
         public EntryAggregator getParallelAggregator() {
              return this;
         @Override
         public Object aggregate(Set entries) {
              final ReflectionExtractor extractor = new ReflectionExtractor(categoryDiscriminatorGetMethodName);
              Map<String,PerNodeResultElement> temp = new HashMap<String, PerNodeResultElement>();
              for (Object object : entries) {
                   InvocableMap.Entry entry = (InvocableMap.Entry) object;
                   String categoryDiscriminator = (String) entry.extract(extractor);
                   Integer toBeEvictedFromCategory = toEvictByCategories.get(categoryDiscriminator);
                   if (toBeEvictedFromCategory != null && toBeEvictedFromCategory > 0) {
                        PerNodeResultElement element = temp.get(categoryDiscriminator);
                        if (element == null) {
                             element = new PerNodeResultElement(categoryDiscriminator, toBeEvictedFromCategory);
                             temp.put(categoryDiscriminator, element);
                        element.addEntry(entry);
              return temp.values();
         @SuppressWarnings("unchecked")
         public void readExternal(PofReader reader) throws IOException {
              categoryDiscriminatorGetMethodName = reader.readString(0);
              toEvictByCategories = (Map<String, Integer>) reader.readMap(1, new HashMap<String, Integer>());
         @Override
         public void writeExternal(PofWriter writer) throws IOException {
              writer.writeString(0, categoryDiscriminatorGetMethodName);
              writer.writeMap(1, toEvictByCategories, String.class, Integer.class);
         @Override
         public void readExternal(DataInput input) throws IOException {
              categoryDiscriminatorGetMethodName = ExternalizableHelper.readSafeUTF(input);
              int numEntries = ExternalizableHelper.readInt(input);
              toEvictByCategories = new HashMap<String, Integer>();
              while (numEntries > 0) {
                   String key = ExternalizableHelper.readSafeUTF(input);
                   Integer value = ExternalizableHelper.readInt(input);
                   toEvictByCategories.put(key, value);
                   --numEntries;
         @Override
         public void writeExternal(DataOutput output) throws IOException {
              ExternalizableHelper.writeSafeUTF(output, categoryDiscriminatorGetMethodName);
              ExternalizableHelper.writeInt(output, toEvictByCategories.size());
              for (Map.Entry<String, Integer> entry : toEvictByCategories.entrySet()) {
                   ExternalizableHelper.writeSafeUTF(output, entry.getKey());
                   ExternalizableHelper.writeInt(output, entry.getValue());
    }You can send this aggregator and remove the entries afterwards with:
    String categoryDiscriminatorGetMethodName = "getColor"; // do I remember well?
    // this is the map which you populate based on the result of the first aggregation,
    // keys should be colors,
    // values should be the number of entries in the category in the entire cache minus the eviction limit (the number of entries you want to evict from the category)
    Map<String,Integer> toEvictByCategories = ...;
    Collection<Object> keysToRemove = cache.aggregate(AlwaysFilter.INSTANCE, new ByCategoryToBeEvictedKeyHarvester(categoryDiscriminatorGetMethodName, toEvictByCategories, toEvictAbove));
    cache.removeAll(keysToRemove);Best regards,
    Robert

  • Java.lang.ClassCastException when executing an AbstractAggregator

    I'm trying to run an agregator over a distributed cache and I'm getting this exception:
    (Wrapped: Failed request execution for NPDistributedCache service on Member(Id=2, Timestamp=2013-03-16 09:46:09.907, Address=127.0.0.1:8090, MachineId=27728, Location=site:,machine:proto1,process:716)) java.lang.ClassCastException: com.tangosol.util.extractor.ReflectionExtractor cannot be cast to com.tangosol.util.InvocableMap$EntryAggregator
            at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.tagException(Grid.CDB:36)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.validateRequestForStorage(PartitionedCache.CDB:37)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onAggregateFilterRequest(PartitionedCache.CDB:16)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$AggregateFilterRequest.run(PartitionedCache.CDB:1)
            at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheRequest.onReceived(DistributedCacheRequest.CDB:12)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:34)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:33)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService.onNotify(PartitionedService.CDB:3)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onNotify(PartitionedCache.CDB:3)
            at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
            at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.ClassCastException: com.tangosol.util.extractor.ReflectionExtractor cannot be cast to com.tangosol.util.InvocableMap$EntryAggregator
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$AggregateFilterRequest.read(PartitionedCache.CDB:7)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.deserializeMessage(Grid.CDB:19)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:31)
            ... 4 moreThe agregator extends from the AbstractAgregator class and I'm using an IdentityExtractor. Here is a piece of code of the agregator:
    public class MyAggregator extends AbstractAggregator {
        public MyAggregator() {
            // IdentityExtractor because I want the stored entry
            super(IdentityExtractor.INSTANCE);
        protected Object finalizeResult(boolean isFinal) {
            // Simple aggregation operation, with no interaction with the coherence env
        protected void init(boolean isFinal) {
         // Initialize aggregators vars   
        protected void process(Object value, boolean isFinal) {
            // Here we might access named caches using the cache factory to get entries related to the current one
            // i.e. If we are processing a product entry, we will go get from another cache the 'owner' (company entry)
    }To execute the aggregator, I'm using the InvocableMap.aggregate() method from the NamedCache get from the CacheFactory.getCache(). As filter, I'm using a simple EqualsFilter("getClass", type).
    All the caches that are used by this aggregator are cofigured using this schema (even those that are get within the process() method)
    <near-scheme>
         <scheme-name>np-near</scheme-name>
         <front-scheme>
              <local-scheme/>
         </front-scheme>
         <back-scheme>
              <distributed-scheme>
                   <scheme-name>np-distributed</scheme-name>
                   <service-name>NPDistributedCache</service-name>
                   <backup-count>2</backup-count>
                   <backing-map-scheme>
                        <local-scheme>
                             <eviction-policy>LRU</eviction-policy>
                             <high-units>10000</high-units>
                        </local-scheme>
                   </backing-map-scheme>
                   <autostart>true</autostart>
              </distributed-scheme>
         </back-scheme>
         <autostart>true</autostart>
    </near-scheme>
    Why coherence is trying to cast an extractor to an Aggregator? Which coherence component is using a ReflectionExtractor in my scenario? IMO, I'm using the InvocableMap API to execute a simple aggregator with an IdentityExtractor. Maybe getting others entries within the process() method are causing this? And if it is the case: how can I get others related entries within an aggregator? (I know the problem of getting entries within a Processor (for edition), but for agregation (for read only) this should be feasible right?
    Important info:
    * We are using Coherence 3.7 with the development license and the idea is to deploy the application in production with the standard licence
    * When there is only one single member in the cluster, the agregation works as expected.
    Edited by: ggarciao.com on Mar 16, 2013 11:59 AM
    Adding coherence version
    Edited by: ggarciao.com on Mar 16, 2013 2:48 PM

    Hi,
    At the end of your post you say that when there is only a single member in the cluster that it works as expected so this could suggest you have a serialization issue. Do you have the same serializer configured everywhere? If you are using POF is the POF configuration correct and are the serializiation methods in your extractor correct?
    Another point - it is not a good idea to access other caches using Cachefactory.getCache() from inside the aggregator's process method. This would cause re-entrant calls - i.e. calls from one worker thread in the cache service to another worker thread and can cause either thread starvation and in the worst case can cause your cluster to deadlock due to running out of worker threads.
    You say in the code comments that the caches you want to get are to get related data - if you use key association to co-locate related data in other caches in the same cache service onto the same partition then there are more reliable and safer ways to get related data directly from the backing maps.
    If you are going to go down the route of accessing other caches directly you need to be very careful about what services those other caches are in and what code you execute against those caches.
    JK

  • Remote object trying to return another remote object and a ClassCastExcepti

    I have a server running with a TreeModel (the tree model implements Remote). I also have the the TreeNodes all linked together on the server. Now, I can get to the TreeModel on the server and the root node of the remote tree model.
    treeModelStub = (treeModelIface)Naming.lookup(url+"remoteTM"); //works
    rootStub = (remoteTreeNodeIface)treeModelStub.getRoot(); //works. The call to getRoot returns Object
    But when I call
    remoteTreeNodeIface aChild = (remoteTreeNodeIface)rootStub.getChildAt(index) //Does not work. "Exception in thread "main" java.lang.ClassCastException
    at remoteTreeNode_Stub.getChildAt(Unknown Source)
    The remote tree node method getChildAt returns TreeNode because the class implements TreeNode:
    public class remoteTreeNode extends UnicastRemoteObject implements rdcaDataIface, Comparable, TreeNode {
    public TreeNode getChildAt(int idx) {
    System.out.println("DEBUG: class is "+this.getClass()); // class is remoteTreeNode
    return (remoteTreeNode)children.get(idx);
    The remote interface is defined as:
    public interface rdcaDataIface extends java.rmi.Remote {
    public TreeNode getChildAt(int idx) throws RemoteException;
    Any ideas why this does not work. Why can a remote object of type Object be returned just fine, but a TreeNode not be returned?
    Thank you for your help,
    Brent

    I have a server running with a TreeModel (the tree
    model implements Remote). I also have the the
    TreeNodes all linked together on the server. Now, I
    can get to the TreeModel on the server and the root
    node of the remote tree model.
    treeModelStub =
    (treeModelIface)Naming.lookup(url+"remoteTM");
    //works
    rootStub =
    (remoteTreeNodeIface)treeModelStub.getRoot();
    //works. The call to getRoot returns Object
    But when I call
    remoteTreeNodeIface aChild =
    (remoteTreeNodeIface)rootStub.getChildAt(index)******************************************
    can only be casted to rdcaDataIface. The returned object is an instanceof the rdcaDataIface_stub, which have nothing to do with TreeNode.
    //Does not work. "Exception in thread "main"
    java.lang.ClassCastException
    at remoteTreeNode_Stub.getChildAt(Unknown
    t(Unknown Source)
    The remote tree node method getChildAt returns
    TreeNode because the class implements TreeNode:
    public class remoteTreeNode extends
    UnicastRemoteObject implements rdcaDataIface,
    Comparable, TreeNode {
    public TreeNode getChildAt(int idx) {
    System.out.println("DEBUG: class is
    lass is "+this.getClass()); // class is
    remoteTreeNode
    return (remoteTreeNode)children.get(idx);
    The remote interface is defined as:
    public interface rdcaDataIface extends java.rmi.Remote
    public TreeNode getChildAt(int idx) throws
    ows RemoteException;
    Any ideas why this does not work. Why can a remote
    object of type Object be returned just fine, but a
    TreeNode not be returned?
    Thank you for your help,
    Brent

  • Java.lang.ClassCastException

    My class CDRack is almost ready, but in the last method
    sortAlphabetically() there
    comes java.lang.ClassCastException. I found in the net
    http://java.sun.com/docs/books/tutorial/collections/algorithms/
    that with method Collections.sort(l) I can sort alphabetically.
    The code compiles, but when I run it with a tester program, it stops
    to ClassCastException in the almost last row.
    Something is wrong with Collections.sort(l) ?
    /** Class CDRack represents collections of compact discs. Discs are
    located in the rack in slots numbered from zero upwards. The discs are
    represented by Record objects and empty slots by null values. */
    public class CDRack extends Object {
      private Record[] mRecords;
      private int size;
    /**Creates a new, empty CD rack.
    Parameters:
    size - the size of the new rack, i.e. the number of slots it has */
          public CDRack(int size) {
              mRecords = new Record[size];
              this.size = size;
    /** "Organizes" the discs in the rack so that they will be located in
    consecutive slots starting at slot number zero, and any and all empty
    slots will be at the "end of the rack". After calling this method, the
    discs are in an undefined (i.e. arbitrary) order - the only thing this
    method guarantees is that there aren't any empty slots in between full
    ones.
          public void organize() {
              // Turn array into a list - more flexible
              List l = Arrays.asList(aanilevyt);
              // Remove all nulls from a copy of the list which supports  removal.
              l = new ArrayList(l);
              while (l.remove(null)) /*do nothing*/;
              // Clear the original array.
              for (int i = 0; i < mRecords.length; i++){
                   mRecords[i] = null;
              } // Put the non-nulls back.
              l.toArray(mRecords);
    /**"Organizes" the discs in the rack to the beginning of the rack (see
    the method organize) and sorts them in alphabetical order. Recordings
    by the same artist are placed in alphabetical order by disc name. */
        public void sortAlphabetically() {
              // Turn array into a list - more flexible
              List l = Arrays.asList(aanilevyt);
              // Remove all nulls from a copy of the list which supports  removal.
              l = new ArrayList(l);
              while (l.remove(null)) /*do nothing*/;
              // Clear the original array.
              for (int i = 0; i < mRecords.length; i++){
                   mRecords[i] = null;
              } // Put the non-nulls back.
              l.toArray(mRecords);
              Collections.sort(l);   // alphabetical order. THERE IS CLASSCASTEXCEPTION 
    }

    I have thought and thought but the sorting alphabetically doesnt work.
    I can't use Collections.sort and class Record doesnt implement Comparable(and I can't change it).
    One suggestion was that I could make my own class which implements Comparator. Could it be like this
    import java.util.*;
    public class AlphabeticComparator
    implements Comparator{
      public int compare(Object o1, Object o2) {
        String s1 = (String)o1;
        String s2 = (String)o2;
        return s1.toLowerCase().compareTo(
          s2.toLowerCase());
    }      But how an earth can I tell to CDRack class that it would
    use the class AlphabeticComparator?
    Somebody please save my Christmas!
    /** Class CDRack represents collections of compact discs. Discs are
    located in the rack in slots numbered from zero upwards. The discs are
    represented by Record objects and empty slots by null values. */
    public class CDRack extends Object {
      private Record[] mRecords;
      private int size;
    /**Creates a new, empty CD rack.
    Parameters:
    size - the size of the new rack, i.e. the number of slots it has */
          public CDRack(int size) {
              mRecords = new Record[size];
              this.size = size;
    /** "Organizes" the discs in the rack so that they will be located in
    consecutive slots starting at slot number zero, and any and all empty
    slots will be at the "end of the rack". After calling this method, the
    discs are in an undefined (i.e. arbitrary) order - the only thing this
    method guarantees is that there aren't any empty slots in between full
    ones.
          public void organize() {
              // Turn array into a list - more flexible
              List l = Arrays.asList(aanilevyt);
              // Remove all nulls from a copy of the list which supports  removal.
              l = new ArrayList(l);
              while (l.remove(null)) /*do nothing*/;
              // Clear the original array.
              for (int i = 0; i < mRecords.length; i++){
                   mRecords<i> = null;
              } // Put the non-nulls back.
              l.toArray(mRecords);
    /**"Organizes" the discs in the rack to the beginning of the rack (see
    the method organize) and sorts them in alphabetical order. Recordings
    by the same artist are placed in alphabetical order by disc name. */
        public void sortAlphabetically() {

  • ClassCastException when deploying jsf war on Weblogic 10.3.2

    Hello everybody,
    We 're having an issue when deploying jsf war on Weblogic 10.3.2
    The war works fine on Tomcat 6.
    When deploying on Weblogic we got the following exception:
    java.lang.ClassCastException: weblogic.xml.jaxp.RegistryXMLReader cannot be cast to org.xml.sax.XMLReader
    I've already put <prefer-web-inf-classes>true</prefer-web-inf-classes> in weblogic.xml
    After "googling", people suggest to remove xml-apis jar from WEB-INF/lib, but doing so results in other exceptions.
    Is there any fix for this issue? Please help it's been more than a month that we are crawling in the dark with this error.
    Thanks in advance.

    Hello everybody,
    We 're having an issue when deploying jsf war on Weblogic 10.3.2
    The war works fine on Tomcat 6.
    When deploying on Weblogic we got the following exception:
    java.lang.ClassCastException: weblogic.xml.jaxp.RegistryXMLReader cannot be cast to org.xml.sax.XMLReader
    I've already put <prefer-web-inf-classes>true</prefer-web-inf-classes> in weblogic.xml
    After "googling", people suggest to remove xml-apis jar from WEB-INF/lib, but doing so results in other exceptions.
    Is there any fix for this issue? Please help it's been more than a month that we are crawling in the dark with this error.
    Thanks in advance.

  • Problem with ClassCastException in web application

    Hello,
              I'm trying to deploy a web application in WLS 5.1 and I'm getting the
              "dreaded" ClassCastException every time when JSP tries to read a bean
              from the request or session. Under my architecture (actually it's just
              the regular "model 2" ) bean is populated by a servlet, set on the
              request and then retrieved by JSP (servlet forwards to JSP). Everything
              work fine when I register servlets in weblogic.properties, but
              ClassCastException is thrown on any attempt to read from the request if
              the same JSPs and servlets are deployed as web application.
              Has anybody come across the same problem?
              Thanks in advance for help.
              Alexander
              

    Hello,
              This is all well and good as a temporary bug, but it's totally unrealistic for
              the future. Two points:
              * The ClassLoader doesn't need to be discarded, it just needs to be cleared.
              * Other servlet engines seem to be able to handle this.
              Hope it's on its way to resolution!
              TDoan wrote:
              > Alexander:
              >
              > I had some problem with ClassCastException, and recently I found out what it
              > was that causing it. I'm sure if this is the same problem you are having,
              > but please read the following paragraph.
              >
              > I cutted this from http://www.weblogic.com/docs51/classdocs/API_servlet.html
              > ClassCastException and HTTP Sessions
              >
              > You might encounter a ClassCastException while developing servlets that use
              > HTTP sessions. This could happen as a result of the following set of events:
              >
              > a.. You store a reference to a custom class, myFoo, in an HTTP session.
              >
              > b.. While in mid-session, you change your servlet (or JSP or JHTML),
              > causing it to be reloaded. In fact, it is necessary for it to be reloaded by
              > a completely new class loader, and the old class loader that had previously
              > loaded it must be discarded.
              >
              > c.. Because your custom class myFoo is also located under the servlet
              > classpath, it too is reloaded by the new class loader.
              >
              > d.. Now, when you retrieve myFoo from the HTTP session, you cast it to the
              > expected type, but you recieve a ClassCastException. The exception is thrown
              > even if class myFoo has not changed. Because it has been loaded by a
              > different class loader, it is regarded by the JVM as incompatible.
              > Note: If you are using session persistence, the class contents must be
              > serialized, and you will not encounter this exception.
              >
              > Here are some suggested work-arounds to this problem:
              >
              > a.. Do not place your class myFoo in the servlet classpath. Instead, place
              > it in the system classpath or the weblogic.class.path, which are accessible
              > by WebLogic Server. The class will not be reloaded when the servlet is
              > modified. This drawback to this solution is that you cannot prototype the
              > myFoo class, because you must restart the server in order to reload the
              > class after it is modified.
              >
              > b.. If you need to prototype the class, you can write a wrapper method
              > within it to store and retrieve its contents to and from the session. You do
              > not access the class directly from the session, but instead call it is
              > wrapper methods to store or populate it is contents from the session. As
              > long as you use standard Java class types to store the class contents, they
              > will not be reloaded when the servlet is reloaded. This approach has
              > performance drawbacks because your wrapper methods would need to set or get
              > multiple name=value pairs for each class's attributes.
              >
              > c.. Another work-around is to catch the ClassCastException, and replace
              > the old class that is stored in the session with a newly instantiated class,
              > or remove it from the session. Unfortunately, you lose the session data that
              > was previously stored in the class, so you must write your application to
              > handle this scenario. This is the easiest solution to the problem-remember
              > that you should not be storing critical information in an HTTP session, but
              > rather storing it in a database.
              > Note: The ClassCastException generally occurs while you are developing
              > your servlets, and should not be an issue in a stable production system. If
              > you are upgrading your system online, you might wish to warn your customer
              > base.
              >
              > Hope it helps,
              > Tin
              >
              > "Alexander Ananiev" <[email protected]> wrote in message
              > news:[email protected]...
              > > Hello,
              > >
              > > I'm trying to deploy a web application in WLS 5.1 and I'm getting the
              > > "dreaded" ClassCastException every time when JSP tries to read a bean
              > > from the request or session. Under my architecture (actually it's just
              > > the regular "model 2" ) bean is populated by a servlet, set on the
              > > request and then retrieved by JSP (servlet forwards to JSP). Everything
              > > work fine when I register servlets in weblogic.properties, but
              > > ClassCastException is thrown on any attempt to read from the request if
              > > the same JSPs and servlets are deployed as web application.
              > > Has anybody come across the same problem?
              > >
              > > Thanks in advance for help.
              > > Alexander
              > >
              

  • AS400 Connection : when I am trying to run jsf pages..then  java.lang.ClassCastException: getting

    Hi
    I did connection with AS400 database.When I am trying run JDE.jsf file then I am getting java.lang.ClassCastException: weblogic.jdbc.wrapper.PoolConnection_com_ibm_as400_access_AS400JDBCConnection cannot be cast to oracle.jdbc.OracleConnection error.
    I have added jt400.jar file C:\Users\k\AppData\Roaming\JDeveloper\system11.1.2.4.39.64.36.1\DefaultDomain\lib
    and C:\Oracle\Middleware11gJdev\wlserver_10.3\server\lib.
    Please let me know, how to handle this exception and get proper output.
    Target URL -- http://172.30.2.73:7101/JDE_Application-ViewController-context-root/faces/JDE.jsf
    <ViewHandlerImpl> <_checkTimestamp> Apache Trinidad is running with time-stamp checking enabled. This should not be used in a production environment. See the org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION property in WEB-INF/web.xml
    <AdfServerPlatformSupport> <getNativeDBConnection>
    java.lang.NoClassDefFoundError: com/ibm/as400/access/AS400
      at java.lang.Class.getDeclaredMethods0(Native Method)
      at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
      at java.lang.Class.getMethod0(Class.java:2670)
      at java.lang.Class.getMethod(Class.java:1603)
      at oracle.adf.share.platform.AdfServerPlatformSupport.getNativeDBConnection(AdfServerPlatformSupport.java:96)
      at oracle.adf.share.ADFContext.getNativeJdbcConnection(ADFContext.java:1952)
      at oracle.jbo.server.DBTransactionImpl.establishNewConnection(DBTransactionImpl.java:971)
      at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1147)
      at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:6838)
      at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:298)
      at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:329)
      at oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:203)
      at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolConnect(ApplicationPoolMessageHandler.java:600)
      at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:417)
      at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9053)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4606)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2536)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2346)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3245)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:571)
      at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:504)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:499)
      at oracle.adf.model.bc4j.DCJboDataControl.initializeApplicationModule(DCJboDataControl.java:517)
      at oracle.adf.model.bc4j.DCJboDataControl.getApplicationModule(DCJboDataControl.java:867)
      at oracle.adf.model.binding.DCDataControl.setErrorHandler(DCDataControl.java:487)
      at oracle.jbo.uicli.binding.JUApplication.setErrorHandler(JUApplication.java:261)
      at oracle.adf.model.BindingContext.put(BindingContext.java:1318)
      at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:247)
      at oracle.adf.model.BindingContext.instantiateDataControl(BindingContext.java:1020)
      at oracle.adf.model.dcframe.DataControlFrameImpl.doFindDataControl(DataControlFrameImpl.java:1645)
      at oracle.adf.model.dcframe.DataControlFrameImpl.internalFindDataControl(DataControlFrameImpl.java:1514)
      at oracle.adf.model.dcframe.DataControlFrameImpl.findDataControl(DataControlFrameImpl.java:1474)
      at oracle.adf.model.BindingContext.internalFindDataControl(BindingContext.java:1150)
      at oracle.adf.model.BindingContext.get(BindingContext.java:1103)
      at oracle.adf.model.binding.DCParameter.evaluateValue(DCParameter.java:82)
      at oracle.adf.model.binding.DCParameter.getValue(DCParameter.java:111)
      at oracle.adf.model.binding.DCBindingContainer.getChildByName(DCBindingContainer.java:2743)
      at oracle.adf.model.binding.DCBindingContainer.internalGet(DCBindingContainer.java:2791)
      at oracle.adf.model.binding.DCExecutableBinding.get(DCExecutableBinding.java:115)
      at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:329)
      at oracle.adf.model.binding.DCBindingContainer.evaluateParameterWithElCheck(DCBindingContainer.java:1473)
      at oracle.adf.model.binding.DCBindingContainer.findDataControl(DCBindingContainer.java:1603)
      at oracle.adf.model.binding.DCIteratorBinding.initDataControl(DCIteratorBinding.java:2542)
      at oracle.adf.model.binding.DCIteratorBinding.getDataControl(DCIteratorBinding.java:2477)
      at oracle.adf.model.binding.DCIteratorBinding.getAttributeDefs(DCIteratorBinding.java:3319)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.fetchAttrDefs(JUCtrlValueBinding.java:514)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.getAttributeDefs(JUCtrlValueBinding.java:465)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.findAttributeDef(JUCtrlValueBinding.java:616)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.lookupAttributeDef(JUCtrlValueBinding.java:587)
      at oracle.jbo.uicli.binding.JUCtrlHierBinding$1JUCtrlHierHintsMap.internalGet(JUCtrlHierBinding.java:184)
      at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
      at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$1DecoratedHintsMap.internalGet(FacesCtrlHierBinding.java:305)
      at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
      at javax.el.MapELResolver.getValue(MapELResolver.java:164)
      at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
      at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
      at com.sun.el.parser.AstValue.getValue(Unknown Source)
      at com.sun.el.ValueExpressionImpl.getValue(Unknown Source)
      at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
      at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:73)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.getProperty(BaseColumnRenderer.java:1195)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.getSortProperty(BaseColumnRenderer.java:1126)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.layoutHeader(BaseColumnRenderer.java:634)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.encodeAll(BaseColumnRenderer.java:152)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseTableRenderer.layoutColumnHeader(BaseTableRenderer.java:1197)
      at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:636)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:617)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at oracle.adfinternal.view.faces.taglib.region.IncludeTag$FacetWrapper.encodeAll(IncludeTag.java:547)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:263)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:279)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:263)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:279)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.PageTemplateRenderer.encodeAll(PageTemplateRenderer.java:68)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:274)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1275)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
      at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
      at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
      at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
      at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
      at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
      at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1035)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:342)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
      at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
      at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
      at java.security.AccessController.doPrivileged(Native Method)
      at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
      at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
      at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
      at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
      at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
      at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
      at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: java.lang.ClassNotFoundException: com.ibm.as400.access.AS400
      at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
      at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
      at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
      ... 218 more
    <FaceletViewHandlingStrategy> <handleRenderException> Error Rendering View[/JDE.jsf]
    JBO-30003: Application pool model.VO.AppModuleLocal fails to check out an application module due to the following exception:
    java.lang.ClassCastException: weblogic.jdbc.wrapper.PoolConnection_com_ibm_as400_access_AS400JDBCConnection cannot be cast to oracle.jdbc.OracleConnection
      at oracle.jbo.server.OracleSQLBuilderImpl.setSessionTimeZone(OracleSQLBuilderImpl.java:5534)
      at oracle.jbo.server.DBTransactionImpl.refreshConnectionMetadata(DBTransactionImpl.java:5329)
      at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1167)
      at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:6838)
      at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:298)
      at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:329)
      at oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:203)
      at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolConnect(ApplicationPoolMessageHandler.java:600)
      at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:417)
      at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9053)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4606)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2536)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2346)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3245)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:571)
      at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:504)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:499)
      at oracle.adf.model.bc4j.DCJboDataControl.initializeApplicationModule(DCJboDataControl.java:517)
      at oracle.adf.model.bc4j.DCJboDataControl.getApplicationModule(DCJboDataControl.java:867)
      at oracle.adf.model.binding.DCDataControl.setErrorHandler(DCDataControl.java:487)
      at oracle.jbo.uicli.binding.JUApplication.setErrorHandler(JUApplication.java:261)
      at oracle.adf.model.BindingContext.put(BindingContext.java:1318)
      at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:247)
      at oracle.adf.model.BindingContext.instantiateDataControl(BindingContext.java:1020)
      at oracle.adf.model.dcframe.DataControlFrameImpl.doFindDataControl(DataControlFrameImpl.java:1645)
      at oracle.adf.model.dcframe.DataControlFrameImpl.internalFindDataControl(DataControlFrameImpl.java:1514)
      at oracle.adf.model.dcframe.DataControlFrameImpl.findDataControl(DataControlFrameImpl.java:1474)
      at oracle.adf.model.BindingContext.internalFindDataControl(BindingContext.java:1150)
      at oracle.adf.model.BindingContext.get(BindingContext.java:1103)
      at oracle.adf.model.binding.DCParameter.evaluateValue(DCParameter.java:82)
      at oracle.adf.model.binding.DCParameter.getValue(DCParameter.java:111)
      at oracle.adf.model.binding.DCBindingContainer.getChildByName(DCBindingContainer.java:2743)
      at oracle.adf.model.binding.DCBindingContainer.internalGet(DCBindingContainer.java:2791)
      at oracle.adf.model.binding.DCExecutableBinding.get(DCExecutableBinding.java:115)
      at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:329)
      at oracle.adf.model.binding.DCBindingContainer.evaluateParameterWithElCheck(DCBindingContainer.java:1473)
      at oracle.adf.model.binding.DCBindingContainer.findDataControl(DCBindingContainer.java:1603)
      at oracle.adf.model.binding.DCIteratorBinding.initDataControl(DCIteratorBinding.java:2542)
      at oracle.adf.model.binding.DCIteratorBinding.getDataControl(DCIteratorBinding.java:2477)
      at oracle.adf.model.binding.DCIteratorBinding.getAttributeDefs(DCIteratorBinding.java:3319)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.fetchAttrDefs(JUCtrlValueBinding.java:514)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.getAttributeDefs(JUCtrlValueBinding.java:465)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.findAttributeDef(JUCtrlValueBinding.java:616)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.lookupAttributeDef(JUCtrlValueBinding.java:587)
      at oracle.jbo.uicli.binding.JUCtrlHierBinding$1JUCtrlHierHintsMap.internalGet(JUCtrlHierBinding.java:184)
      at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
      at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$1DecoratedHintsMap.internalGet(FacesCtrlHierBinding.java:305)
      at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
      at javax.el.MapELResolver.getValue(MapELResolver.java:164)
      at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
      at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
      at com.sun.el.parser.AstValue.getValue(Unknown Source)
      at com.sun.el.ValueExpressionImpl.getValue(Unknown Source)
      at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
      at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:73)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.getProperty(BaseColumnRenderer.java:1195)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.getSortProperty(BaseColumnRenderer.java:1126)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.layoutHeader(BaseColumnRenderer.java:634)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.encodeAll(BaseColumnRenderer.java:152)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseTableRenderer.layoutColumnHeader(BaseTableRenderer.java:1197)
      at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:636)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:617)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at oracle.adfinternal.view.faces.taglib.region.IncludeTag$FacetWrapper.encodeAll(IncludeTag.java:547)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:263)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:279)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:263)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:279)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.PageTemplateRenderer.encodeAll(PageTemplateRenderer.java:68)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:274)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1275)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
      at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
      at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
      at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
      at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
      at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
      at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1035)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:342)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
      at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
      at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
      at java.security.AccessController.doPrivileged(Native Method)
      at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
      at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
      at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
      at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
      at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
      at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
      at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    <RichExceptionHandler> <_logUnhandledException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RENDER_RESPONSE 6
    JBO-30003: Application pool model.VO.AppModuleLocal fails to check out an application module due to the following exception:
    java.lang.ClassCastException: weblogic.jdbc.wrapper.PoolConnection_com_ibm_as400_access_AS400JDBCConnection cannot be cast to oracle.jdbc.OracleConnection
      at oracle.jbo.server.OracleSQLBuilderImpl.setSessionTimeZone(OracleSQLBuilderImpl.java:5534)
      at oracle.jbo.server.DBTransactionImpl.refreshConnectionMetadata(DBTransactionImpl.java:5329)
      at oracle.jbo.server.DBTransactionImpl.initTransaction(DBTransactionImpl.java:1167)
      at oracle.jbo.server.DBTransactionImpl.initTxn(DBTransactionImpl.java:6838)
      at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:298)
      at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:329)
      at oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:203)
      at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolConnect(ApplicationPoolMessageHandler.java:600)
      at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:417)
      at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9053)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4606)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2536)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2346)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3245)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:571)
      at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:504)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:499)
      at oracle.adf.model.bc4j.DCJboDataControl.initializeApplicationModule(DCJboDataControl.java:517)
      at oracle.adf.model.bc4j.DCJboDataControl.getApplicationModule(DCJboDataControl.java:867)
      at oracle.adf.model.binding.DCDataControl.setErrorHandler(DCDataControl.java:487)
      at oracle.jbo.uicli.binding.JUApplication.setErrorHandler(JUApplication.java:261)
      at oracle.adf.model.BindingContext.put(BindingContext.java:1318)
      at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:247)
      at oracle.adf.model.BindingContext.instantiateDataControl(BindingContext.java:1020)
      at oracle.adf.model.dcframe.DataControlFrameImpl.doFindDataControl(DataControlFrameImpl.java:1645)
      at oracle.adf.model.dcframe.DataControlFrameImpl.internalFindDataControl(DataControlFrameImpl.java:1514)
      at oracle.adf.model.dcframe.DataControlFrameImpl.findDataControl(DataControlFrameImpl.java:1474)
      at oracle.adf.model.BindingContext.internalFindDataControl(BindingContext.java:1150)
      at oracle.adf.model.BindingContext.get(BindingContext.java:1103)
      at oracle.adf.model.binding.DCParameter.evaluateValue(DCParameter.java:82)
      at oracle.adf.model.binding.DCParameter.getValue(DCParameter.java:111)
      at oracle.adf.model.binding.DCBindingContainer.getChildByName(DCBindingContainer.java:2743)
      at oracle.adf.model.binding.DCBindingContainer.internalGet(DCBindingContainer.java:2791)
      at oracle.adf.model.binding.DCExecutableBinding.get(DCExecutableBinding.java:115)
      at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:329)
      at oracle.adf.model.binding.DCBindingContainer.evaluateParameterWithElCheck(DCBindingContainer.java:1473)
      at oracle.adf.model.binding.DCBindingContainer.findDataControl(DCBindingContainer.java:1603)
      at oracle.adf.model.binding.DCIteratorBinding.initDataControl(DCIteratorBinding.java:2542)
      at oracle.adf.model.binding.DCIteratorBinding.getDataControl(DCIteratorBinding.java:2477)
      at oracle.adf.model.binding.DCIteratorBinding.getAttributeDefs(DCIteratorBinding.java:3319)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.fetchAttrDefs(JUCtrlValueBinding.java:514)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.getAttributeDefs(JUCtrlValueBinding.java:465)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.findAttributeDef(JUCtrlValueBinding.java:616)
      at oracle.jbo.uicli.binding.JUCtrlValueBinding.lookupAttributeDef(JUCtrlValueBinding.java:587)
      at oracle.jbo.uicli.binding.JUCtrlHierBinding$1JUCtrlHierHintsMap.internalGet(JUCtrlHierBinding.java:184)
      at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
      at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$1DecoratedHintsMap.internalGet(FacesCtrlHierBinding.java:305)
      at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
      at javax.el.MapELResolver.getValue(MapELResolver.java:164)
      at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
      at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
      at com.sun.el.parser.AstValue.getValue(Unknown Source)
      at com.sun.el.ValueExpressionImpl.getValue(Unknown Source)
      at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
      at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:73)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.getProperty(BaseColumnRenderer.java:1195)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.getSortProperty(BaseColumnRenderer.java:1126)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.layoutHeader(BaseColumnRenderer.java:634)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.encodeAll(BaseColumnRenderer.java:152)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.table.BaseTableRenderer.layoutColumnHeader(BaseTableRenderer.java:1197)
      at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:636)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:617)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at oracle.adfinternal.view.faces.taglib.region.IncludeTag$FacetWrapper.encodeAll(IncludeTag.java:547)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:263)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:279)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:440)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:711)
      at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:380)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:263)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
      at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:279)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.PageTemplateRenderer.encodeAll(PageTemplateRenderer.java:68)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:274)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
      at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
      at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
      at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1275)
      at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
      at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
      at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
      at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
      at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
      at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
      at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
      at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
      at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1035)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:342)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
      at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
      at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
      at java.security.AccessController.doPrivileged(Native Method)
      at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
      at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
      at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
      at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.dms.servlet.

    Hi Baba,
    Uninstall the current JRE and install JRE 1.4.2_9.
    <a href="http://java.sun.com/products/archive/j2se/1.4.2_09/">JRE Download</a>
    Should help u.
    Regards,
    Sumit

  • ClassCastException while creating a new entity

    Hi
    When I run my BC4J application module using the BC4J Tester using Local Configuration (Jdev 9.0.3) I received the following exception when trying to create a new Customers record:
    oracle.jbo.RowCreateException: JBO-25017: Error while creating a new entity row for Customers.
    ewRowImpl.java:284
         oracle.jbo.server.ViewRowImpl oracle.jbo.server.ViewObjectImpl.createInstance(oracle.jbo.server.ViewRowSetImpl, oracle.jbo.AttributeList)
              ViewObjectImpl.java:1922
         oracle.jbo.server.RowImpl oracle.jbo.server.QueryCollection.createRowWithEntities(int[], oracle.jbo.server.EntityImpl[], oracle.jbo.server.ViewRowSetImpl, oracle.jbo.AttributeList)
              QueryCollection.java:727
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.createRowWithEntities(int[], oracle.jbo.server.EntityImpl[], oracle.jbo.AttributeList)
              ViewRowSetImpl.java:1384
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(oracle.jbo.AttributeList)
              ViewRowSetImpl.java:1430
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.createRow()
              ViewRowSetImpl.java:1406
         oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.createRow()
              ViewObjectImpl.java:5133
         void oracle.dacf.dataset.RowsetAccessImpl.newRow()
              RowsetAccessImpl.java:1013
         void client.CustomerEditDlg2.reInitData(int, long, long)
              CustomerEditDlg2.java:2017
         void client.MainFrame.jMenuItem1_actionPerformed(java.awt.event.ActionEvent)
              MainFrame.java:766
         void client.MainFrame$17.actionPerformed(java.awt.event.ActionEvent)
              MainFrame.java:283
         void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
              AbstractButton.java:1450
         void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
              AbstractButton.java:1504
         void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
              DefaultButtonModel.java:378
         void javax.swing.DefaultButtonModel.setPressed(boolean)
              DefaultButtonModel.java:250
         void javax.swing.AbstractButton.doClick(int)
              AbstractButton.java:279
         void javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
              BasicMenuItemUI.java:886
         void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
              Component.java:3715
         void java.awt.Component.processEvent(java.awt.AWTEvent)
              Component.java:3544
         void java.awt.Container.processEvent(java.awt.AWTEvent)
              Container.java:1164
         void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
              Component.java:2593
         void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
              Container.java:1213
         void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
              Component.java:2497
         void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
              Container.java:2451
         boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
              Container.java:2216
         boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
              Container.java:2125
         void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
              Container.java:1200
         void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
              Window.java:922
         void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
              Component.java:2497
         void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
              EventQueue.java:339
         boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
              EventDispatchThread.java:131
         void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
              EventDispatchThread.java:98
         void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
              EventDispatchThread.java:93
         void java.awt.EventDispatchThread.run()
              EventDispatchThread.java:85
    ## Detail 0 ##
    java.lang.ClassCastException: oracle.jbo.server.EntityRowSetImpl
         void oracle.jbo.server.EntityImpl.doCreate(oracle.jbo.AttributeList)
              EntityImpl.java:399
         void oracle.jbo.server.EntityImpl.create(oracle.jbo.AttributeList)
              EntityImpl.java:337
         void billing.CustomersImpl.create(oracle.jbo.AttributeList)
              CustomersImpl.java:91
         void oracle.jbo.server.ViewRowStorage.create(oracle.jbo.AttributeList)
              ViewRowStorage.java:655
         void oracle.jbo.server.ViewRowImpl.create(oracle.jbo.AttributeList)
              ViewRowImpl.java:284
         oracle.jbo.server.ViewRowImpl oracle.jbo.server.ViewObjectImpl.createInstance(oracle.jbo.server.ViewRowSetImpl, oracle.jbo.AttributeList)
              ViewObjectImpl.java:1922
         oracle.jbo.server.RowImpl oracle.jbo.server.QueryCollection.createRowWithEntities(int[], oracle.jbo.server.EntityImpl[], oracle.jbo.server.ViewRowSetImpl, oracle.jbo.AttributeList)
              QueryCollection.java:727
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.createRowWithEntities(int[], oracle.jbo.server.EntityImpl[], oracle.jbo.AttributeList)
              ViewRowSetImpl.java:1384
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.doCreateAndInitRow(oracle.jbo.AttributeList)
              ViewRowSetImpl.java:1430
         oracle.jbo.Row oracle.jbo.server.ViewRowSetImpl.createRow()
              ViewRowSetImpl.java:1406
         oracle.jbo.Row oracle.jbo.server.ViewObjectImpl.createRow()
              ViewObjectImpl.java:5133
         void oracle.dacf.dataset.RowsetAccessImpl.newRow()
              RowsetAccessImpl.java:1013
         void client.CustomerEditDlg2.reInitData(int, long, long)
              CustomerEditDlg2.java:2017
         void client.MainFrame.jMenuItem1_actionPerformed(java.awt.event.ActionEvent)
              MainFrame.java:766
         void client.MainFrame$17.actionPerformed(java.awt.event.ActionEvent)
              MainFrame.java:283
         void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
              AbstractButton.java:1450
         void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
              AbstractButton.java:1504
         void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
              DefaultButtonModel.java:378
         void javax.swing.DefaultButtonModel.setPressed(boolean)
              DefaultButtonModel.java:250
         void javax.swing.AbstractButton.doClick(int)
              AbstractButton.java:279
         void javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
              BasicMenuItemUI.java:886
         void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
              Component.java:3715
         void java.awt.Component.processEvent(java.awt.AWTEvent)
              Component.java:3544
         void java.awt.Container.processEvent(java.awt.AWTEvent)
              Container.java:1164
         void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
              Component.java:2593
         void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
              Container.java:1213
         void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
              Component.java:2497
         void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
              Container.java:2451
         boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
              Container.java:2216
         boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
              Container.java:2125
         void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
              Container.java:1200
         void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
              Window.java:922
         void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
              Component.java:2497
         void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
              EventQueue.java:339
         boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
              EventDispatchThread.java:131
         void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
              EventDispatchThread.java:98
         void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
              EventDispatchThread.java:93
         void java.awt.EventDispatchThread.run()
              EventDispatchThread.java:85
    I have seen this type of error earlier but this time exception is throws from the very core of the BC4J framework.( void oracle.jbo.server.EntityImpl.doCreate(oracle.jbo.AttributeList) ). "Customers" entity object does have a number of associated objects and I think that this is somehow related to the associations.
    Can anyone help me with this? Thank you

    java.lang.ClassCastException: oracle.jbo.server.EntityRowSetImpl
         void oracle.jbo.server.EntityImpl.doCreate(oracle.jbo.AttributeList)
              EntityImpl.java:399
    I have seen this type of error earlier but this time exception is throws from the very core of the BC4J framework.( void oracle.jbo.server.EntityImpl.doCreate(oracle.jbo.AttributeList) ). "Customers" entity object does have a number of associated objects and I think that this is somehow related to the associations. You're right on the target. It seems like you have a composition association where the master side returns a RowIterator rather than a Row (meaning association cardinality for the master/source side for the composition association is 'many'). That should not be allowed. Infact this is a design time bug for the BC4J association wizard. I've logged it as bug number 2678717
    Can anyone help me with this? Thank you

  • Error in PPR ( java.lang.ClassCastException)

    Hi All,
    Iam using PPR.In the PPR event my code is as follows:
    if ("PopulateLicenseEndDate".equals(pageContext.getParameter(EVENT_PARAM)))
    String rowReference =pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
    OARow row = (OARow)am.findRowByRef(rowReference);
    String StartDate = (String)row.getAttribute("LicenseStartDate");
    end if;
    Here the attribute ("LicenseStartDate") is of type date and item style is "MessageTextInput".
    When im selecting the date from the page,it is throwing the error at the code
    " String StartDate = (String)row.getAttribute("LicenseStartDate")" ;
    The exact error is : oracle.apps.fnd.framework.OAException: java.lang.ClassCastException
    I tried using Date/MessageTextInput instead of string to type cast,but still the error is not resolved.
    Can any body help me
    Thanks,
    Srinivas

    Hi Srinivas,
    String rowReference =pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
    OARow row = (OARow)am.findRowByRef(rowReference);
    String StartDate = *(String)row.getAttribute("LicenseStartDate").toString();*
    }OR
    String StartDate = row.getAttribute("LicenseStartDate")+"";
    Thanks
    --Anil                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • ClassCastException during deployment with more than one used entity

    Hi,
    i am still trying to get into NW development and got one more time stuck. I have a CE 7.1 SR5 project containing a dictionary, a bean module, an EAR project and a web dynpro project.
    With the following two classes everything runs fine:
    [AT]Entity
    [AT]Table(name="TMP_USER")
    [AT]NamedQueries(value={[AT]NamedQuery(name="doLogin", query="SELECT u FROM User u WHERE u.login = :login AND u.password = :password")})
    public class User implements Serializable {
         [AT]Id
         private int id;
         private String login;
         private String password;
         private static final long serialVersionUID = 1L;
         public User() {
              super();
    // Omitted Accessors
    [AT]Stateless(name="UserSessionBean")
    [AT]WebService
    public class UserSessionBean implements UserSessionLocal
         [AT]PersistenceContext(unitName="DBAccess")
         private EntityManager em;
         public User doLogin(String login, String password)
              Query query = em.createNamedQuery("doLogin");
              query.setParameter("login", login);
              query.setParameter("password", password);
              try
                   return (User) query.getSingleResult();               
              catch(NoResultException e)
                   return null;
    build, deploy, run in webservice navigator -> ok
    Then i created a new entity:
    [AT]Entity
    [AT]Table(name="TMP_PROJECT")
    [AT]NamedQueries(value={[AT]NamedQuery(name="findAllProjects", query="SELECT p FROM Project p")})
    public class Project implements Serializable {
         [AT]Id
         private int id;
         private int ownerid;
         private String name;
         private Timestamp creationtime;
         private String description;
         private int number;
         private short subnumber;
         private static final long serialVersionUID = 1L;
         public Project() {
              super();
      Omitted Accessors
    build, deploy, run in webservice navigator -> no problem.
    Then i changed  the UserSessionBean to:
    [AT]Stateless(name="UserSessionBean")
    [AT]WebService
    public class UserSessionBean implements UserSessionLocal
         [AT]PersistenceContext(unitName="DBAccess")
         private EntityManager em;
         public User doLogin(String login, String password)
              Query query = em.createNamedQuery("doLogin");
              query.setParameter("login", login);
              query.setParameter("password", password);
              try
                   return (User) query.getSingleResult();               
              catch(NoResultException e)
                   return null;
         public Projecet testfunc()
              return null;
    And now during deployment there is an warning (in reality it´s an exception) and the bean does not work any more.
    The exception is
              1. Exception has been returned while the 'testproject.testcorp.de/testprojectear' was starting. Warning/Exception :
    [ERROR CODE DPL.DS.6193] Error while ; nested exception is:
         com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5030] Clusterwide exception: server ID 7707450:com.sap.engine.services.deploy.container.DeploymentException:
         at com.sap.engine.services.webservices.server.deploy.WebServicesDeployManager.makeStartInitially(WebServicesDeployManager.java:693)
         at com.sap.engine.services.deploy.server.application.StartInitiallyTransaction.makeStartInitially(StartInitiallyTransaction.java:184)
         at com.sap.engine.services.deploy.server.application.StartInitiallyTransaction.prepare(StartInitiallyTransaction.java:145)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:420)
         at com.sap.engine.services.deploy.server.application.StartTransaction.doStartInitiallyGlobal(StartTransaction.java:449)
         at com.sap.engine.services.deploy.server.application.StartTransaction.doStartInitially(StartTransaction.java:437)
         at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:178)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:420)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:445)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.super_MakeAllPhases(ParallelAdapter.java:337)
         at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:550)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:251)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:392)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3389)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3375)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3278)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3251)
         at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:99)
         at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)
         at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)
         at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
         at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:80)
         at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:56)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:741)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:732)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)
         at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)
         at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)
         at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)
         at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:877)
         at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)
         at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)
         at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)
         at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)
    Caused by: com.sap.engine.interfaces.webservices.server.deploy.WSDeploymentException: Exception occured during web services deployment. Unable to generate serialization framework for web service UserSessionBeanService, application testproject.testcorp.de/testprojectear.
         at com.sap.engine.services.webservices.server.deploy.ws.WSInitialStartProcess.generateJAXWSFramework(WSInitialStartProcess.java:360)
         at com.sap.engine.services.webservices.server.deploy.ws.WSInitialStartProcess.generateJAXWSFramework(WSInitialStartProcess.java:220)
         at com.sap.engine.services.webservices.server.deploy.ws.WSInitialStartProcess.execute(WSInitialStartProcess.java:140)
         at com.sap.engine.services.webservices.server.deploy.WSBaseAbstractDProcess.makeProcess(WSBaseAbstractDProcess.java:316)
         at com.sap.engine.services.webservices.server.deploy.WebServicesDeployManager.makeStartInitially(WebServicesDeployManager.java:688)
         ... 37 more
    Caused by: java.lang.ClassCastException: class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$5:library:jaxb20[AT]com.sap.engine.boot.loader.ResourceMultiParentClassLoader[AT]1489c06[AT]alive incompatible with class com.sun.xml.bind.v2.model.impl.ClassInfoImpl:library:jaxb20[AT]com.sap.engine.boot.loader.ResourceMultiParentClassLoader[AT]1489c06[AT]alive
         at com.sun.xml.bind.v2.model.impl.ClassInfoImpl.getBaseClass(ClassInfoImpl.java:170)
         at com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getBaseClass(RuntimeClassInfoImpl.java:58)
         at com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl.getBaseClass(RuntimeClassInfoImpl.java:38)
         at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:142)
         at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:48)
         at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:40)
         at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189)
         at com.sun.xml.bind.v2.model.impl.TypeRefImpl.calcRef(TypeRefImpl.java:56)
         at com.sun.xml.bind.v2.model.impl.TypeRefImpl.getTarget(TypeRefImpl.java:33)
         at com.sun.xml.bind.v2.model.impl.RuntimeTypeRefImpl.getTarget(RuntimeTypeRefImpl.java:22)
         at com.sun.xml.bind.v2.model.impl.RuntimeTypeRefImpl.getTarget(RuntimeTypeRefImpl.java:15)
         at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl$1.get(ElementPropertyInfoImpl.java:38)
         at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl$1.get(ElementPropertyInfoImpl.java:41)
         at java.util.AbstractList$Itr.next(AbstractList.java:422)
         at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:139)
         at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:48)
         at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:40)
         at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189)
         at com.sun.xml.bind.v2.model.impl.TypeRefImpl.calcRef(TypeRefImpl.java:56)
         at com.sun.xml.bind.v2.model.impl.TypeRefImpl.getTarget(TypeRefImpl.java:33)
         at com.sun.xml.bind.v2.model.impl.RuntimeTypeRefImpl.getTarget(RuntimeTypeRefImpl.java:22)
         at com.sun.xml.bind.v2.model.impl.RuntimeTypeRefImpl.getTarget(RuntimeTypeRefImpl.java:15)
         at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl$1.get(ElementPropertyInfoImpl.java:38)
         at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl$1.get(ElementPropertyInfoImpl.java:41)
         at java.util.AbstractList$Itr.next(AbstractList.java:422)
         at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:139)
         at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:48)
         at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:40)
         at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:189)
         at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:204)
         at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:356)
         at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:217)
         at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:76)
         at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:55)
         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 javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:210)
         at javax.xml.bind.ContextFinder.find(ContextFinder.java:368)
         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
         at com.sap.engine.services.webservices.jaxws.j2w.JaxWsSchemaGenerator.genJaxbMappings(JaxWsSchemaGenerator.java:274)
         at com.sap.engine.services.webservices.jaxws.j2w.JaxWsIMappingGenerator.generateWSDL(JaxWsIMappingGenerator.java:103)
         at com.sap.engine.services.webservices.server.deploy.ws.WSInitialStartProcess.generateJAXWSFramework(WSInitialStartProcess.java:286)
         ... 41 more
    I already downgraded my Java JRE/JDK to 1.5.0_15 as it was hinted here in the forum, but the problem persists. Any idea what is wrong?

    Thanks for the answer, but i am not using this wizard. Some how this project class must be flawed.
    public User testfunc()
    return null;
    works, but changing to
    public Project testfunc()
    return null;
    immediately leads to the above deployment error.
    This is the offending class, it compiles without warning
    package de.testcorp.testproject.beans;
    import java.io.Serializable;
    import java.sql.Timestamp;
    import javax.persistence.*;
    @Entity
    @Table(name="TMP_PROJECT")
    @NamedQueries(value={@NamedQuery(name="findAllProjects", query="SELECT p FROM Project p")})
    public class Project implements Serializable {
         @Id
         private int id;
         private int ownerid;
         private String name;
         private Timestamp creationtime;
         private String description;
         private int number;
         private short subnumber;
         private static final long serialVersionUID = 1L;
         public Project() {
              super();
         public int getId() {
              return this.id;
         public void setId(int id) {
              this.id = id;
         public int getOwnerid() {
              return this.ownerid;
         public void setOwnerid(int ownerid) {
              this.ownerid = ownerid;
         public String getName() {
              return this.name;
         public void setName(String name) {
              this.name = name;
         public Timestamp getCreationtime() {
              return this.creationtime;
         public void setCreationtime(Timestamp creationtime) {
              this.creationtime = creationtime;
         public String getDescription() {
              return this.description;
         public void setDescription(String description) {
              this.description = description;
         public int getNumber() {
              return this.number;
         public void setNumber(int number) {
              this.number = number;
         public short getSubnumber() {
              return this.subnumber;
         public void setSubnumber(short subnumber) {
              this.subnumber = subnumber;

Maybe you are looking for