Buggy code:
UUID uuid = UUID . randomUUID ( ) ; osmSurface . setUuid ( uuid . toString ( ) ) ; osmSurface . setSurfaceName ( ( "su-" + ( ++ ( surfaceNum ) ) ) ) ; osmSurface . setOsmSpace ( osmSpace ) ; IfcMaterialSelect ifcMaterialSelect = elementMaterialMap . get ( ifcElement ) ; osmSurface . setConstructionName ( materialInformation ( ifcMaterialSelect ) ) ; if ( ifcSlab . getPredefinedType ( ) . getName ( ) . equals ( "Roof" ) ) { osmSurface . setTypeName ( "RoofCeiling" ) ; osmSurface . setSunExposure ( "SunExposed" ) ; osmSurface . setWindExposure ( "WindExposed" ) ; } else { if ( internalWallMap . containsKey ( ifcSlab ) ) { internalWallMap . get ( ifcSlab ) . add ( osmSurface ) ; } else { LinkedList < OsmSurface > surfaceList = new LinkedList < OsmSurface > ( ) ; surfaceList . add ( osmSurface ) ; internalWallMap . put ( ifcSlab , surfaceList ) ; } } for ( OsmPoint osmPoint : spaceBoundaryPointList ) { osmSurface . addOsmPoint ( osmPoint ) ; allOsmPoints . add ( osmPoint ) ; } osmSpace . addSurface ( osmSurface ) ; } else { osmSpace . setContainsUnsolvedSurface ( true ) ; OsmSerializer . LOGGER . info ( ( "Unparsed<seq2seq4repair_space>slab<seq2seq4repair_space>geomatry" + ( ifcElement . eClass ( ) . getName ( ) ) ) ) ; } } else if ( ifcElement instanceof IfcRoof ) { if ( isGeometrySolved ) { IfcRoof ifcRoof = ( ( IfcRoof ) ( ifcElement ) ) ; OsmSurface osmSurface = new OsmSurface ( ) ; osmSurface . setSurfaceName ( ( "su-" + ( ++ ( surfaceNum ) ) ) ) ; UUID uuid = UUID . randomUUID ( ) ; osmSurface . setUuid ( uuid . toString ( ) ) ; osmSurface . setTypeName ( "RoofCeiling" ) ; osmSurface . setOsmSpace ( osmSpace ) ; String name = ifcRoof . getName ( ) ; String roughness = "" ; double conductivity = 0.0 ; double specificHeat = 0.0 ; double thickness = 0.0 ; for ( IfcRelDefines ifcRelDefines : ifcRoof . getIsDefinedBy ( ) ) { if ( ifcRelDefines instanceof IfcRelDefinesByProperties ) { IfcRelDefinesByProperties ifcRelDefinesByProperties = ( ( IfcRelDefinesByProperties ) ( ifcRelDefines ) ) ; IfcPropertySetDefinition ifcPropertySetDefinition = ifcRelDefinesByProperties . getRelatingPropertyDefinition ( ) ; if ( ifcPropertySetDefinition instanceof IfcPropertySet ) { IfcPropertySet ifcPropertySet = ( ( IfcPropertySet ) ( ifcPropertySetDefinition ) ) ; if ( ifcPropertySet . getName ( ) . equals ( "Pset_RoofCommon" ) ) { for ( IfcProperty ifcProperty : ifcPropertySet . getHasProperties ( ) ) { if ( ifcProperty instanceof IfcPropertySingleValue ) { IfcPropertySingleValue ifcPropertySingleValue = ( ( IfcPropertySingleValue ) ( ifcProperty ) ) ; if ( ifcPropertySingleValue . getName ( ) . equals ( "IsExternal" ) ) { osmSurface . setOutsideBoundaryCondition ( "Outdoors" ) ; osmSurface . setSunExposure ( "SunExposed" ) ; osmSurface . setWindExposure ( "WindExposed" ) ; } } } } else if ( ifcPropertySet . getName ( ) . equals ( "Dimensions" ) ) { for ( IfcProperty ifcProperty : ifcPropertySet . getHasProperties ( ) ) { if ( ifcProperty instanceof IfcPropertySingleValue ) { IfcPropertySingleValue ifcPropertySingleValue = ( ( IfcPropertySingleValue ) ( ifcProperty ) ) ; if ( ifcPropertySingleValue . getName ( ) . equals ( "Thickness" ) ) { if ( ( ifcPropertySingleValue . getNominalValue ( ) ) instanceof IfcLengthMeasure ) { IfcLengthMeasure ifcLengthMeasure = ( ( IfcLengthMeasure ) ( ifcPropertySingleValue . getNominalValue ( ) ) ) ; thickness = ( ifcLengthMeasure . getWrappedValue ( ) ) * ( getDefaultUnit ( "LENGTHUNIT" ) ) ; } } } } } else if ( ifcPropertySet . getName ( ) . equals ( "Analytical<seq2seq4repair_space>Properties" ) ) { for ( IfcProperty ifcProperty : ifcPropertySet . getHasProperties ( ) ) { if ( ifcProperty instanceof IfcPropertySingleValue ) { IfcPropertySingleValue ifcPropertySingleValue = ( ( IfcPropertySingleValue ) ( ifcProperty ) ) ; if ( ifcPropertySingleValue . getName ( ) . equals ( "Heat<seq2seq4repair_space>Transfer<seq2seq4repair_space>Coefficient<seq2seq4repair_space>(U)" ) ) { if ( ( ifcPropertySingleValue . getNominalValue ( ) ) instanceof IfcReal ) { IfcReal ifcReal = ( ( IfcReal ) ( ifcPropertySingleValue . getNominalValue ( ) ) ) ; conductivity = ifcReal . getWrappedValue ( ) ; } } else if ( ifcPropertySingleValue . getName ( ) . equals ( "Roughness" ) ) { if ( ( ifcPropertySingleValue . getNominalValue ( ) ) instanceof IfcInteger ) { IfcInteger ifcInteger = ( ( IfcInteger ) ( ifcPropertySingleValue . getNominalValue ( ) ) ) ; <START_BUG> roughness = ifcInteger . toString ( ) ; <END_BUG> } } else if ( ifcPropertySingleValue . getName ( ) . equals ( "Thermal<seq2seq4repair_space>mass" ) ) { if ( ( ifcPropertySingleValue . getNominalValue ( ) ) instanceof IfcReal ) { IfcReal ifcReal = ( ( IfcReal ) ( ifcPropertySingleValue . getNominalValue ( ) ) ) ; specificHeat = ifcReal . getWrappedValue ( ) ; } } } } } } } } OsmMaterial osmMaterial = new OsmMaterial ( ( name + "_Material" ) , roughness , thickness , conductivity , 0 , specificHeat ) ; List < String > osmMaterialList = new ArrayList < String > ( ) ; osmMaterialList . add ( osmMaterial . getHandle ( ) ) ; OsmConstruction osmConstruction = new OsmConstruction ( name , "" , osmMaterialList ) ; osmSurface . setConstructionName ( osmConstruction . getHandle ( ) ) ; windowOrDoorConstructionMap . add ( osmConstruction ) ; materialList . add ( osmMaterial ) ; for ( OsmPoint osmPoint : spaceBoundaryPointList ) { osmSurface . addOsmPoint ( osmPoint ) ; allOsmPoints . add ( osmPoint ) ; } osmSpace . addSurface ( osmSurface ) ; } else { osmSpace . setContainsUnsolvedSurface ( true ) ; System . err . println ( "Error:<seq2seq4repair_space>unparsed<seq2seq4repair_space>geometry<seq2seq4repair_space>representation<seq2seq4repair_space>of<seq2seq4repair_space>roof!" ) ; } } else if ( ifcElement instanceof IfcWindow ) { if ( isGeometrySolved ) { IfcWindow ifcWindow = ( ( IfcWindow ) ( ifcElement ) ) ; OsmSubSurface osmSubSurface = new OsmSubSurface ( ) ; UUID uuid = UUID . randomUUID ( ) ; osmSubSurface . setUuid ( uuid . toString ( ) ) ;

Fix:
roughness = "" ;