tmf: Bug 489971: Premature processing of payload in custom parser
authorPatrick Tasse <patrick.tasse@gmail.com>
Fri, 18 Mar 2016 20:40:34 +0000 (16:40 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Tue, 22 Mar 2016 14:19:15 +0000 (10:19 -0400)
Change-Id: Ifc49df1f2a40171bf285d600244350fb5da4e1a5
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/68817
Reviewed-by: Hudson CI
Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/parsers/custom/CustomTxtIndexTest.java
tmf/org.eclipse.tracecompass.tmf.core.tests/testfiles/txt/testTxtDefinition.xml
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/parsers/custom/CustomEvent.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/parsers/custom/CustomTxtTrace.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/parsers/custom/CustomXmlTrace.java

index ae924283563ae30fe741a6198d51ea6a0ffd70ef..5bcdba1b0dcc3512122bd780a66e0f4743bcded1 100644 (file)
@@ -57,6 +57,10 @@ public class CustomTxtIndexTest extends AbstractCustomTraceIndexTest {
                 SimpleDateFormat f = new SimpleDateFormat(TIMESTAMP_FORMAT);
                 String eventStr = f.format(new Date(i)) + " hello world\n";
                 writer.write(eventStr);
+                int extra = i % 3;
+                for (int j = 0; j < extra; j++) {
+                    writer.write("extra line\n");
+                }
             }
         }
 
index ee2f9cbd73eda54feabc4f3913351f5ed59f99da..b2af6b4b8b54a0ccd2a9810b7857fd780d0b4a22 100644 (file)
@@ -7,6 +7,11 @@
 <RegEx>(\S*\s\S*) (.*\S)</RegEx>
 <InputData action="0" format="dd/MM/yyyy HH:mm:ss:SSS" name="Time Stamp"/>
 <InputData action="0" format="" name="Message"/>
+<InputLine>
+<Cardinality max="2147483647" min="0"/>
+<RegEx>(.*\S)</RegEx>
+<InputData action="2" name="Message"/>
+</InputLine>
 </InputLine>
 <OutputColumn name="Time Stamp"/>
 <OutputColumn name="Message"/>
index e06481fcb791b203fc2f40e7bc1d22e962772510..6d55a9664a6d1865980cd29f609a6d8d2441a97f 100644 (file)
@@ -172,6 +172,18 @@ public class CustomEvent extends TmfEvent {
         customEventContent = content;
     }
 
+    /**
+     * Get this event's content value.
+     * <p>
+     * This does not process the payload data and is therefore safe to call in
+     * the middle of parsing an event.
+     *
+     * @return the event's content value.
+     */
+    Object getContentValue() {
+        return customEventContent.getValue();
+    }
+
     /**
      * Set this event's type
      *
index 207408d78b16a140f3c5fedbc68231d1d1594a81..2cecbaa36eeb5093810a7ef11802273ea24bc15d 100644 (file)
@@ -380,7 +380,7 @@ public class CustomTxtTrace extends TmfTrace implements ITmfPersistentlyIndexabl
                                 }
                             }
                         }
-                        ((StringBuffer) event.getContent().getValue()).append("\n").append(line); //$NON-NLS-1$
+                        ((StringBuffer) event.getContentValue()).append("\n").append(line); //$NON-NLS-1$
                     }
                 }
                 rawPos = fFile.getFilePointer();
index 6dac5bcc3df9eea7d13278bb6821ca4422e39466..8af0cc739abd72bccb62aef67672ce3ac72b2dc2 100644 (file)
@@ -277,7 +277,7 @@ public class CustomXmlTrace extends TmfTrace implements ITmfPersistentlyIndexabl
             final Element element = parseElementBuffer(elementBuffer);
 
             event = extractEvent(element, fRecordInputElement);
-            ((StringBuffer) event.getContent().getValue()).append(elementBuffer);
+            ((StringBuffer) event.getContentValue()).append(elementBuffer);
 
             long rawPos = fFile.getFilePointer();
             String line = fFile.getNextLine();
This page took 0.051618 seconds and 5 git commands to generate.