java.io.InvalidClassException: local class incompatible: stream classdes

來源:互聯網
上載者:User
 






Re: ava.io.InvalidClassException: local class incompatible: stream classdes   
Feb 29, 2008 2:25 AM (reply 15 of 19)

  My Java version is the 1.5.0_14 and the value -3126998878902358585L comes from a solution that I read in a forum. The class that I'm trying to use is:
import java.util.Date;

public class DateExtendido extends Date {

static final long serialVersionUID = -3126998878902358585L;

public Date date=null;

public DateExtendido(){
super();
}

public DateExtendido(Date d){
super();
date = d;
}
}

I'm use it in this lines:

try{
DateExtendido inicioDesdeEx = new DateExtendido(inicioDesde);
out.writeObject(inicioDesdeEx);
DateExtendido inicioHastaEx = new DateExtendido(inicioHasta);
out.writeObject(inicioHastaEx);
}
catch(Exception e){
e.printStackTrace(System.out);
}

...

DateExtendido inicioDesdeEx = null;
try{
inicioDesdeEx = (DateExtendido)in.readObject();
inicioDesde = inicioDesdeEx.date;

DateExtendido inicioHastaEx = (DateExtendido)in.readObject();
inicioHasta = inicioHastaEx.date;
}catch(Exception e){
e.printStackTrace(System.out);
}

And the error:

java.io.InvalidClassException: java.util.Date; local class incompatible: stream classdesc serialVersionUID = 7523895402267505689, local class serialVersionUID = 7523967970034938905
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at dumbo7.user.FiltroUsuario.readObject(FiltroUsuario.java:348)
at dumbo7.user.FiltroUsuario.importFiltro(FiltroUsuario.java:436)
at dumbo7.user.DumboUser.setPersonalData(DumboUser.java:250)
at dumbo7.user.DumboUser.<init>(DumboUser.java:69)
at dumbo7.inicio.GestorInicio.loginDumbo(GestorInicio.java:81)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at atica.frameweb.manager.ManagerModule.doMethod(ManagerModule.java:611)
at atica.frameweb.manager.ManagerModule.doObjectDBMethod(ManagerModule.java:371)
at atica.frameweb.manager.ManagerModule.doObject(ManagerModule.java:261)
at atica.frameweb.manager.ManagerModule.doActions(ManagerModule.java:201)
at atica.frameweb.manager.HttpServletManager.service(HttpServletManager.java:122)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)
at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:134)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)

 
ibancg
Posts:1
Registered: 3/4/08
Re: ava.io.InvalidClassException: local class incompatible: stream classdes   
Mar 4, 2008 4:35 AM (reply 16 of 19)

  Hi, I was having this error.

Take a look at the hex representation of both serial uids:

7523895402267505689: 0x686A3F014B597400
7523967970034938905: 0x686A81014B597400

The 0x3F was changed by a 0x81.

In my case this behaviour was caused (only in MS Windows) by a string proccessing of the serialized object stream before unmarshall the object. A proccessing like that:

byte[] processedSerializedObjectByteArray = serializedObjectByteArray.toString().replace( ..., ... ).getBytes();

I fixed the problem with binary replace instead of using the String API, wich causes the replacement of 0x3F characters into 0x81 (only in MS Windows).
Are you doing a similar string proccessing?

 
ejp
Posts:15,588
Registered: 5/11/97
Re: ava.io.InvalidClassException: local class incompatible: stream classdes   
Mar 4, 2008 2:07 PM (reply 17 of 19)

  Also @OP I can't see what value the DateExtendido class is adding ...  
relicary
Posts:4
Registered: 2/25/08
Re: ava.io.InvalidClassException: local class incompatible: stream classdes   
Mar 5, 2008 5:53 AM (reply 18 of 19)

  Hi,

I'm tried another way. Cos the java.util.Date don't works anyway, I'm save it as a String using DateFormat. The String type don't need the serialVersionUID.

 
ejp
Posts:15,588
Registered: 5/11/97
Re: ava.io.InvalidClassException: local class incompatible: stream classdes   
Mar 5, 2008 2:04 PM (reply 19 of 19)

  See reply #16. The 0x81 is the only byte with the high bit set and it is the only byte which is being corrupted. This clearly indicates that you are corrupting the stream somewhere, possibly by using a Reader or Writer, or converting it to and from a String. If you don't fix that problem it will come back and bite you somewhere else.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.