In this post we will see about orika mapping exception “ma.glasnost.orika.MappingException: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18 at 55”.
Possible reason –
- Upgrade to java version – You may be started encounter problem after updating your Java version to 1.8.
- You might see weird issues after deployment the first time it will throw exception later it will work fine.
Error is coming from below class –
The javassist library contains class called ConstPool.java in javassist.bytecode package. This class contains readOne() method, if the tag variable doesn’t have a value between 1 to 12 then we have this exception. See line number 10.
private int readOne(DataInputStream in) throws IOException {
int tag = in.readUnsignedByte();
Object info;
switch(tag) {
case 1:
info = new Utf8Info(in, this.numOfItems);
break;
case 2:
default:
throw new IOException("invalid constant type: " + tag + " at " + this.numOfItems);
case 3:
info = new IntegerInfo(in, this.numOfItems);
break;
//some more code
return tag;
}
Solution –
Update your javassist version older to new one.
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.23.1-GA</version>
</dependency>
or any latest version.