Converting ResultSet to java.util.ArrayList

Hi All,
Is there a way to convert the data contained in a ResultSet Object into an ArrayList, without iterating through the contents of the ResultSet using a while(rs.next())?
If so, please provide some snippets for the same.
Thanks,
Vikas

masijade. wrote:
That answer (the edited part) was hopefully, not taken seriously. It's true, but mostly impractical (except the for loop, but why type the extra characters when it is no different from the while loop), and was, obviously (or, at least, hopefully, obviously) sarcastic.Some of us got it:D But yes, I think the clarification was a good idea!

Similar Messages

  • Java.io.IOException: Deserialization failed, format CollectionFormat(public java.util.ArrayList())

    I am trying to retrieve a list from coherence cache and when I try to test my cache I get the following exception
    Exception in thread "main" (Wrapped) java.io.IOException: Deserialization failed, format CollectionFormat(public java.util.ArrayList())
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:266)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ConverterFromBinary.convert(PartitionedCache.CDB:4)
      at com.tangosol.util.ConverterCollections$ConverterMap.get(ConverterCollections.java:1655)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ViewMap.get(PartitionedCache.CDB:1)
      at com.tangosol.coherence.component.util.SafeNamedCache.get(SafeNamedCache.CDB:1)
      at com.sesco.cohc.cohc_RegionalForecastedGen.getLatestDataForDataSource(cohc_RegionalForecastedGen.java:32)
      at com.sesco.cohc.cohc_RegionalForecastedGen.main(cohc_RegionalForecastedGen.java:172)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
    Caused by: java.io.IOException: Deserialization failed, format CollectionFormat(public java.util.ArrayList())
      at org.gridkit.coherence.utils.pof.ReflectionPofSerializer.internalDeserialize(ReflectionPofSerializer.java:105)
      at org.gridkit.coherence.utils.pof.ReflectionPofSerializer.deserialize(ReflectionPofSerializer.java:92)
      at com.tangosol.io.pof.PofBufferReader.readAsObject(PofBufferReader.java:3316)
      at com.tangosol.io.pof.PofBufferReader.readObject(PofBufferReader.java:2604)
      at com.tangosol.io.pof.ConfigurablePofContext.deserialize(ConfigurablePofContext.java:368)
      at com.tangosol.util.ExternalizableHelper.deserializeInternal(ExternalizableHelper.java:2746)
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:262)
      ... 11 more
    Caused by: java.io.IOException: Failed to deserialize java.util.ArrayList instance
      at org.gridkit.coherence.utils.pof.ReflectionPofSerializer$CollectionSerializer.deserialize(ReflectionPofSerializer.java:317)
      at org.gridkit.coherence.utils.pof.ReflectionPofSerializer.internalDeserialize(ReflectionPofSerializer.java:101)
      ... 17 more
    Caused by: java.io.EOFException
      at com.tangosol.io.AbstractByteArrayReadBuffer$ByteArrayBufferInput.readPackedInt(AbstractByteArrayReadBuffer.java:430)
      at com.tangosol.io.pof.PofBufferReader$UserTypeReader.complete(PofBufferReader.java:3819)
      at com.tangosol.io.pof.PofBufferReader.readCollection(PofBufferReader.java:2452)
      at org.gridkit.coherence.utils.pof.ReflectionPofSerializer$CollectionSerializer.deserialize(ReflectionPofSerializer.java:306)
      ... 18 more
    I am not sure why I am getting the error. Any help would be appreciated

    You were using the ReflectionPofSerializer coded by Alexey.   If you are pretty sure that the object you retrieved was stored using the same serializer, might want to contact Alexey to see if he can help you out.
    ReflectionPofSerializer - gridkit - ReflectionPofSerializer project page - A home for code misc usefull code related …

  • Question on import java.util.ArrayList, etc.

    Hi,
    I was wondering what the following meant and what the differences were. When would I have to use these:
    import java.util.ArrayList;
    import java.util.Collections; <--I especially don't understand what this means
    import java.util.Comparator; <---same for this (can I consolidate these into the bottom two?)
    import java.io.*;
    import java.util.*;

    MAresJonson wrote:
    Also, what does this mean:
    return foo == f.getFoo() ? true : false;
    (more specifically...what does the "? true : false" mean and is there another way to code that?)It's called the ternary operator. For your specific example, you could just do:
    return foo == f.getFoo();But, more generally,
      return foo == f.getFoo() ? "equal" : "Not equal";means:
    if (foo == f.getFoo()) {
       return "equal";
    else {
       return "Not equal";
    }As everyone else said at the same time...

  • How to pass attribute of type java.util.ArrayList Property to a Tag

    How do I pass an attribute of type, java.util.ArrayList<my.entity.Property> to a Tag implementation class?
    Please advise!
    Thanks,
    Joe
    package my.tags;
    import java.io.IOException;
    import java.util.ArrayList;
    import javax.servlet.jsp.tagext.SimpleTagSupport;
    import javax.servlet.jsp.JspException;
    import my.entity.Property;
    public class PropertiesTag extends SimpleTagSupport {
        private ArrayList<Property> properties;
        public void setProperties(ArrayList<Property> properties) {
              this.properties = properties;
         public void doTag() throws JspException, IOException {
    <?xml version="1.0" encoding="utf-8" ?>
    <taglib ...>
         <tag>
              <name>propertiesTag</name>
              <tag-class>my.tags.PropertiesTag</tag-class>
              <body-content>empty</body-content>
              <description>Displays the product selection left menu</description>
              <attribute>
                   <name>properties</name>
                   <required>true</required>
                   <rtexprvalue>true</rtexprvalue>
                   <type>java.util.ArrayList<my.entity.Property></type>
              </attribute>
         </tag>
    </taglib>Here's the error message:
    org.xml.sax.SAXParseException: The element type "my.entity.Property" must be terminated by the matching end-tag "</my.entity.Property>".

    802826 wrote:
    How do I pass an attribute of type, java.util.ArrayList<my.entity.Property> to a Tag implementation class?
    Please advise!
    As already pointed out, there is no way to specify a generic type in a tag library descriptor. You may however specify an Object type in your tld and still have the variable in your tag as a parameterized generic type.
    In your tld change the type to Object.
    <type>java.lang.Object</type>.
    The properties tag itself needs no change and can continue to use parameterized types.
    cheers,
    ram.

  • Newbie help with collection java.util.ArrayList

    Hi,
    the documentation for the class ArrayList is given as
    public class ArrayList<E>
    extends AbstractList<E>
    what is that <E> over there ? Similarly, what is the <T> in an iterator ? Exact problem along with code is at the end of the post.
    I am a C++ programmer and am very comfortable with the STL, but that approach i.e. ArrayList<Job> does not work over here :(
    PLease help.
    TIA,
    Madhu.
    Code Details:
    I have a class (Job) which I wish to add to the list using the add method. Obviously, it gives an error.
    Code goes as
    class MyQueue extends java.lang.Object
    private java.util.ArrayList jobsList=new java.util.ArrayList(100);
    public void addtoMyQueueatIndex(Job newJob,int Index)
    jobsList.add((java.lang.Object)newJob,Index);
    Error is :
    MyQueue.java:96: cannot find symbol
    symbol : method addtoMyQueueatIndex((java.lang.Object,int)
    location: class java.util.ArrayList
    jobsList.add((java.lang.Object)newJob,Index);

    Are you using J2SDK 1.5.0 beta 1 or J2SDK 1.4.2? Are you using the docs from 1.5 and the compiler from 1.4.2?
    private java.util.ArrayList jobsList=new java.util.ArrayList(100); //-- 1.4.2 code
    private java.util.List<Job> jobsList = new java.util.ArrayList<Job> (100); //-- 1.5.0 code (preferred style)
    private java.util.ArrayList<Job> jobsList = new java.util.ArrayList<Job> (100); //-- 1.5.0 codeAs a matter of style, use the interface and not the real class when declaring a variable like the jobsList above whenever possible or applicable.
    You do not need to cast the object newJob to Object. And you have inverted the positions of the parameters.
    void add(int index, E element)
    Inserts the specified element at the specified position in this list (optional operation).
    jobsList.add(Index, newJob);

  • Error(86,88): incompatible types; found: java.util.ArrayList

    Hi,
    I'm getting following error :
    Error(86,88): incompatible types; found: java.util.ArrayList, required: com.sun.java.util.collections.ArrayList
    The line JDev is complaining about contains the following code :
    com.sun.java.util.collections.ArrayList runtimeErrors = container.getExceptionsList();
    I really don't have a clue where this error comes from. If I right-click on ArrayList it brings me to the correct declaration.
    Does somebody know what I'm doing wrong?
    Thanks in advance for you help!
    Kris

    Kris,
    try changing the code to :
    java.util.ArrayList runtimeErrors = container.getExceptionsList();apparently container.getExceptionsList() returns a java.util.Arraylist not a com.sun.java.util.collections.ArrayList
    HTH,
    John

  • Error: Class java.util.ArrayList not found in import

    Bear with me, I'm learning. That's part of the problem.
    I'm trying to teach myself JSP using a book based on Tomcat, but running it on an Oracle 9iAS server that I don't control. (The DBAs do that.) I'm running into constant problems compiling and using classes and such, I think because of the different directory structures on the two servers. (See subject error.)
    So, what I'd like to know is: how do I set up a default/main/whatever-you-want-to-call-it directory under which I can store my practice applications, such that 9iAS will function correctly? We're not using OC4J as far as I can see (no such directory, though there is a J2EE_containers folder), just JServ. Or, conversely, can someone explain in simple terms the basic 9iAS directory structures for deploying apps on 9iAS? I've been 'round and 'round the Oracle documentation until my head spins, and can't find this basic information.
    Help, please!!

    You will have to make Kawa to use the correct jdk
    Look into
    Options-> Directory
    Make a new Profile if it point to your old jdk version
    Thanks
    Joey

  • Error: java.lang.ClassCastException: java.util.Arrays$ArrayList

    Hi,
    How to solve this error?
    I get the error at this line of code in my program.
    java.util.ArrayList list= (java.util.ArrayList)obj;
    Please help how to solve this problem.
    Thanks,
    cmbl

    cmbl wrote:
    How to solve this error?
    I get the error at this line of code in my program.
    java.util.ArrayList list= (java.util.ArrayList)obj; Don't do this cast.
    Why are you doing this cast anyway? I think you need to show a small bit of compilable code (or almost compilable except perhaps for this error) and some more explanation.

  • Why the Error in ArrayList Program : java.util.NoSuchElementException

    import java.util.List;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.ListIterator;
    import java.util.Collections;
    import java.util.Random;
    public class ArrayListDoubt {
        public static void main(String[] args) {
    //        ArrayList Creation
            List arraylistA = new ArrayList();
            List arraylistB = new ArrayList();
    //        Adding elements to the ArrayList
            for (int i = 0; i < 5; i++) {
                arraylistA.add(new Integer(i));
            arraylistB.add("beginner");
            arraylistB.add("java");
            arraylistB.add("tutorial");
            arraylistB.add(".");
            arraylistB.add("com");
            arraylistB.add("java");
            arraylistB.add("site");
    // Iterating through the ArrayList to display the Contents.
            Iterator i1 = arraylistA.iterator();
            System.out.print("ArrayList arraylistA --> ");
            while (i1.hasNext()) {
                System.out.print(i1.next()+ " , ");
            System.out.println();
            System.out.print("ArrayList arraylistA --> ");
            for (int j=0; j < arraylistA.size(); j++) {
                System.out.print(arraylistA.get(j)+ " , ");
            System.out.println();
            Iterator i2 = arraylistB.iterator();
            System.out.println("ArrayList arraylistB --> ");
            while (i2.hasNext()) {
                System.out.print(i2.next()+ " , ");
            System.out.println();
            System.out.println("Using ListIterator to retireve ArrayList Elements");
            System.out.println();
            ListIterator li = arraylistA.listIterator();
    //       next(), hasPrevious(), hasNext(), hasNext() nextIndex() can be used with a
    //        ListIterator interface implementation
            System.out.println("ArrayList arraylistA --> ");
            while (li.hasNext()) {
                 System.out.print(i1.next()+ " , ");
    Output
    ArrayList arraylistA --> 0 , 1 , 2 , 3 , 4 ,
    ArrayList arraylistA --> 0 , 1 , 2 , 3 , 4 ,
    ArrayList arraylistB -->
    beginner , java , tutorial , . , com , java , site ,
    Using ListIterator to retireve ArrayList Elements
    ArrayList arraylistA -->
    Exception in thread "main" java.util.NoSuchElementException
         at java.util.AbstractList$Itr.next(AbstractList.java:427)
         at ArrayListDoubt.main(ArrayListDoubt.java:58)

    System.out.println("Using ListIterator to
    retireve ArrayList Elements");
    System.out.println();
    ListIterator li = arraylistA.listIterator();
    next(), hasPrevious(), hasNext(), hasNext()
    nextIndex() can be used with a
    /        ListIterator interface implementation
    System.out.println("ArrayList arraylistA -->
    while (li.hasNext()) {
         System.out.print(i1.next()+ " , ");
    }I think you mean to call the next()-method of the ListIterator li, but instead call i1, which is an already used Iterator.
    Where you want to iterate with ListIterator, change this line
    System.out.print(i1.next()+ " , ");to this
    System.out.print(li.next()+ " , ");and it works

  • Private static ArrayList within java.util.Arrays

    I was recently reviewing the code in java.util.Arrays (class version 1.45 - Java version 1.4.1). Beginning on line 2289 is a private static class named ArrayList. I'm completely baffled as to why the author created this slimmed-down private class (which would be, incidentally, returned by the Arrays.asList(Object[] a) method) rather than use the public class java.util.ArrayList. Can anyone offer an explanation?
    Thanks,
    John

    from JDK JAVADoc:
    asList
    public static List asList(Object[] a)
    Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.) This method acts as bridge between array-based and collection-based APIs, in combination with Collection.toArray. The returned list is serializable.
    So the private ArrayList extends java.util.ArrayList, and any changes made this list does not affect the internal Object[].... in other words can not be changed.

  • Cannot find symbl method update Date(int,java.util.Date)

    I get following error
    cannot find symbl method update Date(int,java.util.Date) on compling class called GuestDataBean at line ( rowSet.updateDate( 4, guest.getDate() ); ).
    GustBean.java. I need help on why I get it.
    // JavaBean to store data for a guest in the guest book.
    package com.deitel.jhtp6.jsp.beans;
    import java.util.*;
    public class GuestBean
       private String firstName;
       private String lastName;
       private String email;
       private Date date;
       private String message;
       //Constructors
       public GuestBean(){
            public GuestBean(String firstname, String lastname, String email,Date date,String message){
                 this.firstName=firstname;
                 this.lastName=lastName;
                 this.email=email;
                 this.date=date;
                 this.message=message;
       // set the guest's first name
       public void setFirstName( String name )
          firstName = name; 
       } // end method setFirstName
       // get the guest's first name
       public String getFirstName()
          return firstName; 
       } // end method getFirstName
       // set the guest's last name
       public void setLastName( String name )
          lastName = name; 
       } // end method setLastName
       // get the guest's last name
       public String getLastName()
          return lastName; 
       } // end method getLastName
       // set the guest's email address
       public void setEmail( String address )
          email = address;
       } // end method setEmail
       // get the guest's email address
       public String getEmail()
          return email; 
       } // end method getEmail
       public void setMessage( String mess)
          message = mess;
       } // end method setEmail
       // get the guest's email address
       public String getMessage()
          return message; 
       } // end method getEmail
       public void setDate( Date dat )
          date = dat;
       } // end method setEmail
       // get the guest's email address
       public Date getDate()
          return date; 
       } // end method getEmail
    } // end class GuestBean
    GuestDataBean.java/**
    * @(#)GuestDataBean.java
    * @author
    * @version 1.00 2008/7/18
    // Class GuestDataBean makes a database connection and supports
    // inserting and retrieving data from the database.
    package com.deitel.jhtp6.jsp.beans;
    import java.sql.SQLException;
    import javax.sql.rowset.CachedRowSet;
    import java.util.ArrayList;
    import com.sun.rowset.CachedRowSetImpl; // CachedRowSet implementation
    import java.sql.*;
    public class GuestDataBean
       private CachedRowSet rowSet;
       // construct TitlesBean object
       public GuestDataBean() throws Exception
          // load the MySQL driver
          Class.forName( "org.gjt.mm.mysql.Driver" );
          // specify properties of CachedRowSet
          rowSet = new CachedRowSetImpl(); 
          rowSet.setUrl( "jdbc:mysql://localhost:3306/virsarmedia" );
          rowSet.setUsername( "root" );
          rowSet.setPassword( "" );
           // obtain list of titles
          rowSet.setCommand(
             "SELECT firstName, lastName, email,date,message FROM guest" );
          rowSet.execute();
       } // end GuestDataBean constructor
       // return an ArrayList of GuestBeans
       public ArrayList< GuestBean > getGuestList() throws SQLException
          ArrayList< GuestBean > guestList = new ArrayList< GuestBean >();
          rowSet.beforeFirst(); // move cursor before the first row
          // get row data
          while ( rowSet.next() )
             GuestBean guest = new GuestBean();
             guest.setFirstName( rowSet.getString( 1 ) );
             guest.setLastName( rowSet.getString( 2 ) );
             guest.setEmail( rowSet.getString( 3 ) );
             guest.setDate( rowSet.getDate( 4 ) );
             guest.setMessage( rowSet.getString( 5 ) );
             guestList.add( guest );
          } // end while
          return guestList;
       } // end method getGuestList
       // insert a guest in guestbook database
       public void addGuest( GuestBean guest ) throws SQLException
          rowSet.moveToInsertRow(); // move cursor to the insert row
          // update the three columns of the insert row
          rowSet.updateString( 1, guest.getFirstName() );
          rowSet.updateString( 2, guest.getLastName() );
          rowSet.updateString( 3, guest.getEmail() );
          rowSet.updateDate( 4, guest.getDate() );
          rowSet.updateString( 5, guest.getMessage() );
          rowSet.insertRow(); // insert row to rowSet
          rowSet.moveToCurrentRow(); // move cursor to the current row
          rowSet.commit(); // propagate changes to database
       } // end method addGuest
    } // end class GuestDataBean

    This isn't a JSP question, it better belongs in the JavaProgramming, or JDBC forums.
    But the problem is because the updateDate method uses a java.sql.Date object and you are giving it a java.util.Date object. You have to convert from java.util.Date to java.sql.Date. See: [the api for java.sql.Date|http://java.sun.com/javase/6/docs/api/java/sql/Date.html] .
    Edited by: stevejluke on Jul 21, 2008 5:43 PM

  • Issue with h:selectManyListBox - java.util.NoSuchElementException

    I facing an issue with <h:selectManyListBoxs in JSF 1.1 with portlets.
    I am using RAD 7.5.3 and server is Web sphere Portal v6.1 Server on WAS 7.
    I have two <h:selectManyListbox moving options from Left to Right which i am doing in Javascript and it is perectly working fine.
    For the right hand side list box i have an additional movement for up and down which i am doing in javascript and it is working fine.
    Now the issue when I move from left to right and click on Save it is working fine. when I try to touch/select the options
    in right hand side list box and click on save i am getting NoSuchElementException in the processValidation phase as shown below.
    (It is not calling the save function at all in this case, it just calling the getLinkedBenchmarks method and failing).
    I added the attribute as immediate= true and the exception is comming now in APPLY_REQUEST phase.
    JSF1054: (Phase ID: PROCESS_VALIDATIONS 3, View ID: /jsp/Test.jsp) Exception thrown during phase execution:
    javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@32fc32fc]
    Caused by: javax.portlet.PortletException
         at com.ibm.faces.portlet.FacesPortlet.processAction(FacesPortlet.java:199)
         at com.ibm.ws.portletcontainer.invoker.impl.PortletFilterChainImpl.doFilter(PortletFilterChainImpl.java:77)
         at com.ibm.wps.propertybroker.standard.filter.PropertyBrokerActionFilter.doFilter(PropertyBrokerActionFilter.java:731)
    Caused by: java.util.NoSuchElementException
         at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:128)
         at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:175)
         at javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:60)
         at javax.faces.component.UISelectMany.matchValue(UISelectMany.java:497)
         at javax.faces.component.UISelectMany.validateValue(UISelectMany.java:466)
         at javax.faces.component.UIInput.validate(UIInput.java:875)
         at javax.faces.component.UIInput.executeValidate(UIInput.java:1072)
         at javax.faces.component.UIInput.processValidators(UIInput.java:672)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1047)
         at javax.faces.component.UIForm.processValidators(UIForm.java:235)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1047)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1047)
         at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:673)
         at org.ajax4jsf.framework.ajax.AjaxViewRoot.access$201(AjaxViewRoot.java:53)
         at org.ajax4jsf.framework.ajax.AjaxViewRoot$3.invokeRoot(AjaxViewRoot.java:315)
         at org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:53)
         at org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:191)
         at org.ajax4jsf.framework.ajax.AjaxViewRoot.processValidators(AjaxViewRoot.java:329)
         at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
         at com.ibm.faces.portlet.FacesPortlet.processAction(FacesPortlet.java:189)
         ... 118 more
      JSP code: I tried to add value for the <h:selectManyList it only allowing to add String not Arrays it displays the following warning
    message "Cannot coerce type String[] to java.lang.String"
    <h:selectManyListbox  size="10" id="availableBMId" converter="com.Converter"
         binding="#{lookup.components.availableBMId}" >
         <f:selectItems
              value="#{themeAttributeBean.availableBMs}" />
    </h:selectManyListbox></td>
    <td style="vertical-align: middle;">
    <div id="benchmark_button1" align="center"><hx:graphicImageEx
         id="Benchmark_AllRight" url="/images/AllRight.gif" height="16"
         hspace="2" style="cursor: hand" width="16" title="All Right"
         onclick="return listbox_moveall('#{lookup.clientIds.availableBMId}', '#{lookup.clientIds.linkedBMId}');">
    </hx:graphicImageEx> <br>
    <br>
    <hx:graphicImageEx id="Benchmark_Right" url="/images/Right.gif"
         height="16" hspace="2" style="cursor: hand" width="16" title="Right"                                                  
         onclick="return listbox_moveacross('#{lookup.clientIds.availableBMId}', '#{lookup.clientIds.linkedBMId}');">
    </hx:graphicImageEx> <br>
    <br>
    <hx:graphicImageEx id="Benchmark_Left" url="/images/Left.gif" title="Left"
         height="16" hspace="2" style="cursor: hand" width="16"                                                  
         onclick="return listbox_moveacross('#{lookup.clientIds.linkedBMId}', '#{lookup.clientIds.availableBMId}');">
    </hx:graphicImageEx> <br>
    <br>
    <hx:graphicImageEx id="Benchmark_AllLeft" title="All Left"
         url="/images/AllLeft.gif" height="16" hspace="2"
         style="cursor: hand" width="16"                                             
         onclick="return listbox_moveall('#{lookup.clientIds.linkedBMd}', '#{lookup.clientIds.availableBMId}');">
    </hx:graphicImageEx></div>
    </td>
    <td valign="top">
    <h:selectManyListbox size="10"
         id="linkedBenchmarksId" converter="com.TAPConverter"
         binding="#{lookup.components.linkedBMId}">
         <f:selectItems value="#{themeAttributeBean.linkedBMs}" />
    </h:selectManyListbox></td>
    <td style="vertical-align: middle;">
    <div id="benchmark_button2" align="center">
    <hx:graphicImageEx id="benchmark_up" url="/images/Up.gif" title="Up"
         height="16" hspace="2" style="cursor: hand" width="16"                                                  
         onclick="movePageUp('#{lookup.clientIds.linkedBMId}');"></hx:graphicImageEx>
    <br>
    <hx:graphicImageEx id="benchmark_down" url="/images/Down.gif" title="Down"
         height="16" hspace="2" style="cursor: hand" width="16"                                                  
         onclick="movePageDown('#{lookup.clientIds.linkedBMId}');"></hx:graphicImageEx>
    <br></div>
    *getting teh javascript values in a hiddend value:*
    <h:inputHidden id="hiddenLinkedBms"
    binding="#{lookup.components.hiddenLinkedBenchmarks}" value="#{bean.hiddenLinkedBms}" />
    *Backing Bean code:*
    public Map<String, Index> getAvailableBenchmarks() {
         availableBM = dao.getAllBM();
         if (themeID.intValue() > 0) {          
              linkedBM = dao.getLinkedBenchmarks(themeID.intValue());
              System.out.println("Linked Bench marks in getAvailableBM.. " + linkedBM);
              removeKeys(availableBM, linkedBM);
         return availableBM;
    public Map<String, Index> getLinkedBM() {
         linkedBenchmarks = dao.getLinkedBM(id);
         return linkedBM;
    Additional info:
         I override the equals and hashcode method in the Object class as suggested on the internet.
         I added the Custom converter by implementing javax.faces.convert.Converter and
         @Override
         public String getAsString(FacesContext arg0, UIComponent arg1, Object obj) {
              if(obj == null){
                   return null;
              } else if(obj instanceof Index){
                   final TAPIndex index = (Index) obj;
                   return index.getIndexName().toString();
              } else if(obj instanceof Objective){     
                   final InvestmentObjective invest = (Objective) obj;
                   return invest.getDescription()+" (" + invest.getCode() + ")".toString();
              return obj.toString();
         @Override
         public Object getAsObject(FacesContext arg0, UIComponent arg1, String value) {
                   return value;
    I have no Idea why it is behaving like this. Please help me.Edited by: Joglekar on Sep 17, 2010 10:17 AM

    Here is the proof - Let me know if am doing any thing wrong! FYI, I used JSF portlets in RAD 7.5.3 and Websphere portal server v6.1.
    I have two SelectManyListBox components and moving the options from left to right using Javascript and then select one of the options in the right hand side list box and click on submit. You will see the NosuchElementException.
    I don't have any logic inside my bean class in any of the methods.
    My Test JSP
    <%-- jsf:pagecode language="java" location="/.apt_generated/com/jsp/TestJSP.java" --%><%-- /jsf:pagecode --%><%@taglib
         uri="http://java.sun.com/portlet" prefix="portlet"%><%@taglib
         uri="http://www.ibm.com/jsf/html_extended" prefix="hx"%><%@taglib
         uri="http://java.sun.com/jsf/core" prefix="f"%><%@taglib
         uri="http://java.sun.com/jsf/html" prefix="h"%><%@page language="java"
         contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" session="false"%><portlet:defineObjects />
    <f:view>
    <script language="javascript">
    function listbox_moveall(sourceID, destID) {
         var src = document.getElementById(sourceID); var dest = document.getElementById(destID);
         for(var count=0; count < src.length; count++) {
              var option = src[count];
              try {
                   dest.add(new Option(option.text, option.text), null); //Standard
                   src.remove(count, null);
              } catch(error) {
                   dest.add(new Option(option.text, option.text)); // IE only
                   src.remove(count);
              } count--;
         } return true;
    function listbox_moveacross(sourceID, destID) {
         var src = document.getElementById(sourceID); var dest = document.getElementById(destID);
         var selectedIndex = src.selectedIndex;
         if(selectedIndex == -1){
              alert("Please select to move");
         for(var count=0; count < src.length; count++) {
              if(src[count].selected == true) {
                   var option = src[count];
                   try {
                        dest.add(new Option(option.text, option.value), null); //Standard
                        src.remove(count, null);
                   } catch(error) {
                        dest.add(new Option(option.text, option.value)); // IE only
                        src.remove(count);
                   }  count--;               
    </script>
    <hx:scriptCollector id="scriptCollector1">
         <h:form styleClass="form" id="form1" prependId="false">
         <table BORDER="0" CELLPADDING="1" CELLSPACING="0" bgcolor="eeeeee">
              <tbody>
                   <tr> <td colspan="3"><b>TAP Investment Objectives</b></td> </tr>
                   <tr> <td bgcolor="#bfbfbf"><b>Available List</b></td>      <td width="65"></td>
                        <td bgcolor="#bfbfbf"><b>Linked List </b></td> </tr>
                   <tr><td valign="top">
         <h:selectManyListbox size="10" styleClass="selectManyListbox" id="listbox1">
                   <f:selectItems value="#{selectitems.testJSP.availableBMs.availableBMs.toArray}" id="selectItems2" />
         </h:selectManyListbox></td>
         <td style="vertical-align: middle;"> <div id="objective_button" align="center">
         <hx:graphicImageEx url="/images/AllRight.gif" title="All Right" height="16" hspace="2" width="16"
         onclick="return listbox_moveall('listbox1', 'listbox2');"></hx:graphicImageEx>      <br> </div> </td>
         <td valign="top">
              <h:selectManyListbox size="10" styleClass="selectManyListbox" id="listbox2" >
                   <f:selectItems value="#{selectitems.testJSP.linkedBMs.linkedBMs.toArray}" id="selectItems1" />
              </h:selectManyListbox>
         </td>
              </tr>
              </tbody>
         </table>
         <hx:commandExButton type="submit" value="Submit"
              styleClass="commandExButton" id="button1" action="#{testJSP.save}"></hx:commandExButton>
         </h:form>
    </hx:scriptCollector>
    </f:view>My Backing Bean Class
    package com.jpmorganchase.tap.ui.bean;
    import java.util.ArrayList;
    import java.util.List;
    import javax.faces.component.UIComponent;
    import javax.faces.event.ActionEvent;
    public class TestUIJSP {
         private List<String> availableBMs;
         private List<String> linkedBMs;
         private UIComponent selectedBindingBMs;
         public UIComponent getSelectedBindingBMs() {
              System.out.println("getSelectedBindingBMs .. " + selectedBindingBMs);
              return selectedBindingBMs;
         public void setSelectedBindingBMs(UIComponent selectedBindingBMs) {
              this.selectedBindingBMs = selectedBindingBMs;
         public TestUIJSP(){
              System.out.println("inside constructor...............");
              availableBMs = new ArrayList<String>();
              availableBMs.add("Venkat");
              availableBMs.add("Narayana");
              availableBMs.add("Joglekar");
              linkedBMs = new ArrayList<String>();
         public List<String> getAvailableBMs() {
              return availableBMs;
         public void setAvailableBMs(List<String> availableBMs) {
              this.availableBMs = availableBMs;
         public List<String> getLinkedBMs() {
              return linkedBMs;
         public void setLinkedBMs(List<String> linkedBMs) {
              this.linkedBMs = linkedBMs;
         public String save(){
              System.out.println("save availableBMs........." + availableBMs);
              System.out.println("save linkedBMs........." + linkedBMs);
              return null;
         public void moveAllLeftToRight(ActionEvent evt){
              System.out.println("availableBMs.." + availableBMs);
              linkedBMs.addAll(availableBMs);
              System.out.println("LinkedBM's");
              availableBMs.clear();
         public void moveLeftToRight(ActionEvent evt){
              System.out.println("availableBMs.." + availableBMs);
    }MyFaces Config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
    <faces-config>
         <application>
              <state-manager>com.ibm.faces.application.DevelopmentStateManager</state-manager>
              <property-resolver>com.ibm.faces.databind.SelectItemsPropResolver</property-resolver>
              <variable-resolver>com.ibm.faces.databind.SelectItemsVarResolver</variable-resolver>
              <variable-resolver>com.ibm.faces.portlet.PortletVariableResolver</variable-resolver>
              <locale-config><supported-locale>en</supported-locale></locale-config>
              <message-bundle>com.PortletResource</message-bundle>
         </application>
         <factory><faces-context-factory>com.ibm.faces.context.AjaxFacesContextFactory</faces-context-factory>
              <render-kit-factory>com.ibm.faces.renderkit.AjaxRenderKitFactory</render-kit-factory></factory>
         <managed-bean>
                <managed-bean-name>pc_TestJSP</managed-bean-name><managed-bean-class>com.jsp.TestJSP</managed-bean-class>
                   <managed-bean-scope>session</managed-bean-scope>
              </managed-bean><managed-bean>
              <managed-bean-name>testJSP</managed-bean-name><managed-bean-class>com.bean.TestUIJSP</managed-bean-class>
                   <managed-bean-scope>session</managed-bean-scope></managed-bean>
         <lifecycle>     <phase-listener>com.ibm.faces.webapp.ValueResourcePhaseListener</phase-listener></lifecycle>
    </faces-config>
    My Protlet.xml<?xml version="1.0" encoding="UTF-8"?>
    <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" id="com.ibm.faces.portlet.FacesPortlet.c8eddc2f92">
         <portlet>
              <portlet-name>TestProject</portlet-name>
              <portlet-class>com.ibm.faces.portlet.FacesPortlet</portlet-class>
              <init-param><name>com.ibm.faces.portlet.page.view</name><value>/jsp/testJSP.jsp</value></init-param>
              <init-param><name>wps.markup</name><value>html</value></init-param>
              <expiration-cache>0</expiration-cache>
              <supports><mime-type>text/html</mime-type><portlet-mode>view</portlet-mode></supports>
              <supported-locale>en</supported-locale><resource-bundle>com.PortletResource</resource-bundle>
         </portlet>
    </portlet-app>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

  • Kodo.util.FatalDataStoreException: java.util.NoSuchElementException

    I am receiving the following exception in our app at what appears to be
    random intervals.
    There were multiple users logged into the system, each getting their own
    persistence manager (by way of pmFactory.getPersistenceManager(), which
    are then stored in the http session and re-used as long as that user is
    logged in) and when they started accessing the system simultaneously
    everything was fine for a while (ranged from 30min to 3 hours) then one
    person would see the exception, then others would see the exception right
    after. Then a few minutes later the problem would be gone again for a
    while
    I have the multithread option set to true in kodo.properties and am using
    pessimistic transactions
    Using kodo 3.3.3
    I am just curious what might cause something like this, it seems as though
    2 threads are trying to commit the same data with the same persistence
    manager to me.
    My next step in debugging this process is extending the persistence
    manager object to add some logging and see if my theory is correct.
    Any pointers to tracking this down would be greatly appreciated
    kodo.util.FatalDataStoreException: java.util.NoSuchElementException
         at
    kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:1020)
         at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
         at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
         at
    com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
         at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at
    org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
         at
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at
    com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
         at
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
         at
    org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
         at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
         at
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         at java.lang.Thread.run(Thread.java:534)
    NestedThrowablesStackTrace:
    java.util.NoSuchElementException
         at serp.util.LookaheadIterator.next(LookaheadIterator.java:57)
         at
    com.solarmetric.apache.commons.collections.iterators.IteratorChain.next(IteratorChain.java:264)
         at kodo.util.CacheMap$EntryIterator.next(CacheMap.java:654)
         at java.util.AbstractCollection.toArray(AbstractCollection.java:174)
         at java.util.ArrayList.<init>(ArrayList.java:136)
         at kodo.datacache.QueryCacheImpl.keySet(QueryCacheImpl.java:165)
         at
    kodo.datacache.AbstractQueryCache.classesChanged(AbstractQueryCache.java:60)
         at
    kodo.datacache.DataCacheStoreManager.updateCaches(DataCacheStoreManager.java:217)
         at
    kodo.datacache.DataCacheStoreManager.commit(DataCacheStoreManager.java:73)
         at
    kodo.runtime.PersistenceManagerImpl.endTransaction(PersistenceManagerImpl.java:1317)
         at
    kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:998)
         at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
         at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
         at
    com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
         at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at
    org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
         at
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at
    com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
         at
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
         at
    org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
         at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
         at
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         at java.lang.Thread.run(Thread.java:534)

    Thank you stephen, that reply is like music to my ears :)
    Stephen Kim wrote:
    I would upgrade to 3.3.4 or 3.4 as they have resolved that bug.
    Damian Bradicich wrote:
    I am receiving the following exception in our app at what appears to be
    random intervals.
    There were multiple users logged into the system, each getting their own
    persistence manager (by way of pmFactory.getPersistenceManager(), which
    are then stored in the http session and re-used as long as that user is
    logged in) and when they started accessing the system simultaneously
    everything was fine for a while (ranged from 30min to 3 hours) then one
    person would see the exception, then others would see the exception right
    after. Then a few minutes later the problem would be gone again for a
    while
    I have the multithread option set to true in kodo.properties and am using
    pessimistic transactions
    Using kodo 3.3.3
    I am just curious what might cause something like this, it seems as though
    2 threads are trying to commit the same data with the same persistence
    manager to me.
    My next step in debugging this process is extending the persistence
    manager object to add some logging and see if my theory is correct.
    Any pointers to tracking this down would be greatly appreciated
    kodo.util.FatalDataStoreException: java.util.NoSuchElementException
         at
    kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:1020)
         at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
         at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
         at
    com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
         at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at
    org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
         at
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at
    com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
         at
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
         at
    org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
         at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
         at
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         at java.lang.Thread.run(Thread.java:534)
    NestedThrowablesStackTrace:
    java.util.NoSuchElementException
         at serp.util.LookaheadIterator.next(LookaheadIterator.java:57)
         at
    com.solarmetric.apache.commons.collections.iterators.IteratorChain.next(IteratorChain.java:264)
         at kodo.util.CacheMap$EntryIterator.next(CacheMap.java:654)
         at java.util.AbstractCollection.toArray(AbstractCollection.java:174)
         at java.util.ArrayList.<init>(ArrayList.java:136)
         at kodo.datacache.QueryCacheImpl.keySet(QueryCacheImpl.java:165)
         at
    kodo.datacache.AbstractQueryCache.classesChanged(AbstractQueryCache.java:60)
         at
    kodo.datacache.DataCacheStoreManager.updateCaches(DataCacheStoreManager.java:217)
         at
    kodo.datacache.DataCacheStoreManager.commit(DataCacheStoreManager.java:73)
         at
    kodo.runtime.PersistenceManagerImpl.endTransaction(PersistenceManagerImpl.java:1317)
         at
    kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:998)
         at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
         at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
         at
    com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
         at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at
    org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at
    org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
         at
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at
    com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
         at
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
         at
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
         at
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at
    org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
         at
    org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
         at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
         at
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         at java.lang.Thread.run(Thread.java:534)
    Steve Kim
    [email protected]
    SolarMetric Inc.
    http://www.solarmetric.com

  • Cannot use winzip to unzip the zip file zipped by java.util.zip

    Hi all,
    I use the followcode to create a zip file, and i downlaod it and try to use winzip to unzip this file but fail. The path is correct and i got the zip file. but it just cannot unzip.
    pls help
    thanks alot.
    Kin
              int count = 0;
              count = ContentDocuments.size();
              for (int i = 0; i < bb; i++)     {
                   System.out.println(filenames[i] + "");
              // Create a buffer for reading the files
              byte[] buf = new byte[10*1024*1024];
              try {      
                   String outFilename = MyDir + "zipfile/" + getContentID2()+".zip";
                   System.out.println("outFilename = " + outFilename);
                   ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
                   for (int i=0; i<filenames.length; i++) {           
                        FileInputStream in = new FileInputStream(filenames);
                        out.putNextEntry(new ZipEntry(filenames[i]));
                        int len;
                        while ((len = in.read(buf)) != -1) {               
                             out.write(buf, 0, len);
                        out.closeEntry();
                        in.close();
                   out.close();
              } catch (IOException e)     {
                   System.err.println("zipprocess " + e.getMessage());

    I've written a replacement zip file creator class. Not much tested but it seems to work, however I've yet to try it with the version of WINZIP that rejected my previous attempts. Oh, and the stored dates are garbage.
    * ZipOutputFile.java
    * Created on 25 March 2004, 13:08
    package zip;
    import java.io.IOException;
    import java.nio.ByteBuffer;
    * <p>Creates a ZIP archive in a file which WINZIP should be able to read.</p>
    * <p>Unfortunately zip archives generated by the standard Java class
    * {@link java.util.zip.ZipOutputStream}, while adhering to PKZIPs format specification,
    * don't appear to be readable by some versions of WinZip and similar utilities. This is
    * probably because they use
    * a format specified for writing to a non-seakable stream, where the length and CRC of
    * a file is writen to a special block following the data. Since the length of the binary
    * date is unknown this makes an archive quite complicated to read, and it looks like
    * WinZip hasn't bothered.</p>
    * <p>All data is Deflated. Close completes the archive, flush terminates the current entry.</p>
    * @see java.util.zip.ZipOutputStream
    * @author  Malcolm McMahon
    public class ZipOutputFile extends java.io.OutputStream {
        byte[] oneByte = new byte[1];
        java.io.RandomAccessFile archive;
        public final static short DEFLATE_METHOD = 8;
        public final static short VERSION_CODE = 20;
        public final static short MIN_VERSION = 10;
        public final static int  ENTRY_HEADER_MAGIC = 0x04034b50;
        public final static int  CATALOG_HEADER_MAGIC = 0x02014b50;
        public final static int  CATALOG_END_MAGIC = 0x06054b50;
        private final static short DISC_NUMBER = 0;
        ByteBuffer entryHeader = ByteBuffer.wrap(new byte[30]);
        ByteBuffer entryLater = ByteBuffer.wrap(new byte[12]);
        java.util.zip.CRC32 crcAcc = new java.util.zip.CRC32();
        java.util.zip.Deflater def = new java.util.zip.Deflater(java.util.zip.Deflater.DEFLATED, true);
        int totalCompressed;
        long MSEPOCH;
        byte [] deflateBuf = new byte[2048];
        public static final long SECONDS_TO_DAYS = 60 * 60 * 24;
         * Entry stores info about each file stored
        private class Entry {
            long offset;        // position of header in file
            byte[] name;
            long crc;
            int compressedSize;
            int uncompressedSize;
            java.util.Date date;
             * Contructor also writes initial header.
             * @param fileName Name under which data is stored.
             * @param date  Date to label the file with
             * @TODO get the date stored properly
            public Entry(String fileName, java.util.Date date) throws IOException {
                name = fileName.getBytes();
                this.date = date == null ? new java.util.Date() : date;
                entryHeader.position(10);
                putDate(entryHeader);
                entryHeader.putShort(26, (short)name.length);
                offset = archive.getFilePointer();
                archive.write(entryHeader.array());
                archive.write(name);
                catalog.add(this);
                crcAcc.reset();
                totalCompressed = 0;
                def.reset();
             * Finish writing entry data. Save the lenghts & crc for catalog
             * and go back and fill them in in the entry header.
            public void close() throws IOException {
                def.finish();
                while(!def.finished())
                    deflate();
                entryLater.position(0);
                crc = crcAcc.getValue();
                compressedSize = totalCompressed;
                uncompressedSize = def.getTotalIn();
                entryLater.putInt((int)crc);
                entryLater.putInt(compressedSize);
                entryLater.putInt(uncompressedSize);
                long eof = archive.getFilePointer();
                archive.seek(offset + 14);
                archive.write(entryLater.array());
                archive.seek(eof);
             * Write the catalog data relevant to this entry. Buffer is
             * preloaded with fixed data.
             * @param buf Buffer to organise fixed lenght part of header
            public void writeCatalog(ByteBuffer buf) throws IOException {
                buf.position(12);
                putDate(buf);
                buf.putInt((int)crc);
                buf.putInt(compressedSize);
                buf.putInt(uncompressedSize);
                buf.putShort((short)name.length);
                buf.putShort((short)0);  // extra field length
                buf.putShort((short)0);  // file comment length
                buf.putShort(DISC_NUMBER);  // disk number
                buf.putShort((short)0); // internal attributes
                buf.putInt(0);      // external file attributes
                buf.putInt((int)offset); // file position
                archive.write(buf.array());
                archive.write(name);
             * This writes the entries date in MSDOS format.
             * @param buf Where to write it
             * @TODO Get this generating sane dates
            public void putDate(ByteBuffer buf) {
                long msTime = (date.getTime() - MSEPOCH) / 1000;
                buf.putShort((short)(msTime % SECONDS_TO_DAYS));
                buf.putShort((short)(msTime / SECONDS_TO_DAYS));
        private Entry entryInProgress = null; // entry currently being written
        private java.util.ArrayList catalog = new java.util.ArrayList(12);  // all entries
         * Start a new output file.
         * @param name The name to store as
         * @param date Date - null indicates current time
        public java.io.OutputStream openEntry(String name, java.util.Date date) throws IOException{
            if(entryInProgress != null)
                entryInProgress.close();
            entryInProgress = new Entry(name, date);
            return this;
         * Creates a new instance of ZipOutputFile
         * @param fd The file to write to
        public ZipOutputFile(java.io.File fd) throws IOException {
            this(new java.io.RandomAccessFile(fd, "rw"));
         * Create new instance of ZipOutputFile from RandomAccessFile
         * @param archive RandomAccessFile
        public ZipOutputFile(java.io.RandomAccessFile archive) {
            this.archive = archive;
            entryHeader.order(java.nio.ByteOrder.LITTLE_ENDIAN);  // create fixed fields of header
            entryLater.order(java.nio.ByteOrder.LITTLE_ENDIAN);
            entryHeader.putInt(ENTRY_HEADER_MAGIC);
            entryHeader.putShort(MIN_VERSION);
            entryHeader.putShort((short)0);  // general purpose flag
            entryHeader.putShort(DEFLATE_METHOD);
            java.util.Calendar cal = java.util.Calendar.getInstance();
            cal.clear();
            cal.set(java.util.Calendar.YEAR, 1950);
            cal.set(java.util.Calendar.DAY_OF_MONTH, 1);
    //        def.setStrategy(Deflater.HUFFMAN_ONLY);
            MSEPOCH = cal.getTimeInMillis();
         * Writes the master catalogue and postamble and closes the archive file.
        public void close() throws IOException{
            if(entryInProgress != null)
                entryInProgress.close();
            ByteBuffer catEntry = ByteBuffer.wrap(new byte[46]);
            catEntry.order(java.nio.ByteOrder.LITTLE_ENDIAN);
            catEntry.putInt(CATALOG_HEADER_MAGIC);
            catEntry.putShort(VERSION_CODE);
            catEntry.putShort(MIN_VERSION);
            catEntry.putShort((short)0);
            catEntry.putShort(DEFLATE_METHOD);
            long catStart = archive.getFilePointer();
            for(java.util.Iterator it = catalog.iterator(); it.hasNext();) {
                ((Entry)it.next()).writeCatalog(catEntry);
            catEntry.position(0);
            catEntry.putInt(CATALOG_END_MAGIC);
            catEntry.putShort(DISC_NUMBER);
            catEntry.putShort(DISC_NUMBER);
            catEntry.putShort((short)catalog.size());
            catEntry.putShort((short)catalog.size());
            catEntry.putInt((int)(archive.getFilePointer() - catStart));
            catEntry.putInt((int)catStart);
            catEntry.putShort((short)0);
            archive.write(catEntry.array(), 0, catEntry.position());
            archive.setLength(archive.getFilePointer());  // truncate if old file
            archive.close();
            def.end();
         * Closes entry in progress.
        public void flush() throws IOException{
            if(entryInProgress == null)
                throw new IllegalStateException("Must call openEntry before writing");
            entryInProgress.close();
            entryInProgress = null;
         * Standard write routine. Defined by {@link java.io.OutputStream}.
         * Can only be used once openEntry has defined the file.
         * @param b  Bytes to write
        public void write(byte[] b) throws IOException{
            if(entryInProgress == null)
                throw new IllegalStateException("Must call openEntry before writing");
            crcAcc.update(b);
            def.setInput(b);
            while(!def.needsInput())
                deflate();
         * Standard write routine. Defined by {@link java.io.OutputStream}.
         * Can only be used once openEntry has defined the file.
         * @param b  Bytes to write
        public void write(int b) throws IOException{
            oneByte[0] = (byte)b;
            crcAcc.update(b);
            write(oneByte, 0, 1);
         *  Standard write routine. Defined by {@link java.io.OutputStream}.
         * Can only be used once openEntry has defined the file.
         * @param b  Bytes to write
         * @param off Start offset
         * @param len Byte count
        public void write(byte[] b, int off, int len) throws IOException{
            if(entryInProgress == null)
                throw new IllegalStateException("Must call openEntry before writing");
            crcAcc.update(b, off, len);
            def.setInput(b, off, len);
            while(!def.needsInput())
                deflate();
        * Gets a buffer full of coded data from the deflater and writes it to archive.
        private void deflate() throws IOException {
            int len = def.deflate(deflateBuf);
            totalCompressed += len;
            if(len > 0)
                archive.write(deflateBuf, 0, len);

  • Import java.util Error

    How come program wont accept import java.util ?
    I get cannot resole symbol ?? i looked in up in my java book and its spelled right . what gives ?

    there is no class named java.util .
    import java.util.ArrayList;
    import java.util.EventObject;
    or
    import java.util.*;

Maybe you are looking for

  • Startup disaster, Root/user password change, Please help!!

    Hi, my ibook g4 was purchased on ebay through a seller with 100% feedback (a school district). It came with Tiger already installed, and I bought the Leopard Retail upgrade disc, installed all that, and did software updates to get it up and running a

  • SAP SNC Portal DCM screen performance is very slow and times out

    Friends, SAP SNC Portal DCM screen performance is very slow and times out when user trying to pull data using customer location What are the cleanup activites we can do to improve the overall SNC performance ? We did open OSS message but so far no re

  • DivX upgrade corrupted quicktime AVI playing ability

    I recently upgraded my DivX player and converter, after doing this my Quicktime player stopped playing AVI files. which is probably a good 85% of my videos and movies which i cant get to reformat to Mp4, MPEG or any of the other formats that it will

  • Admin Console isn't available

    I have just installed WebLogic on two systems (both different OSs) and neither of them allow me to use the admin console. The address was given to me at the end of the setup and there were several addresses, one for SSL. I tried the two that were pro

  • Ipod disabled will not reset?

    need help my sons ipod is disabled and will not reset and he cant remember password. I have connected it to my itunes and it gives same message that is it is disabled and his itunes account is gone.  any suggestions