ClassCastException

Status
Nicht offen für weitere Antworten.

flashfactor

Aktives Mitglied
Servus,

Ich bekomme immer diese Fehlermeldung.
Code:
type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.ClassCastException
	at.kages.redirect.servlet.SendRequest.doPost(SendRequest.java:125)
	at.kages.redirect.servlet.SendRequest.doGet(SendRequest.java:49)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:324)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.

Hier der betreffente Quellcode aus der SendRequest.java. Zeile 1 ist im Code die Zeile 125.
Code:
if( count < Integer.valueOf((String)((Hashtable)((Vector)this.vServerCount.get(a)).get(2)).get("data")).intValue() ){
	iPos = i;
	count = Integer.valueOf((String)((Hashtable)((Vector)this.vServerCount.get(a)).get(2)).get("data")).intValue();
}

Ich habe schon genau nachgeschaut was in der Hashtable steht (data=1) als String.
Nur wenn Ich Integer.valueOf("1") mache kommt die ClassCastException.

Verwendet wird JOnAs mit Tomcat 5.5.x
JDK 1.4.3_3

Gruß, ich hoffe es ist genug Info zum Problem. :)
 

flashfactor

Aktives Mitglied
Danke sehr,
habe bereits die Anwort gefunden.

Code:
String.valueOf( (Hashtable)((Vector)this.vServerCount.get(a)).get(2)).get("data") );

Damit geht es.
 

meez

Top Contributor
Ich geb dir folgenden Rat:

Schreib keine solchen Einzeiler, da sie so gut wie nicht lesbar sind für Dritte (z.B. in einem grossen Projekt) und dein Code somit schlicht als "unbrauchbar" zu deklarieren ist.
Zudem kannst du genau solche Exceptions so von Anfang an vermeiden...
 

Bleiglanz

Gesperrter Benutzer
ja, seh ich auch so
Code:
count = Integer.valueOf((String)((Hashtable)((Vector)this.vServerCount.get(a)).get(2)).get("data")).intValue();
ist Schrott, selbst wenns funktionieren würde

It’s often unclear [...]

When the statement has executed you often don’t have reference variables [....]

Plus it's harder to debug when single stepping through the code, because each statement does many separate tasks, and return values are not stored in inspectable intermediate variables.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben