BufferedReader loop when reading output from Runtime Process

While trying to fix my process handling and get a proper "did it work" response from the Process, I have introduced a bug. I pulled the information for using buffered readers to read the Error and Input streams from another post on here that, of course, I can't find immediately.

When this portion of the code is executed the code gets stuck in a loop repeating "ERROR iMCAlarmParse.AlarmToOVO: null^M" in the log. I would expect readLine to not read "null" when there was no error but to tell while to carry on, however it's currently a wayward son.

EDIT: When running the opcmsg command from CLI, and it works correctly, it simply returns a new prompt. Nothing to indicate success but if it errors, it will display some vague error.

Many thanks in advance.

            Runtime rt = Runtime.getRuntime();
            // Construct the command line 
            String msgCmd = "opcmsg ...";  //Truncated as it really dosn't matter what the CLI optoins are.
            log4j.debug(msgCmd);

            // Execute the CLI call to opcmsg
            Process pr = rt.exec(msgCmd);

            BufferedReader brErr = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
            BufferedReader brOut = new BufferedReader(new InputStreamReader(pr.getInputStream()));
            String strErrLine;
            String strOutLine;

            while ((strErrLine = brErr.readLine()) != "") {
      // This is where the error noted above gets stuck
                log4j.error(strErrLine);
            }
            while ((strOutLine = brOut.readLine()) != "") {
                log4j.debug(strOutLine);
            }
            if(pr.waitFor(5, TimeUnit.SECONDS)) {
                if (pr.exitValue() != 0) {
                    log4j.error("Abnormal opcmsg termination for alarm ID: " + mAlarm.get("id"));
                    boolCmdResult = false;
                    return;
                } else {
                    log4j.debug("Normal opcmsg execution for alarm ID: " + mAlarm.get("id"));
                    boolCmdResult = true;
                    return;
                }
            } else {
                pr.destroy();
                log4j.error("opcmsg failed to respond within 5 seconds executing alarm ID: " + mAlarm.get("id"));
            }