question

Upvotes
Accepted
1 1 0 0

RFAJ 8.2.0.L1 RbcsCharset implementation broken?

Hi all,

we are experiencing IllegalStateException from the RBCS decoding when switched to the latest RFAJ 8.2.0.L1. We have been able to identify it as a problem coming from the new RbcsCharset implementation which returns shared charset decoder instead of creating a new instance. At first the charset decoder is not thread safe and cannot be shared. At second the way the shared charset decoder is created and shared breaks the memory model of Java (no volatile, no synchronization, just a free style).

We find the new RbcsCharset implementation broken, or?

Regards,
Michal

2020-12-03 11:35:12,968 [SessionANY.2 event handler] ERROR reuters.MMReutersRSSLConsumerProcess - Internal Reuters event queue error
java.lang.IllegalStateException: Current state = RESET, new state = FLUSHED
	at java.nio.charset.CharsetDecoder.throwIllegalStateException(CharsetDecoder.java:996) ~[?:?]
	at java.nio.charset.CharsetDecoder.flush(CharsetDecoder.java:679) ~[?:?]
	at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:213) ~[?:?]
	at java.lang.StringCoding.decode(StringCoding.java:252) ~[?:?]
	at java.lang.String.(String.java:484) ~[?:?]
	at com.reuters.rfa.internal.rwf.RwfUtil.createRBCS(Unknown Source) ~[rfa-8.2.0.L1.jar:8.2.0.L1.all]
	at com.reuters.rfa.internal.rwf.RwfDataBuffer.toString(Unknown Source) ~[rfa-8.2.0.L1.jar:8.2.0.L1.all]
	at com.reuters.rfa.internal.rwf.RwfStateReadOnly.getText(Unknown Source) ~[rfa-8.2.0.L1.jar:8.2.0.L1.all]
	at com.reuters.rfa.internal.rwf.RwfStateReadOnly.toString(Unknown Source) ~[rfa-8.2.0.L1.jar:8.2.0.L1.all]
	at com.cbksec.reuters.kit.omm.consumer.RKLoginItem.processEvent(RKLoginItem.java:239) ~[reuters-kit-4.6-20201203.085530-5.jar:4.6-SNAPSHOT / 2020-12-03 09:55:25 CET]
class RbcsCharset extends Charset {
  private CharsetDecoder _rbcsDecoder;

  public RbcsCharset() {
    super("RBCS", (String[])null);
  }

  public CharsetDecoder newDecoder() {
    if (this._rbcsDecoder == null) {
      this._rbcsDecoder = new RbcsCharsetDecoder(this);
      return this._rbcsDecoder;
    } else {
      this._rbcsDecoder.reset();
      return this._rbcsDecoder;
    }
  }
treprfarfa-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@michal.frajt-ext

Can you please open the API support case via Contact Premium Support form? So API support team can investigate the issue further. Apologize for this inconvenience.

submitquery.png (131.9 KiB)

The case 09454887 is created to investigate this issue.

The development team is working on this issue.

1 Answer

· Write an Answer
Upvotes
Accepted
78.8k 250 52 74

This issue has been fixed in RFA Java 8.2.0.L2.

---------------------------------------
rfaj8.2.0.L2.all
---------------------------------------
RFA-580: Code fix for RbcsCharset
(CaseId: 09454887)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.