• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
2

How to fix the arraycopy out of bound error

Participant ,
Jul 23, 2024 Jul 23, 2024

Copy link to clipboard

Copied

Hello,

has anyone experienced this error before?

We are getting this error after we patched the Oracle server to 19.23 -> 19.24. In both Coldfusion 2021u12 (java 11.0.7) and 2023u8 (java 17.0.11) in the datasources with "Oracle" client we get this error in CFadmin:

 

Connection verification failed for data source: DATASOURCE_A
java.sql.SQLException: [DataDirect][Oracle JDBC Driver]arraycopy: destination index -1 out of bounds for byte[128]

 

The exceptions.log show more details:

 

"Error","http-nio-8500-exec-9","07/23/24","09:36:08","user1","[DataDirect][Oracle JDBC Driver]arraycopy: destination index -1 out of bounds for byte[128]"
java.sql.SQLException: [DataDirect][Oracle JDBC Driver]arraycopy: destination index -1 out of bounds for byte[128]
at macromedia.jdbc.oracle.base.BaseExceptions.b(|Oracle|6.0.0.1051|:1102)
at macromedia.jdbc.oracle.base.BaseExceptions.a(|Oracle|6.0.0.1051|:976)
at macromedia.jdbc.oracle.base.BaseExceptions.b(|Oracle|6.0.0.1051|:1128)
at macromedia.jdbc.oracle.base.BaseExceptions.b(|Oracle|6.0.0.1051|:796)
at macromedia.jdbc.oracle.OracleImplConnection.open(|Oracle|6.0.0.1051|:2602)
at macromedia.jdbc.oracle.base.BaseConnection.c(|Oracle|6.0.0.1051|:5063)
at macromedia.jdbc.oracle.base.BaseConnection.dQ(|Oracle|6.0.0.1051|:1539)
at macromedia.jdbc.oracle.base.BaseConnection.i(|Oracle|6.0.0.1051|:1461)
at macromedia.jdbc.oracle.base.BaseConnection.a(|Oracle|6.0.0.1051|:989)
at macromedia.jdbc.oracle.base.BaseDriver.connect(|Oracle|6.0.0.1051|:331)
at macromedia.jdbc.MacromediaDriver.connect(MacromediaDriver.java:256)
at coldfusion.server.j2ee.sql.pool.JDBCPool.createPhysicalConnection(JDBCPool.java:667)
at coldfusion.server.j2ee.sql.pool.ConnectionRunner$RunnableConnection.run(ConnectionRunner.java:67)
at java.base/java.lang.Thread.run(Thread.java:842)

 

Thanks

 

 

 

Views

4.5K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Adobe Employee , Aug 23, 2024 Aug 23, 2024

Hi All,

 

We have a fix available to address this issue. Please contact the support team at cf.install@adobe.com for the fix. 

 

Thanks,

Vikram

 

Votes

Translate

Translate
Community Expert ,
Jul 23, 2024 Jul 23, 2024

Copy link to clipboard

Copied

It looks like Oracle added a new feature that your version of DataDirect doesn't support! I see two things you could do.

 

1. File a bug report with Adobe (who bundles DataDirect for Oracle with CF Enterprise). That will probably take a while to resolve, so you may want to back down your Oracle minor version by one if that's possible.

 

2. Use Oracle's own JDBC drivers instead of DataDirect for Oracle. As an Oracle customer you should be able to download them for free. You'd have to register them as "Other" in the CF Administrator. I think they're located here:

 

https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html

 

The second option will likely be faster than the first.

 

Dave Watts, Eidolon LLC

Dave Watts, Eidolon LLC

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jul 23, 2024 Jul 23, 2024

Copy link to clipboard

Copied

Thanks for the information.

I think we'll have to go with those options for now.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jul 24, 2024 Jul 24, 2024

Copy link to clipboard

Copied

Dave,

 

I tried to submit the bug but I'm getting this error: "Bug Submission Failed" without any explanation why it failed. I filled in all the fields. Do you know if I need "bug reporting" permissions or is it something else? I just wondering if you experience this issue?

dejank52055655_0-1721844970052.png

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jul 24, 2024 Jul 24, 2024

Copy link to clipboard

Copied

Never mind, its must have been networking issues on my desktop. I got the bug submitted succesfully.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jul 24, 2024 Jul 24, 2024

Copy link to clipboard

Copied

I usually get that "Bug Submission Failed" when I wait too long before pressing the submit button. When I think that submitting a ticket might take too long, I do the following. 

 

I open Tracker in two separate browser tabs. While composing the ticket in one tab, I intermittently press F5 on the other tab to refresh that page. That seems to keep the session alive.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jul 24, 2024 Jul 24, 2024

Copy link to clipboard

Copied

Oh, nice, good tip. Thank you!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 13, 2024 Aug 13, 2024

Copy link to clipboard

Copied

For those following along from the top down, please note that Dejan did in fact create a ticket that day he wrote of the concern here. It's at https://tracker.adobe.com/#/view/CF-4222965

 

