I've been looking around for a fix for hours and even tried other pieces of code but they all end up with the same problem.
Basically what I'm trying to do is load a WAV sound and play it every time the player picks up a coin.

Load Sound and return the clip:
Java Code:
private Clip loadSound(){
		Clip clip = null;
		try{
			//Load sound clip
			AudioInputStream stream = AudioSystem.getAudioInputStream(this.getClass().getResource("/res/coin.wav"));
			DataLine.Info Soundinfo = new DataLine.Info(Clip.class, stream.getFormat());
		    clip = (Clip) AudioSystem.getLine(Soundinfo);
		    clip.open(stream);
		}catch (Exception e){
			//return no sound
			return null;
		}
		//return sound
	    return clip;
	}
Java Code:
	private void playSound(Clip clip){
		//If a sound effect is loaded
		if (!(clip == null)){
			//If its running stop it
			if (clip.isRunning()){
				clip.stop();
			}
			//reset sound and play
			clip.setFramePosition(0);
			clip.start();
		}
	}

On Coin Pickup:
First Method:
Here I reload the whole sound from the file every time a coin is picked up. Works fine for about 30-40 times before the sound just stops playing at all.
Java Code:
sndPickup = loadSound();
sndPickup.start();
Second Method:
I preferred this way because I didn't have to reload the sound every time, however the sound only plays once (from the first coin that is picked up) and never again.
Java Code:
playSound(sndPickup);
The main problem is that the sound is not recurring and now I just want to faceplant my desk.
Thanks if you can help with this :)