Age | Commit message (Collapse) | Author |
|
* x0id/jinterface_generic_match:
jinterface: match/bind added to OtpErlangObject
fix typo error from recent merge
OTP-12691
|
|
Adding these two methods to the OtpErlangObject abstract class makes possible
implementing of pattern matching and variable binding for all types of Erlang
terms. Particular implementations may vary and include additional classes to
define Variable placeholder objects and Bindings objects. Also Parser class
may be added to facilitate creating complex patterns and terms.
The purpose of this commit is to provide low level interface base methods
sufficient for variety of higher level pattern matching/variable binding
implementations.
OtpErlangMap class is re-designed for efficiency (it is based on HashMap now).
All changes are backward-compatible. Detailed test cases implemented.
|
|
Transport factory basic implementation added. This makes possible
creating connections between nodes using ssh channels for example.
Default transport factory based on standart Socket/ServerSocket
classes is provided. Modifications are backward compatible.
|
|
* maint:
Add .appup file
|
|
|
|
|
|
* vladdu/jinterface_code_cleanup/OTP-12211:
fix warning: Socket's InputStream not closed
silence 'potential resource leak' warnings
don't warn about some unused fields/variables
handle warnings about potential null pointers
keep all method parameters final
renamed method parameters hiding fields
add 'break' statements to make compiler happy
remove warnings from OtpMD5
rename OtpNode.flags to connFlags
rename OtpNode.Acceptor.port to acceptorPort
rename field 'self' to 'localNode'
mark deprecated unused private constructor
simplify 'if' statements
remove warnings: @Override, switch fall-through
make serialVersionUID fields private
remove unnecessary syntax (casts)
remove unused variables
removed unnecessary semicolons, imports, labels
remove unnecessary null pointer checks
remove unnecessary Cloneable and Serializable
|
|
* vladdu/jinterface_findbugs/OTP-12210:
OtpErlangList.clone must not return null
handle empty .erlang.cookie without crashing
|
|
Conflicts:
OTP_VERSION
lib/ssh/test/ssh_connection_SUITE.erl
|
|
|
|
|
|
|
|
The warning is issued if we assign the stream to a variable. The stream
is getting closed together with the socket.
|
|
OtpInputStream and OtoOutputStream don't need closing (they are
ByteArray*Streams)
|
|
|
|
|
|
|
|
|
|
was colliding to AbstractNode.flags
|
|
was colliding with OtpLocalNode.port
|
|
field 'OtpLocalNode self' was colliding with 'OtpSelf self' in
OtpConnection
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OTP-12121
* vladdu/jinterface_fun_equals:
jinterface: fix bug in equality for OtpErlangFun
|
|
Arrays (here: md5 and freeVars) must not be compared with equals, which
is broken.
|
|
|
|
OTP-12050
* nox/fix-javadoc:
Fix a few javadoc errors
|
|
Reported-by: Boris Mühmer
|
|
Arrays have no meaningful toString method, but one must use
Arrays.toString instead. The meaningless value would look for example
like "[C@16f0472", instead of "[2,4]".
|
|
This is just a preparation to allow detection of older nodes
that do not understand maps (R16 and older).
|
|
to be: 116,Arity, K1,V1,K2,V2,...,Kn,Vn
instead of: 116,Arity, K1,K2,...,Kn, V1,V2,....,Vn
We think this will be better for future internal map structures
like HAMT. Would be bad if we need to iterate twice over HAMT
in term_to_binary, one for keys and one for values.
|
|
The API and implementation are simplistic, like for lists and tuples,
using arrays and without any connection to java.util.Map.
|
|
|
|
* nk/jinterface_dont_compress_if_size_increased/OTP-10822:
jinterface, OtpOutputStream: add a write_compressed(object, level) method
jinterface: fix a memory leak
jinterface: new limited OutputStream implementation without the need to resize
jinterface: don't return compressed external term if bigger than uncompressed
jinterface: don't compress small erlang terms < 5 bytes
jinterface, OtpOutputStream: properly override the three write() methods to ensure our growth strategy
jinterface: fix typo in error message if encoding fails
jinterface: don't need another FilterOutputStream wrapper
|
|
* vd/jinterface_windows_cookie/OTP-10821:
jinterface: fix finding cookie file on windows
|
|
Now that we use an own deflater, we can also allow the user to specify the compression level as in Erlang's term_to_binary/2.
|
|
after the first try to compress the value with a fixed buffer size, the deflater must be closed so that memory can be (instantly) reused
|
|
(saves memory re-allocations)
|
|
Now, OtpOutputStream#write_compressed() uses the same mechanism as erts_term_to_binary() in external.c: it tries to compress the given term into a buffer of the size of the uncompressed term and if this is not possible, i.e. the compression plus headers is bigger, it uses the uncompressed external term format instead.
|
|
Compression always has at least 5 bytes (the compressed tag + original size) so we can't get a smaller external term if the original term is already smaller than 5 bytes.
|
|
ensure our growth strategy
Previously, if code called e.g. write(byte[] b, int off, int len), the growth strategy of the parent class ByteArrayOutputStream was used.
|
|
|