2011-09-27 5 views
0

왜 이런 식으로 동작하는지 궁금합니다.자바 다중 행 문자열이 합리적 기능 테스트에서 이상하게 작동합니다.

eclipse IDE와 통합 된 IBM RFT 6.x 버전. 다른 프로그램에서 텍스트 출력을 얻으려면 다음 행을 실행합니다. 이 outputText(). getProperty에 (". 값")에 의해 캡처

String Text = ""; 
String Text_Value = ""; 

Text = (String) outputText().getProperty(".value"); 
Text_Value = (String) outputText().getProperty(".value"); 

원래의 출력은

2011-09-27 19:11:05.996 [Process ID:0x00000000] show cpup sc11 
************************************************************ 
CPU0 Usage     : 3.2% 
CPU1 Usage     : 6.29% 
Smooth CPU Usage    : 4.65% 
Real CPU Usage     : 4.65% 
------------------------------------------------------------ 
CPU Usage Sample Rate   : 2(s) 
CPU OverLoad Level[1]   : 10% 
CPU OverLoad Level[2]   : 20% 
CPU OverLoad Level[3]   : 90% 
CPU OverLoad Level[4]   : 95% 
CPU Peak Usage     : 99.88% 
CPU Peak Usage Time   : 2008-10-31 20:12:54 
------------------------------------------------------------ 
The History Real CPU Usage  : 
No %CPU %CPU %CPU %CPU %CPU %CPU %CPU %CPU 
0  3.87 4.76 4.72 4.76 4.76 4.69 4.65 4.65 
1  4.69 4.65 
************************************************************ 

하고 이상한 것은 여기에 발생합니다. 나는 변수 문자열을 가지고

Text = "\r\n2011-09-27 19:11:05.996 [Process ID:0x00000000] show cpup sc11" 

Text_Value = "\r\n2011-09-27 19:11:05.996 [Process ID:0x00000000] show cpup  sc11\r\n************************************************************\r\n.....4.69 4.65 
      \r\n************************************************************" 

TEXT_VALUE는 정확히 내가 원하는하지만 텍스트는 항상 "쇼 cpup의 SC11"여기에 잘릴 수있다.

트윈 라인은 동일한 일을 할 것으로 예상됩니다.

내가 프로그램의 다른 출력을 시도 할 때. 이것은 발생하지 않을 것입니다. 두 변수는 같습니다.

+0

이 질문에 답할 수있는 코드를 게시해야합니다. –

답변

0

아마도 동기화 문제 일 수 있습니다. Text은 컨트롤이 채워지지 않았기 때문에 잘립니다. Text_Value 행이 실행될 때까지 outputText() 객체는 완전히 채워 지므로 Text_Value은 잘리지 않습니다. Text 행 이전에 sleep(10) 명령을 삽입하여이를 증명할 수 있습니다. outputText() 컨트롤이 완전히 채워지는 시간만큼 임의의 초 수만큼 값 10을 변경합니다.

+0

감사합니다. Tom. outputText() 약간 느립니다. 수면 (0.1)은 여전히 ​​실패하지만 수면 (0.3)이 문제를 해결할 수 있습니다. 고맙습니다. – oyss