|
36 | 36 | public class StartupHandler implements EventHandler {
|
37 | 37 | private static Logger logger = LoggerFactory.getLogger(StartupHandler.class);
|
38 | 38 |
|
39 |
| - private StringBuffer buffer; |
40 |
| - private boolean bufferStarted; |
| 39 | + private volatile StringBuffer buffer; |
41 | 40 |
|
42 | 41 | public static void openEMediplanImportDialog(String chunk, String selectedPatientId) {
|
43 | 42 | Medication medication = EMediplanServiceHolder.getService().createModelFromChunk(chunk);
|
@@ -106,28 +105,29 @@ public void handleEvent(Event event) {
|
106 | 105 | BarcodeScannerMessage b = (BarcodeScannerMessage) event.getProperty("org.eclipse.e4.data");
|
107 | 106 | if (hasMediplanHeader(b.getChunk())) {
|
108 | 107 | chunkBuffer(b);
|
109 |
| - } else if (bufferStarted) { |
| 108 | + } else if (buffer != null) { |
110 | 109 | chunkBuffer(b);
|
111 | 110 | }
|
112 | 111 | }
|
113 | 112 | }
|
114 | 113 | }
|
115 | 114 |
|
116 |
| - private void chunkBuffer(BarcodeScannerMessage message) { |
| 115 | + private synchronized void chunkBuffer(BarcodeScannerMessage message) { |
117 | 116 | if (buffer == null) {
|
| 117 | + LoggerFactory.getLogger(StartupHandler.class).info("Start emdiplan buffer"); //$NON-NLS-1$ |
118 | 118 | buffer = new StringBuffer();
|
119 | 119 | }
|
120 |
| - if (!bufferStarted) { |
121 |
| - bufferStarted = true; |
122 |
| - new Timer().schedule(new TimerTask() { |
123 |
| - @Override |
124 |
| - public void run() { |
| 120 | + buffer.append(message.getChunk()); |
| 121 | + new Timer().schedule(new TimerTask() { |
| 122 | + @Override |
| 123 | + public void run() { |
| 124 | + if (buffer != null) { |
| 125 | + LoggerFactory.getLogger(StartupHandler.class) |
| 126 | + .info("Import emdiplan buffer [" + buffer.length() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ |
125 | 127 | openEMediplanImportDialog(buffer.toString(), null);
|
126 |
| - bufferStarted = false; |
127 | 128 | buffer = null;
|
128 | 129 | }
|
129 |
| - }, 500); |
130 |
| - } |
131 |
| - buffer.append(message.getChunk()); |
| 130 | + } |
| 131 | + }, 500); |
132 | 132 | }
|
133 | 133 | }
|
0 commit comments