cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ClassCastException in agent log

John.Gregg
Maker

I'm using 4.5.5.

 

I created an exit point to track calls to java.sql.Connection.isValid() but it doesn't work.  Since then I've been seeing this error in the agent logs:

 

[Log files redacted]

 

Any suggestions?

 

thanks

 

^ Post edited by @Ryan.Paredez to remove log files. Please do not share or attach log files to community posts for security and privacy reasons.

 

2 REPLIES 2

John.Gregg
Maker

@Ryan.ParedezThere is no way for someone to solve this problem without seeing the log message.

mark.vanber
Creator

Casting is the process of type conversion, which is in Java very common because its a statically typed language. Type Casting only works when the casted object follows an is a relationship to the type you are trying to cast to. ClassCastException is a runtime exception raised in Java when you try to improperly cast a class from one type to another. It's thrown to indicate that the code has attempted to cast an object to a related class, but of which it is not an instance. It is good practice to guard any explicit casts with an instanceof check first:

 

if (myApple instanceof Fruit) {
Fruit myFruit = (Fruit)myApple;
}

 

In general, that's what a cast means: it tells the compiler that even though this assignment might fail, you're pretty certain that it won't. In exchange for allowing the code to compile, you assume the risk of a run-time exception.

 

Here are some basic rules to keep in mind when casting variables:

 

  • Casting an object from a sub class to a super class doesn't require an explicit cast.
  • Casting an object from a super class to a sub class requires an explicit cast.
  • The compiler will not allow casts to unrelated types.

 

Even when the code compiles without issue, an exception may be thrown at run time if the object being cast is not actually an instance of that class . This will result in the run time exception ClassCastException.