- in the particular case of creating a new bitbake project by cloning, the 
whole process is started from the context of the project wizard which is in 
charge of updating the monitor of the command
        - since the transfer is redirected to the RemoteHelper, somehow along 
the way the reference of the wizard monitor is lost and the messages are not 
displayed correctly
        - in order to fix this, the parsing is done locally inside the 
appropiate context & using a customization of the abstract OutputProcessor

Signed-off-by: Ioana Grigoropol <ioanax.grigoro...@intel.com>
---
 .../bc/remote/utils/YoctoRunnableWithProgress.java |   31 +++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java
 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java
index 7eb7172..4005554 100644
--- 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java
+++ 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoRunnableWithProgress.java
@@ -80,7 +80,36 @@ public class YoctoRunnableWithProgress implements 
IRunnableWithProgress {
                        e.printStackTrace();
                }
        }
+       class YoctoRunnableOutputProcessor extends OutputProcessor{
 
+               public YoctoRunnableOutputProcessor(IProgressMonitor monitor,
+                               IHostShell hostShell, CommandResponseHandler 
cmdHandler,
+                               String task) {
+                       super(monitor, hostShell, cmdHandler, task);
+               }
+               @Override
+               protected boolean isErrChStop(char ch) {
+                       return (ch == '\n' || ch == '\r');
+               }
+
+               @Override
+               protected boolean isOutChStop(char ch) {
+                       return (ch == '\n');
+               }
+
+               @Override
+               protected void processOutputBufferLine(char ch, String str) {
+                       processBuffer.addOutputLine(str);
+               }
+
+               @Override
+               protected void processErrorBufferLine(char ch, String str) {
+                       processBuffer.addOutputLine(str);
+                       if (ch == '\r')
+                               reportProgress(str);
+               }
+
+       }
 
        class YoctoThread implements Runnable{
                private IHost connection;
@@ -98,7 +127,7 @@ public class YoctoRunnableWithProgress implements 
IRunnableWithProgress {
                public void run() {
                        try {
                                hostShell = 
RemoteHelper.runCommandRemote(this.connection, command, monitor);
-                               
command.setProcessBuffer(RemoteHelper.processOutput(monitor, hostShell, 
cmdHandler));
+                               command.setProcessBuffer(new 
YoctoRunnableOutputProcessor(monitor, hostShell, cmdHandler, 
taskName).processOutput());
                        } catch (CoreException e) {
                                e.printStackTrace();
                        } catch (Exception e) {
-- 
1.7.9.5

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to