Folks wanting to see Adobe ttry to address the problem should add a vote there. Or see the option discussed there (or in Simon's comment here) on adding a new cf dsn using an "other" driver obtained directly from oracle. 


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jul 25, 2024 Jul 25, 2024

Copy link to clipboard

Copied

You suggest that you had successfully used ColdFusion with Oracle v19.23.. The error shows that ColdFusion is not able to connect to Oracle v19.24. I can guess one reason why.

Between v19.23 and v19.24, the connection details required by the Oracle database might have changed.

 

Oracle's documentation shows that the Oracle 19.24 patch was released only last week. It is too early for the ColdFusion Team to respond to that. Furthermore, the patch seems to be extensive, and even includes a patch for Windows. Some of the vulnerabilities identified in the previous version (v19.23) involve the network. Therefore, the 19.24 patch might involve a change in how clients connect to the Oracle database.

 

Adobe's ColdFusion team will undoubtedly assess the patch. But, as Dave has said, that could take a while. In the meantime, your software and database teams should study the Oracle 19.24 patch documentation. You just might find the tweak that would enable ColdFusion to connect to Oracle v19.24.

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jul 30, 2024 Jul 30, 2024

Copy link to clipboard

Copied

Greetigs,

We experienced the same issue with connection to Oracle DB after Oracle update to version Version 19.24.0.0.0.

It is nasty intermitten error.  I managed to use Oracle JDBC driver ojdbc11.jar established as Other datasource connection in CF 2023.

That resolved the issue.  Not sure if  Oracle driver ojdbc11.jar is certified with CF 2023 and not cause other issues. 

Please post  any updates by Adobe on the issue on this thread when available.

 

Regards,

Simon Litvak

UC Berkeley

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 13, 2024 Aug 13, 2024

Copy link to clipboard

Copied

Hello, we have the same problem. Will there be a patch? The Oracle update is a critical update package and should be installed soon. I would be grateful for any information.
Regards Kalle

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 13, 2024 Aug 13, 2024

Copy link to clipboard

Copied

There will probably be a patch, but (a) this isn't an official Adobe product support channel so it's unlikely you'll find out when the DataDirect patch will be released, and (b) you can probably avoid this by switching to the vendor's own JDBC driver. It's not ideal, but it should work.

 

Dave Watts, Eidolon LLC 

Dave Watts, Eidolon LLC

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 13, 2024 Aug 13, 2024

Copy link to clipboard

Copied

Following on Dave's observation, interested folks wanting Adobe to implement a solution (or get one from DataDirect) should add a vote to the bug that dejan above created:

 

https://tracker.adobe.com/#/view/CF-4222965

 

There also, Dejan (like Simon here) elaborated on the alternative Dave has mentioned of creating an alternate cf datasource using the "other" driver approach. 


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Aug 13, 2024 Aug 13, 2024

Copy link to clipboard

Copied

Thanks Charlie, I just realized I did not share the bug info, my appologies to everyone and thanks for sharing it with folks.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Aug 13, 2024 Aug 13, 2024

Copy link to clipboard

Copied

I'm having the same issue. Voted on the Adobe Tracker. I've used the "Other" datasource for a long time, and this just came up on our DEV instance so far (luckily). We are on Oracle 19C and Coldfusion 2021 Enterprise currently. 

 

I updated the ojdbc8.jar under /cfusion/lib. I also tried the ojdbc10.jar. Still the same issue.

 

I'm wondering if I'm entering the connection information correctly for these correctly? It always worked, so I didn't question it much, until now. Should I not be putting in Macromedia in here, as it's really just the Oracle driver. Just not sure what to change it to.

 

Drive class: "macromedia.jdbc.MacromediaDriver"

Driver name: "Macromedia Oracle Driver"

JDBC URL: jdbc:macromedia:oracle://[server]:1521;SERVICENAME=[servicename];jdbcbehavior=0;EncryptionLevel=required;EncryptionTypes=(AES256, AES128, 3DES168);DataIntegrityLevel=required;DataIntegrityTypes=(SHA1);MaxPooledStatements=500;

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Aug 13, 2024 Aug 13, 2024

Copy link to clipboard

Copied

I tested a little more. Found this somewhere online where I changed the 

driver class to "oracle.jdbc.OracleDriver"

driver name to "ojdbc10.jar"

and it works now. 

 

I don't know if macromedia in the jdbc url is still wrong? I tried to remove it, etc. and it breaks. 

JDBC URL: jdbc:macromedia:oracle://[server]:1521;SERVICENAME=[servicename];jdbcbehavior=0;EncryptionLevel=required;EncryptionTypes=(AES256, AES128, 3DES168);DataIntegrityLevel=required;DataIntegrityTypes=(SHA1);MaxPooledStatements=500;

 

Having said all of this, after it started working, it broke again with the "array out of bounds" error when i tried to update the url. And then it worked yet again messing around with it. I'm not sure if this will be intermittent or not.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Aug 14, 2024 Aug 14, 2024

Copy link to clipboard

Copied

Hi All,

 

We're investigating this issue and collaborating with the vendor to resolve it. We'll keep you updated as we make progress.

 

Thanks,

Vikram

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 19, 2024 Aug 19, 2024

Copy link to clipboard

Copied

quote

We're investigating this issue and collaborating with the vendor to resolve it. We'll keep you updated as we make progress.


By @Vikram_Kumar_M

 

Thanks, @Vikram_Kumar_M . Good to hear.

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 14, 2024 Aug 14, 2024

Copy link to clipboard

Copied

Michael,  

 

Following works for us on CF 2023 (jdk-17.0.8) w/o intermittent error:

Oracle driver - ojdbc11.jar (should be in every CF instance lib directory and requires one time instance restart). You can get it free from Oracle site. 

Driver Class - oracle.jdbc.driver.OracleDriver

JDBC URL example -  jdbc:oracle:thin:@dba-oracle-prod-100.edu:1521:ISTN 

 

dba-oracle-prod-100.edu - Oracle host name

1521 - Oracle port

ISTN - Oracle SID

 

 

I hope that helps.

 

Regards,

Simon

 

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Aug 14, 2024 Aug 14, 2024

Copy link to clipboard

Copied

Thanks Simon.edu.

 

I don't think I'm using the thin client. And I'm using service name, so just a little different. Is it really thin:@ with the :@ next to each other? Either way I tried a few different versions and couldn't get it to work. 

 

And I'm actually getting the "java.sql.SQLException: [DataDirect][Oracle JDBC Driver]arraycopy: destination index -1 out of bounds for byte[128]" error again. Even after my "fix" yesterday where it was working. Not good. Just very lucky at this point that this error isn't in production.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Aug 14, 2024 Aug 14, 2024

Copy link to clipboard

Copied

@Simon.edu with a little help from chatgpt i was able to figure out a new connection based on your feedback. Appreciate it. Let's hope this sticks this time!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Aug 19, 2024 Aug 19, 2024

Copy link to clipboard

Copied

I had to update this in production as it was getting bad their too. The new driver must handle things differently. I almost immediately got ORA-01000: maximum open cursors exceeded. Hopefull I can resolve it with the database team, but this has become a difficult issue to fully resolve.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Aug 22, 2024 Aug 22, 2024

Copy link to clipboard

Copied

I just discovered that calling stored procedures that return a refcursor is not supported via the Oracle thin drivers.  I get: java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'procname' then found this note in <cfprocresult>:  To use reference cursors in packages or stored procedures, use the cfprocresult tag. This causes the ColdFusion JDBC database driver to put Oracle reference cursors into a result set. (You cannot use this method with Oracle's ThinClient JDBC drivers.)

 

I can try to workaround this but we urgently need a fix from Adobe on this, now I'm wondering what else is broken when trying to use the thin drivers (ojdbc11.jar)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 22, 2024 Aug 22, 2024

Copy link to clipboard

Copied

To EvanSinceCF31, I gather you're saying your setup was "working before" (cf talking to oracle using ref cursors), but can you clarify what cf version it was running "before"? I ask because your screen name indicates you're a long time cf user (great), but if you're just moving to cf2023 or 21 after working for years on a much older version (even 2016 or 11, or earlier), there were important changes during those releases related to sp calls (on more than just Oracle). 

 

Then there have certainly been more changes since then. Just trying to narrow down specifics for your situation, to know WHEN it stopped working. I realize you may feel you just need to know how to call an oracle SP returning a ref cursor, and I'll leave that to others.

 

But getting the clarification I ask (when did it last work for you) may be more valuable than it seems. 


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Aug 22, 2024 Aug 22, 2024

Copy link to clipboard

Copied

Hi @Charlie Arehart 

 

I skipped some details for brevity but we were using CF2021 with latest updates with Oracle 19.23 Enterprise Edition and now that our database team has updated to Oracle 19.24, we are seeing the same arraycopy errors as the original poster.  There were no patches or updates or version updates to CF2021.

 

We have been using <cfprocresult> since at least CF2016, maybe longer, but it does not work when I change from the embedded DataDirect drivers (macromedia.jdbc.MacromediaDriver) to the Oracle branded ojdbc11.jar (oracle.jdbc.driver.OracleDriver) downloaded from the Oracle web site, same approach as @Simon.edu.  It says so in the CF docs, I just wasn't aware of that limitation.

 

I also found that a custom Java class that connects to Oracle called from CF using the CF data source started failing with the change to ojdbc11.jar, apparently because the auto-commit setting is different than the DataDirect drivers.  I was able to update the Java class to explicitly disable auto-commit to resolve that issue.  Alternatively I could have added -Doracle.jdbc.autoCommitSpecCompliant=false to my CF JVM arguments.

 

Ideally Adobe would update the DataDirect drivers (from Progress?) to resolve the arraycopy problem and then we wouldn't bother with the Oracle branded drivers. 

 

Does anyone know if the DataDirect drivers are better performing than the Oracle branded drivers?  We will do full regression tests on the apps but besides the difference to <cfprocresult> and auto-commit, anything else we might bump up against?

 

Thanks to all for the good advice found in the community 🙂 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation