Buggy code:
if ( var != null ) { varType = stack . getVariable ( stack . getMappedVariableNumber ( ( ( var . getVariableNumber ( ) ) - ( currentClass . getNumberOfVariables ( ) ) ) , var . getType ( ) , true ) ) ; if ( varType != null ) { isCalledOnInterface = varType . isBytecodeInterface ( ) ; } if ( var . getType ( ) . isPrimitiveType ( ) ) { isStaticCallOnPrimitive = true ; } } if ( step instanceof ParentCallStep ) { ParentCallStep parentStep = ( ( ParentCallStep ) ( step ) ) ; ClassDescriptor parent = ( ( ClassDescriptor ) ( parentStep . getMethodCallee ( ) . getParent ( ) ) ) ; if ( ! ( step . isCalleeLoaded ( ) ) ) { String key = currentClass . getStaticKey ( ) ; String className = QuorumConverter . convertStaticKeyToBytecodePath ( key ) ; methodVisitor . visitVarInsn ( ALOAD , 0 ) ; methodVisitor . visitFieldInsn ( GETFIELD , className , QuorumConverter . convertParentStaticKeyToValidName ( parent . getStaticKey ( ) ) , QuorumConverter . convertStaticKeyToBytecodePathTypeName ( parent . getStaticKey ( ) ) ) ; } converted = QuorumConverter . convertTypeToJavaClassTypeEquivalent ( parent . getType ( ) ) ; } else { boolean field = var . isFieldVariable ( ) ; if ( isCalledOnInterface ) { converted = QuorumConverter . convertClassNameToInterfaceName ( QuorumConverter . convertStaticKeyToBytecodePath ( var . getType ( ) . getStaticKey ( ) ) ) ; } else { converted = QuorumConverter . convertTypeToJavaClassTypeEquivalent ( var . getType ( ) ) ; } if ( field ) { isCalledOnField = true ; if ( ! ( step . isCalleeLoaded ( ) ) ) { String key = currentClass . getStaticKey ( ) ; String className = QuorumConverter . convertStaticKeyToBytecodePath ( key ) ; String varTypeName = QuorumConverter . convertTypeToBytecodeString ( var . getType ( ) ) ; methodVisitor . visitVarInsn ( ALOAD , 0 ) ; methodVisitor . visitFieldInsn ( GETFIELD , className , var . getName ( ) , varTypeName ) ; } converted = QuorumConverter . convertClassNameToInterfaceName ( QuorumConverter . convertStaticKeyToBytecodePath ( var . getType ( ) . getStaticKey ( ) ) ) ; } else { if ( var instanceof ParameterDescriptor ) { ParameterDescriptor varDescriptor = ( ( ParameterDescriptor ) ( var ) ) ; if ( ! ( step . isCalleeLoaded ( ) ) ) { int number = stack . getParameterNumber ( varDescriptor . getName ( ) ) ; methodVisitor . visitVarInsn ( QuorumConverter . getLoadOpcode ( var . getType ( ) ) , number ) ; } isParameter = true ; converted = QuorumConverter . convertClassNameToInterfaceName ( QuorumConverter . convertStaticKeyToBytecodePath ( var . getType ( ) . getStaticKey ( ) ) ) ; } else if ( ! ( step . isCalleeLoaded ( ) ) ) { int number = - 1 ; if ( var . isCaughtException ( ) ) { number = var . getVariableNumber ( ) ; } else { number = ( var . getVariableNumber ( ) ) - ( currentClass . getNumberOfVariables ( ) ) ; } int mapped = stack . getMappedVariableNumber ( number , var . getType ( ) , false ) ; methodVisitor . visitVarInsn ( QuorumConverter . getLoadOpcode ( var . getType ( ) ) , mapped ) ; } } } if ( ! ( step . isCalleeLoaded ( ) ) ) { processExpressions ( ) ; } } <START_BUG> if ( ( ( ! isParameter ) && ( ! isCalledOnInterface ) ) && isStaticCallOnPrimitive ) { <END_BUG> methodVisitor . visitMethodInsn ( INVOKESTATIC , QuorumConverter . convertPrimitiveToObjectPath ( step . getParentObject ( ) . getType ( ) ) , ( "Primitive" + ( step . getMethodCallee ( ) . getName ( ) ) ) , QuorumConverter . convertPrimitiveMethodDescriptorToBytecodeSignature ( callee , step . getParentObject ( ) . getType ( ) ) ) ; } else if ( ( ( ! isParameter ) && ( ! isCalledOnField ) ) && ( ! isCalledOnInterface ) ) { methodVisitor . visitMethodInsn ( INVOKEVIRTUAL , converted , callee . getName ( ) , QuorumConverter . convertMethodDescriptorToBytecodeSignature ( callee ) ) ; } else { methodVisitor . visitMethodInsn ( INVOKEINTERFACE , converted , callee . getName ( ) , QuorumConverter . convertMethodDescriptorToBytecodeSignature ( callee ) ) ; } if ( ! ( step . getMethodCallee ( ) . getReturnType ( ) . isVoid ( ) ) ) { if ( step . isSoloMethodCall ( ) ) { if ( step . getMethodCallee ( ) . getReturnType ( ) . isNumber ( ) ) { methodVisitor . visitInsn ( POP2 ) ; } else { methodVisitor . visitInsn ( POP ) ; } } else { TypeDescriptor returnType = step . getMethodCallee ( ) . getReturnType ( ) ; if ( returnType . isTemplated ( ) ) { boolean notFound = true ; String templateName = returnType . getTemplateName ( ) ; if ( ( step . getParentObject ( ) ) != null ) { Iterator < GenericDescriptor > templateTypes = step . getParentObject ( ) . getTemplateTypes ( ) ; while ( ( templateTypes . hasNext ( ) ) && notFound ) { TypeDescriptor next = templateTypes . next ( ) . getType ( ) ; TypeDescriptor mappedTemplateType = step . getMethodCallee ( ) . getMappedTemplateType ( next . getTemplateName ( ) ) ; if ( ( mappedTemplateType != null ) && ( next . isPrimitiveType ( ) ) ) { next . convertToClass ( ) ; String autoBoxClassName = QuorumConverter . convertStaticKeyToBytecodePath ( QuorumConverter . convertClassNameToInterfaceName ( next . getStaticKey ( ) ) ) ; methodVisitor . visitTypeInsn ( CHECKCAST , QuorumConverter . convertStaticKeyToBytecodePath ( QuorumConverter . convertClassNameToInterfaceName ( next . getStaticKey ( ) ) ) ) ; next . convertToPrimitive ( ) ; String autoBoxMethodSignature = "()" + ( QuorumConverter . convertTypeToBytecodeString ( next ) ) ; methodVisitor . visitMethodInsn ( INVOKEINTERFACE , autoBoxClassName , "GetValue" , autoBoxMethodSignature ) ; stack . pushExpressionType ( next ) ;

Fix:
if ( ( ! isCalledOnInterface ) && isStaticCallOnPrimitive ) {