# How to init myLongArray as array(java.lang.Long, \[myLongValue\])

**URL:** <https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922>\
**Category:** Ignition Early Access\
**Tags:** ignition80\
**Created:** [February 4, 2020, 8:29pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922 "2020-02-04T20:29:06Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ecujak](https://avatars.discourse-cdn.com/v4/letter/e/839c29/32.png) [@ecujak](https://forum.inductiveautomation.com/u/ecujak)\
**Post date:** [February 4, 2020, 8:29pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922/1 "2020-02-04T20:29:06Z")

</div>

If I read a value from OPC into newValue I get array(java.lang.Long, [1L])

oldQualifiedValue = system.opc.readValue(server, path)  
newValue = oldQualifiedValue.getValue()  
print str(newValue) gives me array(java.lang.Long, [1L])

someNumber = 1  
myValue = []  
myValue.append(long(someNumber))  
print str(myValue) gives me [1L]

How do initialize myLongArray as array(java.lang.Long, [myLongValue])

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 4, 2020, 8:57pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922/2 "2020-02-04T20:57:50Z")

</div>

It is poorly documented, but you need jython’s [jarray module](https://www.jython.org/jython-old-sites/archive/21/docs/jarray.html). Keep in mind that java arrays are not appendable–the jarray module lets you turn a list into a fixed-length java array.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 4, 2020, 8:59pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922/3 "2020-02-04T20:59:48Z")

</div>

FWIW, Jython is really good at auto-converting lists into java arrays for methods when its signature is unambiguous. That’s why jarray is rarely needed.

---

<div class="post-metadata">

**Author:** ![ecujak](https://avatars.discourse-cdn.com/v4/letter/e/839c29/32.png) [@ecujak](https://forum.inductiveautomation.com/u/ecujak)\
**Post date:** [February 5, 2020, 3:09pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922/4 "2020-02-05T15:09:16Z")

</div>

```auto
The jarray module exports two functions: 
   array(sequence, type) 
   zeros(length, type)

```

What readValue returned was array(type, sequence)

Also, how do I use this in the ignition scripting. I get the exception array not defined.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 5, 2020, 3:20pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922/5 "2020-02-05T15:20:04Z")

</div>

```auto
import jarray

arrayOfBytes = jarray.array([1,2,5,8,9,10], 'b')
print repr(arrayOfBytes)

```

---

<div class="post-metadata">

**Author:** ![anastasia.blinova](https://avatars.discourse-cdn.com/v4/letter/a/a698b9/32.png) [@anastasia.blinova](https://forum.inductiveautomation.com/u/anastasia.blinova)\
**Post date:** [February 26, 2021, 2:58pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922/6 "2021-02-26T14:58:00Z")

</div>

This seems to be what I need too.  
I have a base64 string that I decoded:

`message_bytes = base64.b64decode(base64_str)`

And made into a bytearray:

`bytes_array = list(bytearray(message_bytes))`

And then I wish to make it into a Java bytes array:

`jarray_version = jarray.array(bytes_array, "b")`

However I get error:  
OverflowError: value too large for byte

Do you know how to avoid this? Or an alternative way to turn bse64 str into Java byte array

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 26, 2021, 5:09pm UTC](https://forum.inductiveautomation.com/t/how-to-init-mylongarray-as-array-java-lang-long-mylongvalue/31922/7 "2021-02-26T17:09:32Z")

</div>

> [@anastasia.blinova](#):
>
> Do you know how to avoid this? Or an alternative way to turn bse64 str into Java byte array

```python
from com.inductiveautomation.ignition.common import Base64
bytes = Base64.decode(string)

```

No muss, no fuss.
