Process scanner works in first but is empty in second try. Java

guys, I have a problem. I try to connect the RFID-RC522 with my Raspberry pi using a combination of java and python.

If I call my RfidListener class with getText() it works fine but when I put it in a loop, the scanner will be empty after the first loop. In addition, the process then does not wait for the reader.read in the python file (therefore, the scanner might be empty).

I alredy tryed initializing the RfidListener obj before the loop and using the process.waitFor() function but nothing. Please help, I'm at the end of my Latin ;-)

Log:

Feb 13, 2018 12:42:16 AM piapplication.PiApplication main
SEVERE: outer Loop
Feb 13, 2018 12:42:28 AM piapplication.RfidListener readText
SEVERE: scanner not empty
Feb 13, 2018 12:42:28 AM piapplication.RfidListener readText
SEVERE: scanner not empty
Feb 13, 2018 12:42:28 AM piapplication.PiApplication main
INFO: Whats_up_with_this?
Feb 13, 2018 12:42:28 AM piapplication.PiApplication main
SEVERE: outer Loop
Feb 13, 2018 12:42:29 AM piapplication.PiApplication main
INFO: 
Feb 13, 2018 12:42:29 AM piapplication.PiApplication main
SEVERE: outer Loop
Feb 13, 2018 12:42:30 AM piapplication.PiApplication main
INFO: 
Feb 13, 2018 12:42:30 AM piapplication.PiApplication main
SEVERE: outer Loop
Feb 13, 2018 12:42:31 AM piapplication.PiApplication main
INFO: 

Java Code:

Main

public class PiApplication {

static final Logger log = Logger.getLogger(PiApplication.class.getName());

/**
 * @param args the command line arguments
 */
@SuppressWarnings({"SleepWhileInLoop", "ResultOfObjectAllocationIgnored"})
public static void main(String[] args) {
    new Interface("/home/pi/MFRC522-python/Read.py", "/home/pi/MFRC522-python/Write.py");
    String text = "";
    while (true) {

        Logger.getLogger(RfidListener.class.getName()).log(Level.SEVERE, "outer Loop");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
            Logger.getLogger(PiApplication.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
            text = new RfidListener().readText();
        } catch (IOException ex) {
            Logger.getLogger(PiApplication.class.getName()).log(Level.SEVERE, null, ex);
        }

        log.info(text);
    }

}

RfidListener

package piapplication;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

public class RfidListener {

    private String id;
    private StringBuilder text;

    public RfidListener() {
        text = new StringBuilder();
    }

public synchronized String readText() throws IOException {

    boolean tryAgain = true;
    while (tryAgain) {
        Interface.clear();
        boolean first = true;
        tryAgain = false;
        Process p = Runtime.getRuntime().exec("python " + Interface.getReadPath());
        try (Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(p.getInputStream())))) {

            while (scanner.hasNext()) {

                Logger.getLogger(RfidListener.class.getName()).log(Level.SEVERE, "scanner not empty");
                if (scanner.hasNext(".*AUTH.*")) {

                    Logger.getLogger(RfidListener.class.getName()).log(Level.SEVERE, "try Again");
                    tryAgain = true;
                }

                if (first) {
                    id = scanner.next();
                    first = false;
                } else {
                    text.append(scanner.next());
                }

            }
            scanner.reset();
            p.destroy();
        }
    }
    return text.toString();//text.toString();
}

public boolean tagInRange() throws IOException {
    Interface.clear();
    while (true) {
        Process p = Runtime.getRuntime().exec("python " + Interface.getReadPath());
        BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
        Scanner scanner = new Scanner(in);
        if (!scanner.hasNext(".*AUTH:.*")) {
            if (scanner.hasNext()) {
                return true;
            }
        }
        in.close();
    }
}

}

Python

Reader

#!/usr/bin/env python

import RPi.GPIO as GPIO
import SimpleMFRC522

reader = SimpleMFRC522.SimpleMFRC522()

try:
        id, text = reader.read()
        print(id)
        print(text)
finally:
        GPIO.cleanup()