This:
OrigArray = new String[size+1];
OrigArray = (String[])tempArray.clone();
is essentially equivalent to just this:
OrigArray = (String[])tempArray.clone();
in that the second assignment completely supersedes the first. OrigArray will end up having the same size as tempArray, and therefore the same size that it originally had.
If you want to copy elements into an existing array, you have to either write a loop, or else use java.lang.System.arrayCopy(...) which handles the loop for you; but calling clone() on an array will always create a new array, so will not help.