pentaho/pentaho-kettle · error · KettleValueException
: it's not possible to convert from an Internet Address to…
Error message
: it's not possible to convert from an Internet Address to a Boolean
What it means
ValueMetaInternetAddress.getBoolean() is intentionally unsupported: there is no meaningful boolean interpretation of an IP address. The method unconditionally throws KettleValueException for any non-null conversion attempt.
Solutions
- Change the target/output field type so it no longer requests Boolean from this field
- Convert via getString() and apply explicit business logic (e.g., compare against a known address or 'empty' check) if a boolean was intended
- Catch KettleValueException and supply a defined default (null/false) where boolean output is unavoidable
Example fix
// before Boolean b = inetValueMeta.getBoolean(rowData[i]); // after String s = inetValueMeta.getString(rowData[i]); Boolean b = (s == null) ? null : !s.isEmpty(); // explicit rule
Defensive patterns
Strategy: validation
Validate before calling
// never call getBoolean on InternetAddress; derive boolean from string explicitly Boolean b = (s == null) ? null : !s.isEmpty();
Type guard
if (meta instanceof ValueMetaInternetAddress) { /* getBoolean() will always throw */ } Try / catch
try { b = meta.getBoolean(v); } catch (KettleValueException e) { b = null; } Prevention
- Never target Boolean fields from Internet Address fields
- Check meta type before boolean conversion
- Use explicit business rules on getString() instead
When it happens
Trigger: Any call to getBoolean() on an Internet Address value meta — e.g., a step or expression converting the field to Boolean, or a boolean comparison against the field.
Common situations: Mapping an IP field into a boolean output field in a transformation; copy/pasted field-type mappings after changing a field's type; legacy transformations where the field used to be a String/Number and is now Internet Address.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- : I don't know how to convert a boolean to a timestamp.
- : I don't know how to convert date values to booleans.
- : it's not possible to convert from Timestamp to Boolean
- Wrong value conversion to
- : can't be converted to an Internet Address
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/48c1ce4414b560bf.
Report an issue: GitHub.
Appendix: source
Thrown at core/src/main/java/org/pentaho/di/core/row/value/ValueMetaInternetAddress.java:202
@Override
public BigDecimal getBigNumber( Object object ) throws KettleValueException {
InetAddress address = getInternetAddress( object );
if ( null == address ) {
return null;
}
BigInteger bi = BigInteger.ZERO;
byte[] addr = address.getAddress();
for ( byte aByte : addr ) {
bi = bi.shiftLeft( 8 ).add( BigInteger.valueOf( aByte & 0xFF ) );
}
return new BigDecimal( bi );
}
@Override
public Boolean getBoolean( Object object ) throws KettleValueException {
throw new KettleValueException( toStringMeta()
+ ": it's not possible to convert from an Internet Address to a Boolean" );
}
@Override
public String getString( Object object ) throws KettleValueException {
return convertInternetAddressToString( getInternetAddress( object ) );
}
@Override
public byte[] getBinaryString( Object object ) throws KettleValueException {
if ( isStorageBinaryString() && identicalFormat ) {
return (byte[]) object; // shortcut it directly for better performance.
}
if ( object == null ) {
return null;
}
switch ( storageType ) {
case STORAGE_TYPE_NORMAL:View on GitHub (pinned to f3058517a1)