Java implementation incomplete?

86 views
Skip to first unread message

rytis.d...@gmail.com

unread,
Sep 30, 2014, 9:13:23 AM9/30/14
to the-blink...@googlegroups.com
Hello,

I am evaluating message serialization libraries for our project and "on paper" Blink seems to meet our requirements best (size of messages is very important to us). I was pretty much sold, but then I accidentally tried encoding a message larger than 16K and it failed ("Not implemented yet: large messages")! Most of our messages are very small but in some cases we need to transfer larger pieces of data in parts. This behaviour was unexpected because it does not meet the spec and is not mentioned anywhere. I'm glad I noticed this before we started using Blink in production. Are there any other major shortcomings of the Java implementation? It doesn't seem to be actively maintained anymore - can we expect improvements in the near future?

Thanks,
Rytis

Anders Furuhed

unread,
Sep 30, 2014, 9:35:10 AM9/30/14
to the-blink...@googlegroups.com, rytis.d...@gmail.com
Hi Rytis, happy to hear you want to use Blink.

The Java Blink implementation is actively used and the low rate of commits is simply a function of few change requests and our main focus being on the C++ side.
We are using C++ internally and that is where we are spending most efforts now, including making the source code ready for release.
David R will have a look at that limitation. It is unfortunate that you were close to running into a major issue due to that limitation and we should get that addressed.
Hopefully, it is going to be straight forward to fix the limitation. Please hold (for up to a day).

Cheers,
Anders

rytis.d...@gmail.com

unread,
Sep 30, 2014, 10:11:06 AM9/30/14
to the-blink...@googlegroups.com, rytis.d...@gmail.com
Thank you for your prompt reply, Anders. We will be waiting for the fix.

david.rosenborg

unread,
Oct 1, 2014, 10:50:07 AM10/1/14
to the-blink...@googlegroups.com, rytis.d...@gmail.com
Hi,

I've pushed a new version to github that solves this problem.

Cheers,

/David

rytis.d...@gmail.com

unread,
Oct 2, 2014, 7:19:28 AM10/2/14
to the-blink...@googlegroups.com, rytis.d...@gmail.com
Thank you!

Anders Furuhed

unread,
Oct 2, 2014, 7:44:10 AM10/2/14
to the-blink...@googlegroups.com, rytis.d...@gmail.com
Now that the issue is sorted, I have a fairly generic question/comment.
The pattern we use is to define messages that have a natural size boundary but with variable lengths within, and to use composition of messages to create something that is unbounded.
If you are performance sensitive, you may benefit from structuring your data into sequences of messages.

Anders

rytis.d...@gmail.com

unread,
Oct 3, 2014, 4:27:13 AM10/3/14
to the-blink...@googlegroups.com, rytis.d...@gmail.com
There's one more thing I noticed - jblink doesn't work on Android (tested on 4.2). Here's the exception:

java.lang.UnsupportedOperationException: can't load this type of class file
            at java.lang.VMClassLoader.defineClass(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:292)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:256)
            at com.pantor.blink.DynClassLoader.loadPrivileged(DynClassLoader.java:80)
            at com.pantor.blink.CompactWriterCompiler.createInstance(CompactWriterCompiler.java:782)
            at com.pantor.blink.CompactWriterCompiler.compile(CompactWriterCompiler.java:290)
            at com.pantor.blink.CompactWriterCompiler.getEncoder(CompactWriterCompiler.java:67)
            at com.pantor.blink.CompactWriterCompiler.compile(CompactWriterCompiler.java:85)
            at com.pantor.blink.CompactWriterCompiler.getEncoder(CompactWriterCompiler.java:58)
            at com.pantor.blink.CompactWriter.writeObject(CompactWriter.java:577)
            at com.pantor.blink.CompactWriter.write(CompactWriter.java:96)

Do you know about this issue? Any plans to support Android?

david.rosenborg

unread,
Oct 3, 2014, 5:20:03 AM10/3/14
to the-blink...@googlegroups.com, rytis.d...@gmail.com
Currently we have no active plans of supporting Android. You are however very welcome to suggest any specific changes that can make it work. The best way then is to issue a pull request on github, but otherwise you can just post your findings in this forum.

Cheers
/David
Reply all
Reply to author
Forward
0 new messages