Buggy code:
public final class ServerGroupDeploymentElement extends AbstractModelElement < ServerGroupDeploymentElement > implements ServiceActivator { private static final long serialVersionUID = - 7282640684801436543L ; private static final Logger log = Logger . getLogger ( "org.jboss.as.model" ) ; private final DeploymentUnitKey key ; private boolean start ; public ServerGroupDeploymentElement ( final Location location , final String deploymentName , final byte [ ] deploymentHash , final boolean start ) { } public ServerGroupDeploymentElement ( XMLExtendedStreamReader reader ) throws XMLStreamException { } public DeploymentUnitKey getKey ( ) { } public String getName ( ) { } public byte [ ] getSha1Hash ( ) { } public boolean isStart ( ) { } void setStart ( boolean start ) { } public long elementHash ( ) { } protected void appendDifference ( final Collection < AbstractModelUpdate < ServerGroupDeploymentElement > > target , final ServerGroupDeploymentElement other ) { } protected Class < ServerGroupDeploymentElement > getElementClass ( ) { } public void writeContent ( final XMLExtendedStreamWriter streamWriter ) throws XMLStreamException { } @ Override public void activate ( final ServiceActivatorContext context ) { <START_BUG> final String deploymentName = ( ( key . getName ( ) . replace ( '.' , '_' ) ) + '_' ) + ( key . getSha1HashAsHexString ( ) ) ; <END_BUG> ServerGroupDeploymentElement . log . info ( ( "Activating<seq2seq4repair_space>server<seq2seq4repair_space>group<seq2seq4repair_space>deployment:<seq2seq4repair_space>" + deploymentName ) ) ; final VirtualFile deploymentRoot = VFS . getChild ( getFullyQualifiedDeploymentPath ( key . getName ( ) ) ) ; if ( ! ( deploymentRoot . exists ( ) ) ) throw new RuntimeException ( ( "Deployment<seq2seq4repair_space>root<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>exist." + deploymentRoot ) ) ; Closeable handle = null ; try { try { if ( deploymentRoot . isFile ( ) ) handle = VFS . mountZip ( deploymentRoot , deploymentRoot , TempFileProviderService . provider ( ) ) ; } catch ( IOException e ) { throw new RuntimeException ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>mount<seq2seq4repair_space>deployment<seq2seq4repair_space>archive" , e ) ; } final BatchBuilder batchBuilder = context . getBatchBuilder ( ) ; final ServiceName deploymentServiceName = SERVICE_NAME . append ( deploymentName ) ; batchBuilder . addService ( deploymentServiceName , new DeploymentService ( ) ) ; final BatchBuilder deploymentSubBatch = batchBuilder . subBatchBuilder ( ) ; deploymentSubBatch . addDependency ( deploymentServiceName ) ; final DeploymentUnitContextImpl deploymentUnitContext = new DeploymentUnitContextImpl ( deploymentName , deploymentSubBatch ) ; attachVirtualFile ( deploymentUnitContext , deploymentRoot ) ; deploymentUnitContext . putAttachment ( ATTACHMENT_KEY , new MountHandle ( handle ) ) ; final DeploymentChainProvider deploymentChainProvider = DeploymentChainProvider . INSTANCE ; final DeploymentChain deploymentChain = deploymentChainProvider . determineDeploymentChain ( deploymentRoot ) ; if ( deploymentChain == null ) throw new RuntimeException ( ( "Failed<seq2seq4repair_space>determine<seq2seq4repair_space>the<seq2seq4repair_space>deployment<seq2seq4repair_space>chain<seq2seq4repair_space>for<seq2seq4repair_space>deployment<seq2seq4repair_space>root:<seq2seq4repair_space>" + deploymentRoot ) ) ; try { deploymentChain . processDeployment ( deploymentUnitContext ) ; } catch ( DeploymentUnitProcessingException e ) { throw new RuntimeException ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>process<seq2seq4repair_space>deployment<seq2seq4repair_space>chain." , e ) ; } } catch ( Throwable t ) { VFSUtils . safeClose ( handle ) ; throw new RuntimeException ( ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>activate<seq2seq4repair_space>deployment<seq2seq4repair_space>unit<seq2seq4repair_space>" + ( key . getName ( ) ) ) , t ) ; } } private String getFullyQualifiedDeploymentPath ( final String fileName ) { } }

Fix:
final String deploymentName = ( ( key . getName ( ) ) + ":" ) + ( key . getSha1HashAsHexString ( ) ) ;