Newer
Older
<HTML>
<HEAD>
<TITLE>JTOpen CHANGES</TITLE>
</HEAD>
<BODY>
<H2>IBM Toolbox for Java - JTOpen version</H2>
<PRE>
Copyright (C) 1997-2017 International Business Machines Corporation and
others. All rights reserved.
File: CHANGES
The term "JTOpen" refers to the open source software product
"IBM Toolbox for Java" plus any additional enhancements provided by
the open source community. JTOpen, which is supported by IBM and
governed by the IBM Public License, as well as its Java source code,
is contained in the open source repository located off of:
<A HREF="http://sourceforge.net/projects/jt400">http://sourceforge.net/projects/jt400</A>.
The terms "Toolbox" and "Toolbox LPP" refer to the IBM Licensed Program Product
"IBM Toolbox for Java" which is supported by IBM and can be obtained from the
IBM Toolbox for Java web site:
<A HREF="http://www.ibm.com/systems/i/software/toolbox/">http://www.ibm.com/systems/i/software/toolbox/</A>.
</PRE>
<!-- On 2015-03-11: cvs log -rJTOpen_9_2:JTOpen_9_1 -N '-d>2016-07-05' -->
<H4>Known deficiencies</H4>
<PRE>
Several Toolbox methods have parameters or return values that are of type Date,
Calendar, or GregorianCalendar. Some of these methods assume that the client
Java application is running in the same time zone as the IBM i server.
This behavior is long-standing, and will be corrected in a future Toolbox release.
The constructor for the RFML component's primary class (RecordFormatDocument)
fails on Sun's 1.4.2 JVM and on IBM's "Classic" i5/OS 1.4.2 JVM,
with the following error:
org.xml.sax.SAXNotRecognizedException
Feature: http://apache.org/xml/features/continue-after-fatal-error
Several classes in deprecated package com.ibm.as400.vaccess are known to
fail to serialize when running in Java 6 JVMs. These classes include:
AS400DetailsPane
AS400ExplorerPane
AS400ListPane
VActionAdapter
</PRE>
<HR>
<H3>Contents</H3>
<A HREF="#94">Fixes and enhancements in JTOpen 9.4</A><br>
<A HREF="#93">Fixes and enhancements in JTOpen 9.3</A><br>
<A HREF="#92">Fixes and enhancements in JTOpen 9.2</A><br>
<A HREF="#91">Fixes and enhancements in JTOpen 9.1</A><br>
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<A HREF="#90">Fixes and enhancements in JTOpen 9.0</A><br>
<A HREF="#87">Fixes and enhancements in JTOpen 8.7</A><br>
<A HREF="#86">Fixes and enhancements in JTOpen 8.6</A><br>
<A HREF="#85">Fixes and enhancements in JTOpen 8.5</A><br>
<A HREF="#84">Fixes and enhancements in JTOpen 8.4</A><br>
<A HREF="#83">Fixes and enhancements in JTOpen 8.3</A><br>
<A HREF="#82">Fixes and enhancements in JTOpen 8.2</A><br>
<A HREF="#81">Fixes and enhancements in JTOpen 8.1</A><br>
<A HREF="#710">Fixes and enhancements in JTOpen 7.10</A><br>
<A HREF="#79">Fixes and enhancements in JTOpen 7.9</A><br>
<A HREF="#78">Fixes and enhancements in JTOpen 7.8</A><br>
<A HREF="#77_1">Fixes and enhancements in JTOpen 7.7.1</A><br>
<A HREF="#77">Fixes and enhancements in JTOpen 7.7</A><br>
<A HREF="#76">Fixes and enhancements in JTOpen 7.6</A><br>
<A HREF="#75_1">Fixes and enhancements in JTOpen 7.5.1</A><br>
<A HREF="#75">Fixes and enhancements in JTOpen 7.5</A><br>
<a HREF="#74">Fixes and enhancements in JTOpen 7.4</a><BR>
<A HREF="#73">Fixes and enhancements in JTOpen 7.3</A><BR>
<A HREF="#72">Fixes and enhancements in JTOpen 7.2</A><BR>
<A HREF="#71">Fixes and enhancements in JTOpen 7.1</A><BR>
<A HREF="#70">Fixes and enhancements in JTOpen 7.0</A><BR>
<A HREF="#67">Fixes and enhancements in JTOpen 6.7</A><BR>
<A HREF="#66">Fixes and enhancements in JTOpen 6.6</A><BR>
<A HREF="#65_1">Fixes and enhancements in JTOpen 6.5.1</A><BR>
<A HREF="#65">Fixes and enhancements in JTOpen 6.5</A><BR>
<A HREF="#64">Fixes and enhancements in JTOpen 6.4</A><BR>
<A HREF="#63">Fixes and enhancements in JTOpen 6.3</A><BR>
<A HREF="#62">Fixes and enhancements in JTOpen 6.2</A><BR>
<A HREF="#61">Fixes and enhancements in JTOpen 6.1</A><BR>
<A HREF="#60">Fixes and enhancements in JTOpen 6.0</A><BR>
<A HREF="#54">Fixes and enhancements in JTOpen 5.4</A><BR>
<A HREF="#53">Fixes and enhancements in JTOpen 5.3</A><BR>
<A HREF="#52">Fixes and enhancements in JTOpen 5.2</A><BR>
<A HREF="#51_1">Fixes and enhancements in JTOpen 5.1.1</A><BR>
<A HREF="#51">Fixes and enhancements in JTOpen 5.1</A><BR>
<A HREF="#50">Fixes and enhancements in JTOpen 5.0</A><BR>
<A HREF="#49">Fixes and enhancements in JTOpen 4.9</A><BR>
<A HREF="#48">Fixes and enhancements in JTOpen 4.8</A><BR>
<A HREF="#47">Fixes and enhancements in JTOpen 4.7</A><BR>
<A HREF="#46">Fixes and enhancements in JTOpen 4.6</A><BR>
<A HREF="#45_1">Fixes and enhancements in JTOpen 4.5.1</A><BR>
<A HREF="#45">Fixes and enhancements in JTOpen 4.5</A><BR>
<A HREF="#44">Fixes and enhancements in JTOpen 4.4</A><BR>
<A HREF="#43_1">Fixes and enhancements in JTOpen 4.3.1</A><BR>
<A HREF="#43">Fixes and enhancements in JTOpen 4.3</A><BR>
<A HREF="#42">Fixes and enhancements in JTOpen 4.2</A><BR>
<A HREF="#41">Fixes and enhancements in JTOpen 4.1</A><BR>
<A HREF="#40">Fixes and enhancements in JTOpen 4.0</A>
<P>
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<HR>
<H3><A NAME="94">Fixes and enhancements in JTOpen 9.4</A> <i>(released 2017-09-01)</i></H3>
<Pre>
- Change password to prepend 'Q' for numberic password
- DDM: Support ENCUSRPWD server setting
- Fix create user handle only support password authentication
- JDBC: Fix maxRows ResultSet setting.
- Misc: Prepare for Java 9 by removing obsolete classes
- ProgramCall: Do not get server job name when onThread
- Remove unfinished class UserQueue
- Varchar support for RPG and iws
</Pre>
<HR>
<H3><A NAME="93">Fixes and enhancements in JTOpen 9.3</A> <i>(released 2017-3-31)</i></H3>
<Pre>
- JDBC: Fix BLOB IO parameters
- IFSFile: Create user handle only supports password authentication
</Pre>
<HR>
<H3><A NAME="92">Fixes and enhancements in JTOpen 9.2</A> <i>(released 2017-2-24)</i></H3>
<Pre>
- IFSFile: get ASP and get file system type support
- IFSFile: get CCSID and get owner name support
- JDBC CLIENT: System debugger support
- JDBC: Add details to descriptor index invalid exception
- JDBC: Allow setSchema(*LIBL) for system naming
- JDBC: Always return warning for SQLSTATE 01004
- JDBC: Correct ResultSetMetaData for NCHAR and NVARCHAR types
- JDBC: Fix getting input stream from XML
- JDBC: Set warning message to blank if SQLCODE is 0
- JDBC: Allow AS440JDBCRowSet to use AS400JDBCManagedDataSource
- MessageQueue: Fix memory leak issue
- SystemPool: Fix SystemPoolBeanInfo
- system pool supports pool size in long type
- Ship jt400Proxy.jar, jt400Servlet.jar and jt400android6.jar complied with JDK6
</Pre>
<HR>
<H3><A NAME="91">Fixes and enhancements in JTOpen 9.1</A> <i>(released 2016-7-30)</i></H3>
<Pre>
- Beans: Fix IFSFileBeanInfo (Due to JDK 1.7 change)
- Beans: Fix ClusteredHashTableEntryBeanInfo
- Conversion: Added CCSIDs 1047,1166,5233 and Table Generator
- DDM: long record number support in KeyedFile
- Documentation: Clarify that "close()" methods do not close the connection associated with the AS400 object
- Get IFSFile ASP support
- IFSFileEnumeration fix issue when pattern without wildcard
- JDBC Client: Added !SILENTRS and !EXIT_REPEAT_ON_EXCEPTION commands
- JDBC: "character truncation" property
- JDBC: "numeric range error" property
- JDBC: Add missing get/set methods to DataSource and DataSourceBeanInfo
- JDBC: Fix batch insert of timestamp
- JDBC: Fix padding of batched GRAPHIC CCSID 835 parameters
- JDBC: Fix processing of NCHAR/NVARCHAR types
- JDBC: Fix setting timestamp from String
- JDBC: Optimize sending of timestamp to server
- JDBC: Update missing information from DataSourceBeanInfo
- SystemStatus supports on status statistics reset
- Support V7R3 for up to 255 parameters on a remote program call request
</Pre>
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<HR>
<H3><A NAME="90">Fixes and enhancements in JTOpen 9.0</A> <i>(released 2016-3-29)</i></H3>
<Pre>
- Add STRAUTCOL parameters for User class
- Fix issue in IFSFileWriter.close on java8
- Fix various javadoc typos
- JDBC: Client: Support unicode escape '\u0000' in SQL statements
- JDBC: Client: Fix column label display
- JDBC: Throw SQLException instead of NumberFormatExceptoin
- JDBC: Add getDB2ParameterName to CallabledStatement and ParameterMetaData
- JDBC: Correct NullPointerException from JDError when multiple threads
- JDBC: Fix blank column labels. Return labels from stored procedure calls
- JDBC: Fix BIDI column labels
- JDBC: Honor "ignore warnings" connection property for more scenarios
- JDBC: JDBC Client Updates
- JDBC: Performance improvement -- remove string comparisons
- JDBC: Reduce exceptions generated by Decimal arrays
- Make AS400.getServerName public
</Pre>
<HR>
<H3><A NAME="87">Fixes and enhancements in JTOpen 8.7</A> <i>(released 2015-11-23)</i></H3>
<Pre>
- Program Call: set asp to pick up libraries from current user profile and only set when job asp is different
- JDBC: Fix ResultSetMetaData.getType() to match DatabaseMetaData.getColumns
- AS400 adds more interfaces to set asp group
</Pre>
<HR>
<H3><A NAME="86">Fixes and enhancements in JTOpen 8.6</A> <i>(released 2015-08-30)</i></H3>
<Pre>
- JPing ddm-ssl with correct port
- Command: fix up the offset for getting command processing library and program
- Fix Object Description size for OBJD0400 format
- JDBC: Fix AS400DataSource and secure=true
- Fix objectList name, library and type to not case sensitive
- PCML: Fix performance issue about Class.forName in PcmlDataValues
- JDBC: Fix trimming of leading spaces of column names
- JDBC: Fix errors from QSQFETCH from stored procedures not reported
- JDBC: Report truncation for InputStream parameters
</Pre>
<HR>
<H3><A NAME="85">Fixes and enhancements in JTOpen 8.5</A> <i>(released 2015-04-01)</i></H3>
<Pre>
- JDBC: Delay errors from combined open/fetch
- JDBC: Fix !THREAD command of jdbc client to inherit environment
- JDBC: Fix CHAR FOR BIT DATA parameters in input variable field compression
- JDBC: Fix default setting of schema in AS400JDBCPooledConnect for system naming
- JDBC: Fix tracing of binary parameters
- Misc: javadoc fixes
- Convert: update 16684, 300, 4396 conversion table for system updates
- Program Call: Support max 255 parameters in program call for V7R1
- JDBC: Fix LONG CHAR FOR BIT DATA parameter in input variable field compression
</Pre>
<HR>
<H3><A NAME="84">Fixes and enhancements in JTOpen 8.4</A> <i>(released 2014-12-31)</i></H3>
<Pre>
- Add setIASPGroup interface in AS400
- Add support for program path start with iasp
- Cause chain support
- DDM: Fix correlation id issue for DRDA
- PCML: Escape special characters when generate xpcml file
- JDBC: Add getPositionOfSyntaxError to syntax exceptions
- JDBC: Allow use of sort sequence table in IASP
- JDBC: Fix connection pool metadata
- JDBC: Support *ALLUSR schema name on DatabaseMetaData.getTables
- Misc: Additional tracepoints
- Misc: Improve performance of RLE decompression
- JDBC: jcc compatibility
</Pre>
<HR>
<H3><A NAME="83">Fixes and enhancements in JTOpen 8.3</A> <i>(released 2014-11-26)</i></H3>
<Pre>
- Changes to enable Bidi Testing
- Documentation fixes
- Improve performance about getjobinfo
- JDBC: Correct default connection properties in AS400JDBCPooledConnection
- JDBC: Correct error message when value overflow when setting BIGINT
- JDBC: Correct error message when value overflow when setting INT
- JDBC: Fix error returned after Connection.abort called.
- JDBC: Trace enhancements
- JDBC: Correct DatabaseMetaData.getXXXFunctions
- JDBC: Fix UDT Name in ResultSetMetaData
- JDBC: Improve variable field compression performance
- JDBC: Set Minor Version for JDBC 4.2
- JDBC: Variable Field Compression fixes
- Make DateFormate thread safe
- Make HTML hidden field in top
- Misc: Save cause with exception
- PCML: Fix xpcml parsing issue with struct_i tag
- PCML: Use non-validating parser if validating parser not available.
- PCML: Update max string length to support 16MB
- Program Call: Identify object in trace
- bi-direction RLE compression
</Pre>
<HR>
<H3><A NAME="82">Fixes and enhancements in JTOpen 8.2</A> <i>(released 2014-04-10)</i></H3>
<Pre>
- All: Set cause exception for thrown exceptions
- Command Call: Additional message information
- Command Call: Fix issue that "message substitution text" in 7.1 is equivalent to "replacement data or impromptu message" in 7.2
- Conversion: Add surrogate support and update 16684 table
- Conversion: Fix corruption of 16684 table by loading of CCSIDs 5026,5035,930, and 939.
- DataStream: Fix timing problem
- JDBC: Fix DatabaseMetaData.getSQLKeywords
- JDBC: Fix concurrent access resolution property
- JDBC: Fix for -Xshareclasses
- JDBC: Fix named parameters for CALL with return parameter
- JDBC: JDBC 4.2 Support
- JDBC: timestamp format property
- JDBC: Allow DatabaseMetaData calls when connection is read-only
- JDBC: Variable Field Compression for Blocked Insert
- JDBCClient: Support for persistent threads
- Misc: Javadoc updates
- Misc: Trace enhancements
</Pre>
<HR>
<H3><A NAME="81">Fixes and enhancements in JTOpen 8.1</A> <i>(released 2013-10-01)</i></H3>
<Pre>- JDBC: Support IPV6 addresses in JDBC URL<br>- JDBC: Support timestamp as time parameter<br>- Support for up to 255 parameters on a remote program call request<br>- Support additional message data returned on remote command and remote program call replies
</Pre>
<HR>
<H3><A NAME="710">Fixes and enhancements in JTOpen 7.10</A> <i>(released 2013-04-04)</i></H3>
<Pre>- JDBC: For CCSID 1208, do not report truncation if extra characters are spaces<br>- JDBC: Fix timestamp to String formatting<br>- Refactor code block of SSL socket provider (shift between JSSE and SSL )<br>- Add Serializable interface to CancelLock
</Pre>
<HR>
<H3><A NAME="79">Fixes and enhancements in JTOpen 7.9</A> <i>(released 2012-12-20)</i></H3>
<Pre>- JDBC: Report truncation for mixed/open CCSIDs<br>- JDBC: Improve timestamp support<br>- JDBC: Reduce number of SQLConversionSettingsObjects<br>- Add QPWDEXPWRN support
</Pre>
<HR>
<H3><A NAME="78">Fixes and enhancements in JTOpen 7.8</A> <i>(released 2012-09-11)</i></H3>
<Pre>- synchronized send and receive request in NPConversation.makeRequest()<br>- Allow using a java.net.URL for setObject and Datalink<br>- Fix array input parameters on reused CallableStatement<br>- Array parameter fixes<br>- Handle java.version of "0"<br>- Correct timestamp conversion<br>- Fix named parameters.<br>- Fix DatabaseMetadata getCatalogTerm() and supportsExpressionsInOrderBy()<br>- Fix array input parameter when reusing callable statement
- Allow blocking when using asensitive cursors
</Pre>
<HR>
<H3><A NAME="77_1">Fixes and enhancements in JTOpen 7.7.1</A> <i>(released 2012-06-1)</i></H3>
<PRE>- Added main feature 'JTOpen Lite' for mobile support <br>
</PRE>
<HR>
<H3><A NAME="77">Fixes and enhancements in JTOpen 7.7</A> <i>(released 2012-03-15)</i></H3>
<PRE>- AS/IS JDBC CLIENT <br>- Code cleanup <br>- Fix ProfileTokenVault <br>- Fix java.util.NoSuchElementException: Vector Enumeration thrown by rollback <br>- Fix message data replacement and format issue <br>- IFS: Avoid NullPointerException in IFSFileImplRemote.delete() <br>- Ignore all exceptions when loading Buddhist calendar <br>- Improve CADSPool Performance <br>- JDBC 4.1 <br>- JDBC: Correctly report error on fetch <br>- JDBC: Fix position(-1) problem when at beginning of result set <br>- JDBC: Fix updated row count for autogenerated keys <br>- JDBC: Miscellaneous conversion fixes <br>- JDBC: Always use gregorian calendar to interpret database dates. <br>- JDBC: Decimal data errors property <br>- JDBC: Describe option property <br>- JDBC: Ignore exceptions during race conditions <br>- JDBC: Miscellaneous Data Conversion Fixes <br>- JDBC: Array fixes <br>- JDBC: Honor Decimal separator for PreparedStatement.setString
- JDBC: Update ExtendedIOException to display return code
- PCML: PCML parser performance tuning<br>- Add two attributes support: System Restrict Save & Inherit Allow Check Point Writer.<br>- PCML: Change PcmlDocRoot.addElement return type from void to object, thus to prevent duplicate calling containsKey, which is time consuming.<br>- PCML: Change PcmlDocuement.addToHashtable from recursive to non-recursive, thus for performance consideration.<br>- ProgramCall: Fix NPE excepetion by cancel lock serialization and deserialization.<br>- IFSFile: Fix failure of deleting symbol link.<br>
</PRE>
<HR>
<H3><A NAME="76">Fixes and enhancements in JTOpen 7.6</A> <i>(released 2011-10-17)</i></H3>
<PRE>
- AS/IS JDBC CLIENT<br>- Code cleanup<br>- IFS: Avoid NullPointerException in IFSFileImplRemote.delete()<br>- JDBC 4.1<br>- JDBC: Fix updated row count for autogenerated keys<br>- JDBC: Always use gregorian calendar to interpret database dates.<br>- JDBC: Fix bug in IN/OUT DBCLOB parameters
</PRE>
<HR>
<H3><A NAME="75_1">Fixes and enhancements in JTOpen 7.5.1</A> <i>(released 2011-09-08)</i></H3>
<PRE>
- Fix Profile token issue
</PRE>
<HR>
<H3><A NAME="75">Fixes and enhancements in JTOpen 7.5</A> <i>(released 2011-08-15)</i></H3>
<PRE>
- Don't make ProfileTokenCredential Refresh while getting connection to server
- Fix issue that FileAttributes.getAttributes fails when returned data is larger than 2048 bytes
- Fix reading of com.ibm.as400.access.noDBReplyPooling and com.ibm.as400.access.DBDSPool.monitor properties
- Add ClassCastException Handle in NPConversation.makeRequest
- JDBC: Fix Connection.isValid
- JDBC: JDBC Proxy Support Updates
- JDBC: Add fetch warnings to ResultSet object
- JDBC: Query timeout mechanism = cancel
- JDBC: Fix bug where clearParameters() causes executeBatch() failure
- JDBC: User library list updates
- Retry on java.net.BindException
- Program Call timeout mechanism = cancel
</PRE>
<HR>
<H3><A NAME="74">Fixes and enhancements in JTOpen 7.4</A> <i>(released 2011-02-27)</i></H3>
<PRE>
- <i>Various:</i> Additional Tracing
- <i>Various:</i> Eclipse configuration
- <i>Various:</i> Findbugs synchronization fix
- <i>Various:</i> Update JVM16 synchronization
- Datatypes: Timezone Fixes
- Trace: Trace.showChars
- AS400Message: Access create and modification date of AS400Message
- JDBC: Deadlock in DBStorage Pool
- JDBC: Fix obtaining SQLXML from cached package
- JDBC: Identify Generic Object for Heap Dump Analysis
- JDBC: Return to Pool Cleanup
- JDBC: Stored procedure scrollable cursor fixes
- JDBC: Javadoc change for setQueryTimeout
- JDBC: Update DatabaseMetaData javadoc
- PCML: Date/Time/Timestamp fixes
- RLA: Bidi Conversion Fixes
</PRE>
<HR>
<H3><A NAME="73">Fixes and enhancements in JTOpen 7.3</A> <i>(released 2011-02-23)</i></H3>
<PRE>
- <i>Various:</i> Code Cleanup
- <i>Various:</i> Trace enhancements
- IFSFile : Clarified that IFSFile.getFreeSpace() returns Long.MAX_VALUE if storage limit is 'no maximum'.
- QSYSObjectPathName : Fixed bug: IASP is forgotten by setLibraryName(), setMemberName(), setObjectName(), setObjectType().
- JDBC: Clarify Javadoc for setBinaryStream.
- JDBC: Delay reading of Binary Stream until Execute
- JDBC: Fix Statement.setQueryTimeout(0) for first set
- JDBC: Fix leaking DBStorage objects
- JDBC: For autogenerated keys use NEW TABLE instead of FINAL TABLE
</PRE>
<HR>
<H3><A NAME="72">Fixes and enhancements in JTOpen 7.2</A> <i>(released 2010-11-30)</i></H3>
<PRE>
- <i>Various:</i> Javadoc enhancements. Improved code comments.
- <i>Various:</i> Improved error tracing and trace messages.
- <i>Various:</i> Code cleanup.
- <i>Various:</i> Fix Vetoable for JDK 1.6
- <i>Various:</i> Fixed bug when requested list is very large. Corrected semantics of 'listOffset' parameter in listXXX() methods of classes HistoryList, JobList, JobLog, MessageQueue, ObjectList, and UserList. Consolidated common code into ListUtilities.
- AS400: Password Cache Fixes
- AS400: In getCcsid(), make an effort to arrive at a CCSID value other than 0 or 65535.
- AS400: Added method getTimeZone(), and deprecated getSystemTimeZone().
- AS400File: In AS400FileRecordDescription.addFieldDescription(), set additional keyword values: ALIAS, REFFIL, REFFLD, REFFMT, REFLIB, COLHDG.
- AS400File: Added missing code, to obtain value for CURRENT_NUMBER_OF_RECORDS.
- AS400File: When creating physical file via CRTPF, default MBR() to *FILE rather than *FIRST.
- AS400File: Added methods to get/set REFFIL, REFLIB, and REFFMT.
- CommandLine: Added new method: CommandLineArgument.isOptionSpecified().
- CommandLine: Exploit class 'CommandLineArguments' to parse the command-line invocation options.
- Connection: If NoRouteToHostException in getSocketConnection(), retry to 'ipv6-localhost'.
- ConnectionPool: Added method AS400ConnectionPool.removeFromPool(AS400). (jlee-oss)
- ConnectionPool: Added property: enforceMaxPoolSize. (jlee-oss)
- Data: DAMRI: Added DATA_LENGTH_OUT_OF_RANGE. Enhanced other messages.
- Datatypes: Fixed bug in AS400UnsignedBin8.toBytes(Object,byte[],int).
- Datatypes: Added constant: AS400DataType.TYPE_TIME. Deprecated constant: AS400DataType.TYPE_TIME_OF_DAY.
- Datatypes: Added methods to AS400Timestamp: toDate() and toTimestamp(). Added internal support for \*DTS format. (jlee-oss)
- Datatypes: Exploit the AS400Timestamp class's new \*DTS support, when parsing \*DTS fields.
- Datatypes: Throw IllegalArgumentException if bad format specified on constructor for Date or Time.
- Data conversion: Added constructors and methods to support new type converters (AS400Bin1, AS400UnsignedBin1, AS400UnsignedBin8).
- Data conversion: Adding mappings for additional regions.
- JavaApplication: Trace a suggestion to check for firewalls, if error in JavaApplicationCall.run().
- JavaProgram: Check for IBM i VRM higher than 7.1.
- JDBC: Use SoftReferences to avoid out of memory exception.
- JDBC: Clarify javadoc: Only six characters of the SQL package name are used.
- JDBC: Update javadoc for maximum blocked input rows.
- JDBC: Fix autogenerated key interfaces for AS400JDBCConnectionHandle.
- JDBC: Scope Locators to cursor for *NONE isolation
- IFS: Restored original behavior of IFSFile.exists(): Return false if profile is denied access.
- Pcml: Enhancements to support exploitation by PCML.
- Pcml: Added support for new data types.
- RemoteCommand: When forcing a disconnect because of an error, swallow any exceptions incurred during the attempt to disconnect.
- RemoteCommand: Disregard override CCSID value of 65535.
- SpooolFile: Fixed bug in SpooledFileList.getStartTimeFilter().
- System: Added property: SystemProperties.throwSAXExceptionIfParseError.
- UDFS: Added methods to set and query the UDFS 'preferred storage unit' attribute.
- UDFS: Corrected typographical code bug.
- User: If invalid profile name specified on constructor, trace a warning but don't throw exception.
</PRE>
<HR>
<H3><A NAME="71">Fixes and enhancements in JTOpen 7.1</A> <i>(released 2010-08-27)</i></H3>
<PRE>
- <i>Various:</i> Added or improved error messages and trace messages.
- <i>Various:</i> Javadoc enhancements. Improved code comments.
- <i>Various:</i> Code cleanup.
- <i>Various:</i> Removed unused variables.
- Connection pool: Added support for connection pool pretesting.
- Connection pool: If the returned connection didn't originate in this pool, disconnect it.
- Connection pool: Remove connection from list before disconnecting services.
- Connection: AS400ThreadedServer: Trace use of thread.interrupt.
- Connection: AS400: Added method getSystemTimeZone().
- Connection: Added new property: fallbackCCSID. (Contributed by Tim Hurman.)
- Connection: Cleanup native method loading.
- Data conversion: AS400BidiTransform: Eliminated method convertDataToHostCCSID().
- Data conversion: Added data converters for IBM i data types: date, time, timestamp, signed bin1, unsigned bin1, unsigned bin8.
- Data conversion: Bidi: When deciding ST5 versus ST10, consider user profile CCSID and whether system is V5R1.
- FTP: FTPThread: Put the wait() into a loop.
- IFS: FileAttributes: Deprecated misspelled method getJounalingStartTime(); replaced it with getJournalingStartTime().
- JDBC: AS400JDBCSQLXML: Fixed "unsigned byte" problem.
- JDBC: AS400JDBCStatement: Correct interrupted thread statement leak.
- JDBC: Correct setting of JDBC cursor hold properties.
- JDBC: AS400JDBCResultSetMetaData: Fix isAutoIncrement() when extended metadata is off.
- JDBC: AS400JDBCStatement: Fix execute() to return syntax error from database engine.
- JDBC: Fix XML type info for pre JDBC 4.0.
- JDBC: Fix buffer pooling.
- JDBC: Fix missing method exception in JDError.
- JDBC: Handle comma as decimal float separator.
- Message: AS400Message.getText() and .load(): If returned text is blank, but substitution data is non-blank, copy substitution data to text.
- Permission: PermissionAccess: Don't uppercase file name for /QOpenSys file system.
- Ping: AS400JPing: Added pingAllServices(). Call Thread.interrupt() instead of Thread.stop(). Trace socket properties when pinging DDM server.
- Print: Fixed bug uppercasing special character '@'.
- Product license: Added trace statements.
- RLA: Added constants to class DDMTerm.
- RLA: Added trace message when parsing DDM reply data stream.
- Save file: SaveFileEntry: Added hashCode() method.
- Trace: Correct NPE when changing tracing.
- User space: Added new UserSpace native methods.
</PRE>
<HR>
<H3><A NAME="70">Fixes and enhancements in JTOpen 7.0</A> <i>(released 2010-05-14)</i></H3>
<PRE>
- <i>Various:</i> Added or improved error messages and trace messages.
- <i>Various:</i> Javadoc enhancements. Improved code comments.
- Data conversion: Refined the default behaviors for Bidi conversion.
- Connection pool: Improved tracing of connection pool management events.
- Connection: Added PASE-specific native methods with unique names, to eliminate socket errors due to PASE/ILE ambiguity.
- Connection: Catch AccessControlException during static initialization of AS400Credential.
- Connection: Eliminated limitation on getJobs() method, regarding the RECORDACCESS service.
- Connection: Enabled AS400.generateToken() methods to work with proxy server.
- Connection: Improved tracing of authentication scheme.
- Data area: Enabled/fixed read(byte[]) methods when running in proxy mode.
- Data conversion: Added BIDI_STRING_TYPE_NONE (-1) as a value for JDBC property 'bidi string type'.
- Data conversion: Changed default Bidi string type from 'Implicit LTR' to 'Implicit Contextual LTR'.
- Data conversion: Eliminated method AS400BidiTransform.convertDataToHostCCSID().
- Data conversion: Eliminated unused internal method in AS400DecFloat.
- Data conversion: Fixed NullPointerException in AS400BidiTransform.convertDataFromHostCCSID().
- Data conversion: If host CCSID is 13488 or 1200, default to a Bidi 'string type' of 5.
- Data conversion: If throw NumberFormatException (for packed or zoned decimal), trace field bytes.
- Data conversion: Modified CharConverter(ccsid,system) to tolerate null-valued 'system' argument.
- Data conversion: Refined determination of default 'string type': Consider whether the system's default CCSID is a Bidi CCSID.
- Data conversion: Reset value of BidiStringType.DEFAULT to original value of 0 (which now maps to ST5).
- Date conversion: Don't trace stack-trace of NullPointerException from TimeZone.getTimeZone().
- IFS: Fix bug in IFSFileEnumeration.nextElement(), observed in /QNTC.
- IFS: Fixed several proxy methods to call correct rethrowX() method.
- JDBC: Added "use block update" connection property.
- JDBC: Added 'maximum blocked input rows' connection property.
- JDBC: Allow DatabaseMetaData.getFunctions() call to V5R4.
- JDBC: Buffer synchronization fixes.
- JDBC: Code cleanup.
- JDBC: Correct JDUtilities.streamToBytes().
- JDBC: Correct syntax error for Insert statement.
- JDBC: Fix to not return array out of bounds exception when bad char data is converted.
- JDBC: Fix update counts for batched insert statements.
- JDBC: JDBC40 single source restructure.
- JDBC: Minimize buffer usage for blocked insert.
- Job: Fixed bug: Job.loadInformation() doesn't clear cached 'job status' value.
- NetServer: Tolerate blanks values returned for 'encrypted password' and 'logon type'.
- NetServer: Updated with new API fields that were added in V6R1.
- Proxy: Changed an 'error' trace message to 'diagnostic'.
- Proxy: Made CredentialVault and its subclasses Serializable, to fix ProxyServer problem introduced in JTOpen 6.7.
- RLA: Commented-out unused methods in DDMRequestDataStream.
- RLA: Performance improvement in KeyedFile.readNextEqual() and readPreviousEqual().
- Spooled file: Removed non-public attributes from javadoc for SpooledFile.sendTCP() method.
- Trace: If we created our PrintWriter internally (based on a file), close it when replacing it.
- Trace: Incorporate systemName/jobName in receiver thread names, for more useful traces.
- User: Added new method: User.refresh().
- User: Check for (and reject) user profile name '*NONE'.
</PRE>
<HR>
<H3><A NAME="67">Fixes and enhancements in JTOpen 6.7</A> <i>(released 2010-02-05)</i></H3>
<PRE>
- <i>Various:</i> Added and improved error messages and trace messages.
- <i>Various:</i> Corrected html tags.
- <i>Various:</i> Fixes for potential bugs identified by static analysis.
- <i>Various:</i> Javadoc enhancements. Improved code comments.
- Admin: Declared class SystemProperties as 'public', to allow access from test drivers and other Toolbox packages.
- Connection pool: Added trace message to indicate maintenance daemon ending.
- Connection pool: In ConnectionPool and AS400ConnectionPool, added new methods setCCSID() and getCCSID().
- Connection pool: Improved tracing of pool management events.
- Connection: Added method getUserId(forceRefresh) to AS400.
- Connection: Added new method: AS400.connectToPort().
- Connection: Ensure that failure during attempt to connect, doesn't leave connection in inconsistent state.
- Connection: In AS400 class, improved tracing of authentication scheme.
- Connection: In AS400 class, loosen definition of 'numeric profile name' when implicitly prepending 'Q' to profile name.
- Connection: In AS400ThreadedServer, if SocketException during disconnect(), trace a 'diagnostic' instead of an 'error'.
- Data conversion: In CharConverter, added checks for null-valued arguments.
- Data conversion: Added more complete Bidi support.
- Date conversion: If unable to determine server time zone, assume same as client.
- IFS: Added new constructor IFSFile(IFSFile directory,String filename).
- IFS: In IFSFileDescriptor, changed lock object from a Boolean to an Object.
- JDBC: Added more complete Bidi support.
- JDBC: Change XML trim of declaration to match Native driver.
- JDBC: Fix Array max size of element data.
- JDBC: Fix SQL array and non-array types in same output parm procedure.
- JDBC: Fix SQL array of decimals to handle null elements.
- JDBC: Fix XML DOM source for non-locators.
- JDBC: Fix XML declaration trim when using SQLXML interface.
- JDBC: Fix XML offset of stream.
- JDBC: Fix XML UTF-8 chars of more than 1 byte in length.
- JDBC: Fix bugs in SQL arrays when elements are null or length of zero.
- JDBC: Fix for array of dates.
- JDBC: Fix setting the binary stream once and re-executing SQL statement.
- JDBC: Fix update of XML in result set.
- JDBC: In AS400JDBCArrayResultSet, fix for missing variable.
- JDBC: In AS400JDBCResultSet, fix XML update after update to null value.
- JDBC: Make JDSQLTokenizer eligible for garbage collection after use.
- JDBC: Updated 'database name' property description.
- JDBC: XML ascii stream fix.
- JDBC: XML declaration fix.
- JDBC: Zero out varchars of length less than 256 for RLE compression.
- NetServer: Corrected commitChanges(fileShare) to not assume that the share pathname is specified in Unicode.
- Object description: In ObjectDescription, added new constructor. Consolidated data members.
- PCML: Eliminated StringIndexOutOfBoundsException in PcmlMessageLog.
- Permission: Added a clone() method to UserPermission.
- Permission: Correctly handle embedded quotes in paths.
- Permission: Eliminated 'Cloneable' designation on Permission class.
- Product license: Added a readObj() method to ProductLicense.
- Product: Product.isInstalled(): If product isn't installed, avoid logging CPF0C1F.
- QSYS object types: Protect internal representation by returning copy of array.
- QSYSObjectPathName: Added new method: toQualifiedObjectName().
- Save file: Added equals() and toString() methods to SaveFileEntry.
- Trace: Added method toHexString(byte) to Trace.
- Trace: Added support for dynamic tracing.
</PRE>
<HR>
<H3><A NAME="66">Fixes and enhancements in JTOpen 6.6</A> <i>(released 2009-09-11)</i></H3>
<PRE>
- <i>Various:</i> Eliminated trace calls that were redundant with thrown exceptions.
- <i>Various:</i> Improved construction of InternalErrorExceptions.
- <i>Various:</i> For threadsafe API's and CL's, perform internal calls on-thread when allowed by properties.
- <i>Various:</i> Javadoc enhancements.
- Beans: Corrected EventSetDescriptor argument, to eliminate ExceptionInInitializerError on some JVMs.
- Build: Include JarMaker classes in jt400Native.jar
- Command call, Program call: Restore cross-version serializability between old/new releases of JTOpen.
- Command call: Refined processing of threadSafe property.
- Connection: Added system property: AS400.guiAvailable.
- Connection: Don't print stack trace if class NativeVersion not found.
- Connection: In setGSS* methods, clear any prior signon info.
- Connection: New infrastructure to support use of auto-renewing Profile Tokens.
- Connection: Normalized trace calls. Eliminated trace calls that were redundant with thrown exceptions.
- Connection: Re-enable Toolbox native PASE code.
- Data conversion: (AS400Structure) Made defaultValue_ non-static. Synchronized access to elements_ and defaultValue_. Throw ExtendedIllegalArgumentException instead of ArrayIndexOutOfBoundsException.
- Date conversion: Made 'public' the DateTimeConverter.timeZoneForSystem() method.
- IFS: Added IFSFile methods: getParentFile(), getPathPointedTo(), and isSourcePhysicalFile().
- IFS: For default IFSFile objects, changed getParent() to return null instead of "/". Side effect: For default VIFSFile and VIFSDirectory objects, getParentDirectory() will now return null instead of "/".
- IFS: Renamed some internal methods for better maintainability.
- IFS: Support new File methods introduced in Java 6.0.
- JDBC: Add stronger date, time, and timestamp validation.
- JDBC: Add wrapper methods around set/update Default to match JCC's new names.
- JDBC: Allow JDBC connection properties to propagate to Native JDBC driver.
- JDBC: Change lob locator block size to 1MB for Stream input.
- JDBC: Corrected an empty-string comparison in initializeAS400().
- JDBC: Fix AS400JDBCResultSet.updateSQLXML to handle null values.
- JDBC: Fix JDBC 4.0 XML internal encoding check.
- JDBC: Fix SQL Array output parm index.
- JDBC: Fix for XML with no declaration to default to UTF-8.
- JDBC: Fix for setting an SQLXML object into a Blob/Clob column.
- JDBC: Fix in CallableStatement.getArray method to support SQL Arrays.
- JDBC: Fix metadata statement leak.
- JDBC: Fix to SQL Array output parm filtering.
- JDBC: Fix to XML zero length stream.
- JDBC: Fix to double-byte clob when reader/stream length is not specified.
- JDBC: Fix to multi-row merge.
- JDBC: Fix update and set SQLXML for null data.
- JDBC: Fix updateSQLXML for null data.
- JDBC: Handle JDBC readers and input streams with length not specified.
- JDBC: Multi-row update support.
- JDBC: New XML message.
- JDBC: New functionality for XML and Array support.
- JDBC: Port of new XML code to JDBC 3.0.
- JDBC: Remove incorrect catch block.
- JDBC: Remove some references to old versions and rename IBM i.
- JDBC: Separate login timeout property from socket time out.
- JDBC: Trim XML encoding when PS.setString() is used.
- JDBC: XML binary stream fix to not trim off XML declaration.
- JDBC: XML double-byte/single-byte when CCSID does not match conversion bug fix.
- JDBC: XML fix to account for byte order mark in UTF-15be string.
- JarMaker: Added component: PCML. Rearranged constants for better readability. Renamed some private constants.
- Object description: Improved performance of refresh(). Exploit QUSROBJD format OBJD0100.
- Permission: Added new Permission constructor with 'followLinks' parameter. Added isFollowSymbolicLinks().
- Permission: Improved messages in some thrown exceptions.
- Product: Eliminated 'NullPointerException: featureID' along certain paths.
- Program call: (ServiceProgramCall) Added check for more than 7 parameters.
- Program call: Added new method: suggestThreadSafe().
- Program call: Added new streamlined runProgram() method.
- Program call: Added static utility method getDefaultThreadSafety().
- QSYS object types: Added new type: SQLXSR.
- RFML: Added clarifying comment.
- Security: Added checks for null keyRingName.
- Trace: Added new variation of printByteArray().
- Trace: Tolerate null arguments in log() methods.
- User space: Call UserSpace API's on-thread by default.
- User space: Respect setting of 'mustUseSockets' property when calling programs internally.
- User: Changed User.exists() method to call CHKOBJ instead of QSYRUSRI.
</PRE>
<HR>
<H3><A NAME="65_1">Fixes and enhancements in JTOpen 6.5.1</A> <i>(released 2009-05-20)</i></H3>
<PRE>
- Connection: Re-enable default on-thread execution of ProfileToken calls. (Added 2009-06-05)
- Data area: Fixed breakage in JTOpen 6.5: NoClassDefFoundError on Sun JVM's.
- Print: Fixed breakage in JTOpen 6.5: NoClassDefFoundError on Sun JVM's.
- User space: Fixed breakage in JTOpen 6.5: NoClassDefFoundError on Sun JVM's.
</PRE>
<HR>
<H3><A NAME="65">Fixes and enhancements in JTOpen 6.5</A> <i>(released 2009-05-08)</i></H3>
<PRE>
- INCOMPATIBLE CHANGE:
The getJob() method is eliminated from classes CommandCall and ProgramCall.
Applications that reference this method will no longer compile or execute.
Use method getServerJob() instead.
- BEHAVIOR CHANGE:
Formerly, when running natively on IBM i, by default the Toolbox looked-up
the designated thread-safety of CL commands, and called thread-safe CL's
on-thread to optimize performance.
Similarly, when running natively on IBM i, by default the Toolbox called
certain IBM i API's "on-thread" (in the job of the JVM) if the API's were
known to be thread-safe.
This introduced problems where successive CL's and programs would be called
in 2 different jobs (on-thread versus off-thread).
The new default is to simply call all CL's and programs via the Remote
Command Host Server.
To restore the previous CommandCall behavior, set Java system property:
com.ibm.as400.access.CommandCall.threadSafe=lookup
To instruct the Toolbox to call all programs on-thread, set the property:
com.ibm.as400.access.ProgramCall.threadSafe=true
However, setting threadSafe=true is not advised unless your application
is known to call only thread-safe programs.
- <i>Various:</i> Changes to support modified default command thread-safety behavior.
- <i>Various:</i> Javadoc updates.
- <i>Various:</i> Renamed private constant names and variables for better readability.
- <i>Various:</i> Enhancements suggested by static analysis:
- Added hashCode() methods.
- Eliminated redundant String.toString() calls.
- Eliminated unnecessary null-checks.
- Eliminated unused variables.
- Improved synchronization.
- Ensure that opened streams get closed.
- Streamlined try/catch logic.
- Trace all caught exceptions.
- Build: Added JPing to jt400Native.jar
- Command call: Removed method getJob(). Method was deprecated on 2003-01-22.
- Command call: Added tracing to track on/off-thread calls, and CL thread-safety lookups.
- Command call: Eliminated default thread-safety lookup when calling CL commands natively.
- Command call: Changed trace category of the 'on/off thread toggle' message to DIAGNOSTIC.
- Connection pool: Tolerate null password on constructor.
- Connection: Relaxed definition of 'numeric password' when prepending 'Q'.
- Connection: Added trace messages.
- Connection: Added method: AS400.isConnectionAlive(service).
- Connection: Check for null, before dereferencing listeners.
- Connection: Fix PASE socket close(), so it is not called twice.
- Connection: Fix PASE socket pair leak.
- Connection: Temporarily disable PASE optimizations until socket issues can be resolved.
- Connection: Fix native library load when running with multiple war files and classloaders.
- Connection: Made 'public' the method AS400.canUseNativeOptimizations().
- IFS: Added methods to FileAttributes: containsTemporaryObjects() and isTemporaryObject().
- IFS: Added static getFreeSpace() method.
- IFS: For IFSFile.getSubtype(): Retrieve codepage of extended attribute values.
- IFS: Trace the returned extended attribute values.
- JDBC: Add 'skip locks' option to concurrent access property.
- JDBC: Add new JDBC 4.0 flag for sysibm stored procedure metadata source.
- JDBC: Fix AS400JDBCDriver.connect() with clone set to false.
- JDBC: Fix JDBC 4.0 getHoldability() method to check for isolation level of *NONE.
- JDBC: Fix ResultSet.updateRow() method when CCSID is not known.
- JDBC: Fix commit/rollback to not close cursors when isolation level is *none.
- JDBC: Fix erroneous NullPointerException in JDBC trace.
- JDBC: Fix for 'fetch direct' only if cursor is read-only and insensitive.
- JDBC: Fix for JDBC Graphic datatype length with ccsid 65535.
- JDBC: Fix getIsolation() method to return *none if it is really *none.
- JDBC: Fix isAutoIncrement() method to close correct PreparedStatement.
- JDBC: Fix to get updated date info in getVersionColumns() method.
- JDBC: Fix to search 'system' part of library list when calling stored procedures.
- JDBC: Fix truncation error when inserting large BigDecimal into double column.
- JDBC: Fix truncation error when setting BigDecimal in float/real columns.
- JDBC: Fix when to prevent incorrect NullPointerException while trace is on.
- JDBC: Temporary workaround for known Sun Hotspot 1.6 JIT defect.
- JarMaker: Generate digests correctly. Close all streams when done.
- JavaApplicationCall: Added trace call.
- Job: Added method: commitChanges(boolean mustStayOnThread).
- Message: Eliminate NullPointerException if load() called on internally-created AS400Message.
- Print: Added getAFPInputStream. Deprecated getInputACIPMergedStream.
- Print: Enhance Error Diagnosis.
- Print: Throw exception if fail to connect to Print Server.
- Program call: Added new method: ServiceProgramCall.setAlignOn16Bytes().
- Program call: Removed method getJob(). Method was deprecated on 2003-01-22.
- Proxy: Eliminated calls to System.gc() and runFinalizersOnExit().
- RLA: Added method: getLibraryName()
- Trace: Added error message in logLoadPath().
- Trace: Added method: log(int,String,String).
- Trace: Check for null argument in new log() method.
- Trace: Made the printByteArray() methods package-scoped.
</PRE>
<HR>
<H3><A NAME="64">Fixes and enhancements in JTOpen 6.4</A> <i>(released 2008-12-12)</i></H3>
<PRE>
- <i>Various:</i> Javadoc updates.
- <i>Various:</i> Enhancements suggested by static analysis.
- Command call: Log a warning if sequential calls switch between on-thread and off-thread.
- Connection pool: Enhance AS400ConnectionPool to support ProfileTokenCredentials.
- Connection pool: Fix pool maintenance daemon so as to disconnect active connections,
only when a connection exceeds its maxUseTime limit.
- Connection: Added method AS400.isConnectionAlive().
- Connection: Fix bug in portmapper port.
- Data conversion: Eliminated possible arithmetic overflow.
- Data conversion: Fix JTOpen bug 2120228: ConvTableJavaMap is not appropriately synchronized.
- Data conversion: Resynchronized with updated system converter tables.
- Date conversion: Optional parameters for QWCCVTDT only valid for V5R3 and beyond.
- Date conversion: Streamlined design, based on assumption that all dates are in timezone of system.
- FTP: Check for null-valued changes_, vetos_ before referencing.
- FTP: Improved synchronization. Ensure that streams always get closed.
- FTP: Tolerate delimiters other than '|' in EPSV response.
- JDBC: Add Currently Committed support.
- JDBC: Add code to make use of hostserver's fetch-direct function.
- JDBC: Add property "secure current user" to allow JDBC connections with "" or *current when running on the IBM i host.
- JDBC: Documentation rename of "default schema/library" to "default SQL schema".
- JDBC: Fix AS400JDBCResultSetMetadata.isAutoIncrement() method to get more accurate information.
- JDBC: Fix bug in delimited schema in connection URL.
- JDBC: Fix bug in getCatalogSeparator being able to access connection.
- JDBC: Fix bug in getMoreResults(int) so that CLOSE_CURRENT_RESULT does not throw exception.
- JDBC: Fix bug when locators are freed more than once.
- JDBC: Fix for connection property "driver=native" when hostname is localhost.
- JDBC: Fix for quoted schema names in URL.
- JDBC: Fix misc resources that are opened but not closed properly.
- JDBC: Fix stored procedure flavor of AS400JDBCDatabaseMetaData resultset.getStatement() so it returns null per JDBC spec.
- JDBC: Fix typo in secure current user description.
- JDBC: Fix when using userid in URL and using connection property driver.
- JDBC: Force signon GUI dialog to display when id/password are "" or "*current".
- JarMaker: Recognize -xsd as abbreviation for -excludeSomeDependencies.
- JarMaker: If not JDBC or RLA, don't follow dependencies from ClassDecoupler.
- JarMaker: Verify number of bytes skipped. Call readUnsignedShort() instead of readShort().
- Message file: Added FIRST and NEXT options to getMessage() methods. (Enhancement submitted by David Gibbs.)
- Micro edition: Modified skipBytes() to return actual number of bytes skipped.
- PCML: Added more PCML trace points.
- PTF: Added 'get' methods for creationDate and serverIPLRequired.
- QSYSObjectPathName: Added static non-public validatePath() method.
- RLA: Added parameter validation and more tracing.
- RLA: Set field description text. Removed 'serializable' designation. Added check for no records returned from DSPFFD.
- System pool: Eliminated 2 obsolete non-public constructors. Added parameter validation.
- System status: Exploit new SystemPool constructors.
- Trace: In finalize(), close all writers (except when they're built on System.out).
- User: Added getters/setters for userExpirationAction, userExpirationDate, userExpirationInterval, userEntitlementRequired.
- User: Additional fixes not included in the associated PTF's: Serializability bug, and NullPointerException in new utility method 'isBlanks'.
- User space: Improved synchronization.
</PRE>
<HR>
<H3><A NAME="63">Fixes and enhancements in JTOpen 6.3</A> <i>(released 2008-08-29)</i></H3>
<PRE>
- <i>Various:</i> Javadoc updates.
- <i>Admin:</i> Updated this file (changes.html) so component names are consistent.
- Command call: Changed scope of getThreadSafetyProperty() from private to package.
- Command call: Refined tracking of missing V5R4 PTF for QCDRCMDI (SI29629).
- Connection pool: Fix bug to reuse connections which have a maxLifetime of 0.
- Connection: Added AS400 properties: mustAddLanguageLibrary, mustUseSuppliedProfile.
- Connection: Added AS400 properties: mustUseSockets, mustUseNetSockets, threadUsed.
- Connection: Ensure that the socket never gets left open.
- Connection: Fix code so that applets do not get AccessControlException.
- Connection: Only try to load PASE library when on V6R1 or higher.
- Connection: Fix for JTOpen bug 2039039: Set another timeout when opening a socket connection.
- Data area: Honor setting of threadSafe property.
- Data conversion: Modification to handling of Date convert(*CURRENT) to adjust to local time.
- Data conversion: Added method AS400DataType.getJavaType().
- Data conversion: Regenerated conversion tables for CCSIDs 835 and 4931.
- JDBC: Add support for getSQLXML on Blob columns, for consistency with native JDBC driver.
- JDBC: Allow userid/password in URL to override blanks in parameters.
- JDBC: Fix ResultSet navigation for various relative scrolling.
- JDBC: Fix cast exception for DBClob when written as a locator.
- JDBC: Fix double JDBC driver registration with DriverManager.registerDriver().
- JDBC: Fix generated keys truncation.
- JDBC: Fix lob locator update and retrieval from AS400JDBCResultSet.
- JDBC: Fix logic so that ResultSet.relative(1) is same as ResultSet.next().
- JDBC: Fix long schema bug in library list.
- JDBC: Fix stream helper method.
- JDBC: Fix server trace bug.
- JDBC: Fix typo in byteLength variable.
- JDBC: Get database metadata from SYSIBM stored procedures if "metadata source" property is set to 1.
- JDBC: Ignore Warnings to allow users to specify list of SQL states to cause JDBC to ignore and not issue warnings.
- JDBC: Misc XML fixes to not rely on external parsers.
- JDBC: More resultset cursor navigation fixes for various abnormal scrolling.
- JDBC: Prohibit accidental JDBC Connection with userid or password of "".
- JDBC: Use connection property "translate hex" value in the algorithm to generate extended dynamic sql package name.
- Messages: Added new MessageFile.getMessage() method, with additional CCSID parameters.
- NetServer: Deprecated class; use ISeriesNetServer instead.
- Object description: Fixed StringIndexOutOfBoundsException.
- Object description: New method ObjectDescription.getObjectLockList().
- PTF: Added constants to represent new V6R1 status values.
- Print: Added method Printer.setAttributes(), to match functionality of RPrinter.
- RLA: Changes to verifyS38MSGRM() to better handle ClassCastException.
- System pool: Added 2 constructors, and isValidNameForSharedPool().
- System pool: Eliminated logic errors. Strip trailing blanks from returned String-valued attributes.
- System value: Enhanced javadoc and code comments.
- Trace: Add more tracing for invalid passwords.
- Trace: Added tracing of connection ID.
- Trace: Skip stack trace for "Class com.ibm.as400.access.Properties not found".
- Trace: If incorrect reply datastream header: Trace bytes, and disregard stream.
- Trace: Streamlined trace messages for 'GSSToken not available' and non-fatal ClassNotFoundException.
- User: Add getObjectsOwned() method.
</PRE>
<HR>
<H3><A NAME="62">Fixes and enhancements in JTOpen 6.2</A> <i>(released 2008-04-30)</i></H3>
<PRE>
- <i>Various:</i> Javadoc updates.
- <i>Various:</i> Corrected EventSetDescriptor argument, to eliminate IntrospectionException on some JVMs.
- Build: Fix for JTOpen bug 1924271: In build.xml, specify encoding for javac calls.
- Build: Removed JDBC version designation.
- Command call: When running programs/commands natively, set secondary language directory to match client locale.
- Connection pool: Check for connection expiration when connection returned to pool.
- Connection pool: Use SoftReference to eliminate circular reference and potential memory leak.
- Connection pool: Added diagnostic trace for when an active but expired JDBC connection is closed.
- Connection: Added null pointer check in AS400.getJobs().
- Connection: Corrected misspelled constant name.
- Connection: Use socket timeout when connecting if running in Java 1.4 or higher.
- Data area: Added methods to read/write unconverted bytes.
- Data conversion: Added setters and getters for numeral shaping, Bidi expand alef.
- Data conversion: Eliminated possible ArrayIndexOutOfBoundsException in ConvTableReader.fillCache(), for example when incorrect data CCSID is specified.
- Data conversion: Made the Mlog class non-public.
- IFS: Modifications for IFSFile.clearCachedAttributes() to clear all cached attributes.
- IFS: Enable operation on files larger than 2 gigabytes: IFSFileOutputStreamImplRemote.write(), IFSRandomAccessFile.seek().
- IFS: Updates to IFSFile.java and IFSJavaFile.java for symbolic link objects.
- JDBC: Add text "Connection.rollback()" to "autocommit exception" property description.
- JDBC: Add text "rollback" to "autocommit exception" property description and javadoc.
- JDBC: AS400JDBCDriver: Added JDBC version indicator.
- JDBC: Auto-commit property.
- JDBC: Beginning with Version 6 Release 1 of i5/OS, you must have *JOBCTL special authority for setQueryTimeout().
- JDBC: Change to not use sql package cache if the statement contains a lob since it could be a lob or lob locator on other connections.
- JDBC: Close statements to avoid statement leak.
- JDBC: Fix error when Statement.setMaxRows(count) is same number of rows in a resultset.
- JDBC: Fix for setCharacterStream to take into account multi-byte chars.
- JDBC: Fix for time when hour is 24 and minute is not 00.
- JDBC: Fix to signal truncation of data in CCSID 5035.
- JDBC: Get timeout property from DriverManager.getLoginTimeout.
- JDBC: Implementation of Decfloat SNaN.
- JDBC: Login timeout added to DriverManager properties.
- JDBC: Login timeout in milliseconds.
- JDBC: Make the 'autocommit exception' property effective for rollback.
- JDBC: XA Connection fixed to close cursor after commit.
- JDBC: Starting in V6R1, user must have *JOBCTL special authority to use query storage limit.
- JDBC: Starting in JDK 1.5, for numeric and decimal column types, exploit BigDecimal.toPlainString().
- NetServer: Fix for IseriesNetServer.java for authority check IOSYSCFG to include groups that a user belongs to.
- Permission: Changes due to regression test. Permission.java
- Permission: Updates to process QSYS IASP objects: Permission, PermissionAccessQSYS, and QSYSObjectPathName.
- Print: Fix for JTOpen bug 1551918: PrintObjectList: openSynchronously() twice.
- RLA: Fix for JTOpen bug 1847680: Introspection of Record fails due to bad RecordBeanInfo.java. Original problem reported in JTOpen bug 1779593: Correct EventSet for VetoablePropertyChange.
- Trace: Added tracing of connection ID.
- Trace: Added tracing of load source.
- Trace: Fix for JTOpen bug 1889391: Synchronized access to static variable SimpleDateFormat.
- Trace: Limit redundant checks for multiple Toolbox versions.
- Utilities: AboutToolbox: Added check for supported JDBC version.
</PRE>
<HR>
<H3><A NAME="61">Fixes and enhancements in JTOpen 6.1</A> <i>(released 2008-01-04)</i></H3>
<PRE>
- <i>Various:</i> Javadoc updates.
- AS400: Eliminate swallowed NullPointerException.
- AS400: If no Properties class found, trace a Diagnostic instead of a Warning.
- Command call: Add support to follow proxy command chain. Exploit PTF if V5R4.
- IFS: Correctly recognize QSYS objects, particularly PRTF objects.
- IFS: Eliminate double close requests from finalizer.
- JDBC: Add check for closed resultset when checking holdability.
- JDBC: Client Functional Level update.
- JDBC: Fix for cursor holdability of stored procedures.
- JDBC: Fix timestamp so that 24:00 on day n does not advance to 24:00 on day n+1.
- JDBC: Fix to ignore some warnings when sqlState starts with 00 or 02.
- JDBC: Get scroll type from cursor attrs if exist.
- JDBC: Match Native driver truncation on future releases when PreparedStatement.setString() is used.
- JDBC: Method JDLobLocator.free() not supported on V5R4 or earlier releases of System i.
- JDBC: NVARCHAR length fix.
- JDBC: Return "NCHAR" and "NVARCHAR" from getTypeName() for CCSIDs 13488 and 1200.
- JDBC: Return first occurrence of column when calling ResultSet.findColumn(String) when there are more than one column with same name.
- JDBC: Update getDatabaseMajorVersion and getDatabaseMinorVersion to reflect actual versions from host server.
- JDBC: isReadOnly method fix.
- JDBC: Fix for non-capitalized schema names in getProcedureColumns method.
- JDBC: Fix storesMixedCaseQuotedIdentifiers method to return false.
- JDBC: Do not re-use stale variables in reply datastream objects.
- PCML: Fix for JTOpen bug 1778759 - set the global isXPCML variable.
- Permissions: Permissions.commit() sensitivity of DLO object.
- Print: Add additional supported CPI values to SCS5553Writer.
- RLA: Add Note to readNextEqual() methods regarding locking.
- RLA: Change to ignore *NONE keys in addKeyFieldDescription().
- RLA: Corrected field length calculation for DBCS VARCHAR and VARGRAPHIC fields.
- RLA: Fix for JTOpen bug 1796143 - Writing to a multiple format file fails.
- System pool: Improve handling of shared pools.
- Vaccess: Deprecated last remaining un-deprecated class in package <tt>com.ibm.as400.vaccess</tt>: AS400JDBCDataSourcePane.
</PRE>
<HR>
<H3><A NAME="60">Fixes and enhancements in JTOpen 6.0</A> <i>(released 2007-08-20)</i></H3>
<PRE>
- Connection pool: Added a check to verify connection is not in use when checking the max lifetime and removing a connection from the pool.
- Data area: Fix for JTOpen bug 1737692 - allow users to write data containing single-quote characters.
- Data conversion: Updated various converter tables.
- FTP: Add support for EPSV and EPRT.
- IFS: Updated getCanonicalPath() to remove '.' and '..' from paths.
- IFS: Updated listObjectAttrs() to see if a file handle has already been opened.
- IFS: Replaced get32bit() call which was treating 4-byte byte stream fields as signed with BinaryConverter methods.
- IFS: Changes to IFSFile.enumerateFiles() to better handle when objects are filtered.
- IFS: Updated to search by restart name if accessing QSYS.LIB in an IASP.
- JarMaker: Updated AS400ToolboxJarMaker to extend ToolboxJarMaker.
- JDBC: Added various getters/setters to AS400JDBCDataSource to match URL style properties.
- JDBC: Added getServerJobIdentifier() to JDConnectionProxy.
- JDBC: Return names in DatabaseMetaData.getPrimaryKeys() instead of null.
- JDBC: Added new class AS400JDBCStatementListener.
- JDBC: Fix error when Double value is infinity and getFloat(x) is called.
- JDBC: Updated read/write flag for DataTruncation warnings and exceptions.
- JDBC: Updated DataSource getUser() method to retrieve user from AS400 object.
- JDBC: Added check for closed cursor in absolute method.
- JDBC: Updated setPoolable() method name in JDStatementProxy.
- JDBC: Allow delimited libraries in library list.
- JDBC: Updated DatabaseMetaData.getProcedures() to return correct procedure name.
- JDBC: Allow rollback to throw XAException on a non-zero return code.
- JDBC: Added "variable field compression" connection property.
- JDBC: Added statement listener support.
- JDBC: Throw exception on Connection.commit() if auto-commit is enabled.
- JDBC: Fix performace related bug that caused ResultSet not to close after cursor was implicitly closed.
- JDBC: Use SQLState instead of SQLCode for flag of errors/warnings.
- JDBC: Retrieve cursor attributes from a stored procedure.
- Job list: Fix for JTOpen Bug 1728765 - allow more than one value for the selection criteriat that are suppose to allow multiple values.
- Job log: Added the ability to retrieve all attributes for a message.
- Job log: Updated javadoc to list attributes that can be accessed for a QueuedMessage object.
- Object description: Modified exists() method to handle CPF9811 message.
- ObjectList: Fix for JTOpen Bug 1725312 - fix to allocate correct storage amount for getObjects().
- ObjectList: Updated javadoc for getObject() to indicate that the listOffset parameter may be greater than "or equal to" zero.
- ObjectList: Updated addObjectAuthorityCritiria() to enforce documented interface restrictions.
- QueuedMessage: Added the ability to retrieve all attributes for a Job Log message.
- System pool: Added the ability to set the "system-related pool identifier".
- System status: Added the ability to set the "system-related pool identifier".
- Trace: Fix to ensure tracing is off if a category is not set.
</PRE>
<HR>