[ https://issues.apache.org/jira/browse/THRIFT-787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12915455#action_12915455 ]
Christian Lavoie commented on THRIFT-787: ----------------------------------------- I generated code with all generators, using a simplistic enum: {code} enum MyEnum { ZERO, ONE, THREE = 3, FOUR, FORTYTWO = 42, FORTYTHREE, TWELVE = 12, THIRTEEN } {code} {noformat} 9050e1c444bb9ec823857e68f1ea3c6e tmp-without-787/gen-as3/MyEnum.as e364dd1d37f48f5ee49898273d583ac3 tmp-without-787/gen-cocoa/test.h 13353d093c7fbfb6d34e18c5e209834e tmp-without-787/gen-cocoa/test.m 0e35d18e6b3d161050416ef65f589a7b tmp-without-787/gen-cpp/test_constants.cpp 0305410c79ead19f7a21da83005bbc4d tmp-without-787/gen-cpp/test_constants.h d614d268bf718712f9857febe59a87a5 tmp-without-787/gen-cpp/test_types.cpp f4202dd6e56eb234e9ff319fd5248b58 tmp-without-787/gen-cpp/test_types.h 44537aa869bdf2c22d2a40427eb7bfbb tmp-without-787/gen-csharp/MyEnum.cs 5cc5162f68c30a8ff998f0ba28afd1ec tmp-without-787/gen-erl/test_constants.hrl 01ea91d8c4d3ba7fe0c4568aecf66636 tmp-without-787/gen-erl/test_types.erl 80fcb1e546073b806fc1676176330477 tmp-without-787/gen-erl/test_types.hrl 515131db34af21096383eadc718905ab tmp-without-787/gen-hs/Test_Consts.hs c65c348912562e58a25d4448b5881f06 tmp-without-787/gen-hs/Test_Types.hs 7de88e95d2037748dd0f3917b5645265 tmp-without-787/gen-html/index.html c6e33f8d8d4b88f37d666ed8392d24cb tmp-without-787/gen-html/style.css 6d86e7f688a70ab75289fbfe14f67f39 tmp-without-787/gen-html/test.html 53183bfed8fb46399da51ad849758e4e tmp-without-787/gen-java/MyEnum.java 1f32e388a639a566394a1f6611cebea6 tmp-without-787/gen-javame/MyEnum.java ae31c442df8f2982efbd3bbcbf6c6ddd tmp-without-787/gen-js/test_types.js ad2f732e3f82c4d02baf90b5800ed4b0 tmp-without-787/gen-ocaml/test_consts.ml 27a042e3e8a036dbcb374a8103ea7d35 tmp-without-787/gen-ocaml/test_types.ml 0e2fe71b03b241ff4c2b5c1a4b36e208 tmp-without-787/gen-ocaml/test_types.mli de37caf4bb38ca4399b31850dddcd0ec tmp-without-787/gen-perl/Constants.pm 07be59e6b0ce725187869ebc1d2c9a14 tmp-without-787/gen-perl/Types.pm fd9fd449f522a983f545d3dbb038ad4b tmp-without-787/gen-php/test/test_types.php d41d8cd98f00b204e9800998ecf8427e tmp-without-787/gen-py/__init__.py fcb6376ae0410613e38952e6b0395814 tmp-without-787/gen-py/test/__init__.py 14e2d529821f06f285353a86634e673b tmp-without-787/gen-py/test/constants.py 94c4a93659d81bc9b48ad2519ea9a37f tmp-without-787/gen-py/test/ttypes.py 8096a712cd33880d33dca92b11671472 tmp-without-787/gen-rb/test_constants.rb 28a82f55b1a1d74e5e7882292f1eab8b tmp-without-787/gen-rb/test_types.rb 76c2d5049d0c0b0df90cec6760815ecb tmp-without-787/gen-st/test.st 718d8596a14d123d83afb0d5d6d6fd96 tmp-without-787/gen-xsd/test_xsd.php {noformat} Then again, after apply my v2 patch: {noformat} 9050e1c444bb9ec823857e68f1ea3c6e tmp-with-787/gen-as3/MyEnum.as e364dd1d37f48f5ee49898273d583ac3 tmp-with-787/gen-cocoa/test.h 13353d093c7fbfb6d34e18c5e209834e tmp-with-787/gen-cocoa/test.m 0e35d18e6b3d161050416ef65f589a7b tmp-with-787/gen-cpp/test_constants.cpp 0305410c79ead19f7a21da83005bbc4d tmp-with-787/gen-cpp/test_constants.h d614d268bf718712f9857febe59a87a5 tmp-with-787/gen-cpp/test_types.cpp f4202dd6e56eb234e9ff319fd5248b58 tmp-with-787/gen-cpp/test_types.h 44537aa869bdf2c22d2a40427eb7bfbb tmp-with-787/gen-csharp/MyEnum.cs 5cc5162f68c30a8ff998f0ba28afd1ec tmp-with-787/gen-erl/test_constants.hrl 01ea91d8c4d3ba7fe0c4568aecf66636 tmp-with-787/gen-erl/test_types.erl 80fcb1e546073b806fc1676176330477 tmp-with-787/gen-erl/test_types.hrl 515131db34af21096383eadc718905ab tmp-with-787/gen-hs/Test_Consts.hs c65c348912562e58a25d4448b5881f06 tmp-with-787/gen-hs/Test_Types.hs 7de88e95d2037748dd0f3917b5645265 tmp-with-787/gen-html/index.html c6e33f8d8d4b88f37d666ed8392d24cb tmp-with-787/gen-html/style.css 6d86e7f688a70ab75289fbfe14f67f39 tmp-with-787/gen-html/test.html 53183bfed8fb46399da51ad849758e4e tmp-with-787/gen-java/MyEnum.java 1f32e388a639a566394a1f6611cebea6 tmp-with-787/gen-javame/MyEnum.java ae31c442df8f2982efbd3bbcbf6c6ddd tmp-with-787/gen-js/test_types.js ad2f732e3f82c4d02baf90b5800ed4b0 tmp-with-787/gen-ocaml/test_consts.ml 27a042e3e8a036dbcb374a8103ea7d35 tmp-with-787/gen-ocaml/test_types.ml 0e2fe71b03b241ff4c2b5c1a4b36e208 tmp-with-787/gen-ocaml/test_types.mli de37caf4bb38ca4399b31850dddcd0ec tmp-with-787/gen-perl/Constants.pm 07be59e6b0ce725187869ebc1d2c9a14 tmp-with-787/gen-perl/Types.pm fd9fd449f522a983f545d3dbb038ad4b tmp-with-787/gen-php/test/test_types.php d41d8cd98f00b204e9800998ecf8427e tmp-with-787/gen-py/__init__.py fcb6376ae0410613e38952e6b0395814 tmp-with-787/gen-py/test/__init__.py 14e2d529821f06f285353a86634e673b tmp-with-787/gen-py/test/constants.py 94c4a93659d81bc9b48ad2519ea9a37f tmp-with-787/gen-py/test/ttypes.py 8096a712cd33880d33dca92b11671472 tmp-with-787/gen-rb/test_constants.rb 28a82f55b1a1d74e5e7882292f1eab8b tmp-with-787/gen-rb/test_types.rb e74e255a131e643e8a887efcebe31156 tmp-with-787/gen-st/test.st 718d8596a14d123d83afb0d5d6d6fd96 tmp-with-787/gen-xsd/test_xsd.php {noformat} They're the same files, so the patch is clearly a no-op from that perspective. Also, I read through the generated code, it is "obviously correct", meaning that {{ZERO}} matches with {{0}}, {{THIRTEEN}} with {{13}}, ... in all generated code. Diff'ing leads to the same conclusion: {noformat} $ diff --recursive tmp-with* diff --recursive tmp-with-787/gen-st/test.st tmp-without-787/gen-st/test.st 15c15 < !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 15:57'! --- > !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 > 15:54'! 19c19 < !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 15:57'! --- > !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 > 15:54'! 23c23 < !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 15:57'! --- > !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 > 15:54'! 27c27 < !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 15:57'! --- > !Test class methodsFor: 'as yet uncategorized' stamp: 'thrift 09/27/2010 > 15:54'! {noformat} The only difference is some timestamp in the st generator. > Enums are not read correctly > ---------------------------- > > Key: THRIFT-787 > URL: https://issues.apache.org/jira/browse/THRIFT-787 > Project: Thrift > Issue Type: Bug > Components: Haskell - Compiler > Affects Versions: 0.1 > Environment: All platforms > Reporter: Spiridon Eliopoulos > Assignee: Spiridon Eliopoulos > Priority: Minor > Fix For: 0.5 > > Attachments: 0001--THRIFT-787-Fix-bug-in-enum-deserialization.patch, > v2-thrift-read-enums-cleanup.patch > > > The Haskell (and OCaml) generators emit incorrect code for enum > deserilalization. The value counter is not reset to -1 before the > deserialization function is generated. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.