Hello everybody,

I think this is a stupid question but I really cant make it work. I am
using appfuse 1.9.4 and webwork. In appfuse, it is default that
BaseObject class implements java.io.Serializable. I have a superclass
named BaseModel:

public abstract class BaseModel extends BaseObject implements
Serializable {

    private Long id;

    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

}


and I have a Study object:

public class Study extends BaseModel implements Comparable<Study> {
     private static final long serialVersionUID = 12345L;

    
    private String name;
    private Set<StudyPageSet> studyPageSets = new TreeSet();
    private Set<StudyPage> studyPages = new TreeSet();

    public Study() {}

    public Study( String name ){
        this.setName(name);
    }

    
    public Set<StudyPageSet> getStudyPageSets() {
        return studyPageSets;
    }

    public void setStudyPageSets(Set<StudyPageSet> studyPageSets) {
        this.studyPageSets = studyPageSets;
    }

    public void addStudyPageSets( StudyPageSet studyPageSet ){
        studyPageSet.setParentStudyHead(this);
        this.studyPageSets.add(studyPageSet);
    }

    public void removeStudyPageSet( StudyPageSet studyPageSet ){
        studyPageSet.setParentStudyHead(null);
        this.studyPageSets.remove(studyPageSet);
    }

    public int compareTo( Study study ) {
      if ( this.sortOrder < study.getSortOrder() )
        return -1;
      if ( this.sortOrder == study.getSortOrder() )
        return 0;
      else
        return 1;
    }

    public boolean equals(Object o) {
        if (!(o instanceof Study))
            return false;
        Study n = (Study)o;
        return n.getName().equals(name) &&
               n.getId().equals(this.getId());
    }

    public int hashCode() {
        return 31*name.hashCode();
    }

    public String toString() {
            return name;
    }


    

    private void readObject(ObjectInputStream aInputStream) throws
ClassNotFoundException, IOException {
        //always perform the default de-serialization first
        aInputStream.defaultReadObject();
    }

    private void writeObject(ObjectOutputStream aOutputStream) throws
IOException {
      //perform the default serialization for all non-transient,
non-static fields
      aOutputStream.defaultWriteObject();
    }
}



I have no errors in my runtime but the problem is when I restarted my
tomcat, I have an error in my log file(catalina.out) just like this:

[Thinkscan] ERROR [main] ManagerBase.start(638) | Exception loading
sessions from persistent storage
java.lang.NullPointerException
        at com.voxsant.thinkscan.model.Study.hashCode(Study.java:211)
        at
com.voxsant.thinkscan.model.StudyPageSet.hashCode(StudyPageSet.java:111)
        at java.util.HashMap.putForCreate(HashMap.java:461)
        at java.util.HashMap.readObject(HashMap.java:1068)
        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
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
        at
java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:479)
        at com.voxsant.thinkscan.model.Study.readObject(Study.java:229)
        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
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
        at
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1392)
        at
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:921)
        at
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:393)
        at
org.apache.catalina.session.StandardManager.load(StandardManager.java:320)
        at
org.apache.catalina.session.StandardManager.start(StandardManager.java:636)
        at
org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:431)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4155)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
        at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
        at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
        at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
        at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
        at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
        at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
        at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
        at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
        at
org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
        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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)





What could be my error in my implementation of Serializable? I am a
newbie in implementing this so any kind of help is very much
appreciated.

Thank you and God bless.


Addi



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to