88import java .util .ArrayList ;
99import java .util .List ;
1010import java .util .UUID ;
11+ import java .util .regex .Matcher ;
12+ import java .util .regex .Pattern ;
1113
1214import javax .ws .rs .core .MediaType ;
1315import javax .ws .rs .core .MultivaluedMap ;
@@ -34,6 +36,8 @@ public class BuildImgCmd extends AbstrDockerCmd<BuildImgCmd, ClientResponse> {
3436
3537 private static final Logger LOGGER = LoggerFactory .getLogger (BuildImgCmd .class );
3638
39+ private static final Pattern ADD_PATTERN = Pattern .compile ("^ADD\\ s+(.*)\\ s+(.*)$" );
40+
3741 private File dockerFolder = null ;
3842 private InputStream tarInputStream = null ;
3943 private String tag ;
@@ -122,13 +126,13 @@ protected File buildDockerFolderTar() {
122126 filesToAdd .add (dockerFile );
123127
124128 for (String cmd : dockerFileContent ) {
125- if ( StringUtils . startsWithIgnoreCase (cmd .trim (), "ADD" )) {
126- String addArgs [] = StringUtils . split ( cmd , " \t " );
127- if (addArgs . length != 3 ) {
129+ final Matcher matcher = ADD_PATTERN . matcher (cmd .trim ());
130+ if ( matcher . find ()) {
131+ if (matcher . groupCount () != 2 ) {
128132 throw new DockerException (String .format ("Wrong format on line [%s]" , cmd ));
129133 }
130134
131- String resource = addArgs [ 1 ] ;
135+ String resource = matcher . group ( 1 ) ;
132136
133137 if (isFileResource (resource )) {
134138 File src = new File (resource );
0 commit comments