[TGEN-1] generators/shuffle violates contract of Comparable Created: 13/Oct/12 Updated: 14/Oct/12 Resolved: 14/Oct/12 |
|
| Status: | Resolved |
| Project: | test.generative |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | Ben Smith-Mannschott | Assignee: | Ben Smith-Mannschott |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Mac OS X 10.8.2 |
||
| Attachments: |
|
| Patch: | Code |
| Approval: | Accepted |
| Description |
|
JDK 7's sort function is stricter about verifying that implementations of the comparison function actually obey their contract. It will even helpfully throw an exception when this is not the case: java.lang.IllegalArgumentException: Comparison method violates its general contract! The root cause is this gem: generators.clj (defn shuffle
"Shuffle coll"
[coll]
(sort-by (fn [_] (long)) coll))
Which does not work on JDK7 since TimSort is clever enough to detect that the ordering function is behaving inconsistently, resulting in the previously mentioned exception. Also, this is just a bad idea:
|
| Comments |
| Comment by Ben Smith-Mannschott [ 14/Oct/12 11:13 AM ] |
|
Fixed by 5a59bf0f on test.generative. |
[TGEN-2] ASCII DEL (0x7f, 127) is not a printable character Created: 13/Oct/12 Updated: 14/Oct/12 Resolved: 14/Oct/12 |
|
| Status: | Resolved |
| Project: | test.generative |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | Ben Smith-Mannschott | Assignee: | Ben Smith-Mannschott |
| Resolution: | Completed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Patch: | Code |
| Approval: | Accepted |
| Description |
|
ASCII 127 is a control character. Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex 0 00 NUL 16 10 DLE 1 01 SOH 17 11 DC1 2 02 STX 18 12 DC2 3 03 ETX 19 13 DC3 4 04 EOT 20 14 DC4 5 05 ENQ 21 15 NAK 6 06 ACK 22 16 SYN 7 07 BEL 23 17 ETB 8 08 BS 24 18 CAN 9 09 HT 25 19 EM 10 0A LF 26 1A SUB 11 0B VT 27 1B ESC 12 0C FF 28 1C FS 13 0D CR 29 1D GS 14 0E SO 30 1E RS 15 0F SI 31 1F US 127 7F DEL |
| Comments |
| Comment by Ben Smith-Mannschott [ 14/Oct/12 11:14 AM ] |
|
Fixed by a73c11e3 on test.generative. |