[
https://issues.apache.org/jira/browse/THRIFT-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16394887#comment-16394887
]
ASF GitHub Bot commented on THRIFT-4476:
----------------------------------------
Github user ozymaxx commented on the issue:
https://github.com/apache/thrift/pull/1496
I merged the changes in the master branch into mine, and ran the builds.
There are still some errors:
On AppVeyor:
```
3125"C:\projects\build\MSVC2017\x64\INSTALL.vcxproj" (default target) (1) ->
3126"C:\projects\build\MSVC2017\x64\ALL_BUILD.vcxproj" (default target) (3)
->
3127"C:\projects\build\MSVC2017\x64\test\cpp\TestServer.vcxproj" (default
target) (32) ->
3128(ClCompile target) ->
3129 C:\projects\thrift\test\cpp\src\TestServer.cpp(799): error C3861:
'sleep': identifier not found
[C:\projects\build\MSVC2017\x64\test\cpp\TestServer.vcxproj]
3130
3131 24 Warning(s)
3132 1 Error(s)
```
On Travis:
```
depbase=`echo gen-c_glib/t_test_second_service.lo | sed
's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I../.. -I../../lib/cpp/src/thrift -I../../lib/c_glib/src/thrift
-I../../lib/c_glib/src -Igen-c_glib -g -Wall -Wextra -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT
gen-c_glib/t_test_second_service.lo -MD -MP -MF $depbase.Tpo -c -o
gen-c_glib/t_test_second_service.lo gen-c_glib/t_test_second_service.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../..
-I../../lib/cpp/src/thrift -I../../lib/c_glib/src/thrift -I../../lib/c_glib/src
-Igen-c_glib -g -Wall -Wextra -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT
gen-c_glib/t_test_second_service.lo -MD -MP -MF
gen-c_glib/.deps/t_test_second_service.Tpo -c
gen-c_glib/t_test_second_service.c -fPIC -DPIC -o
gen-c_glib/.libs/t_test_second_service.o
gen-c_glib/t_test_second_service.c: In function
't_test_second_service_processor_process_secondtest_string':
gen-c_glib/t_test_second_service.c:397:3: error: unknown type name
'TTestSecondServiceSecondtestStringArgs'; did you mean
'TTestSecondServiceProcessorClass'?
TTestSecondServiceSecondtestStringArgs * args =
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TTestSecondServiceProcessorClass
gen-c_glib/t_test_second_service.c:398:19: error:
'T_TEST_TYPE_SECOND_SERVICE_SECONDTEST_STRING_ARGS' undeclared (first use in
this function); did you mean 'T_TEST_TYPE_SECOND_SERVICE_PROCESSOR'?
g_object_new (T_TEST_TYPE_SECOND_SERVICE_SECONDTEST_STRING_ARGS, NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
T_TEST_TYPE_SECOND_SERVICE_PROCESSOR
gen-c_glib/t_test_second_service.c:398:19: note: each undeclared identifier
is reported only once for each function it appears in
gen-c_glib/t_test_second_service.c:408:5: error: unknown type name
'TTestSecondServiceSecondtestStringResult'; did you mean
'TTestSecondServiceProcessorClass'?
TTestSecondServiceSecondtestStringResult * result_struct;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TTestSecondServiceProcessorClass
gen-c_glib/t_test_second_service.c:417:35: error:
'T_TEST_TYPE_SECOND_SERVICE_SECONDTEST_STRING_RESULT' undeclared (first use in
this function); did you mean
'T_TEST_TYPE_SECOND_SERVICE_SECONDTEST_STRING_ARGS'?
result_struct = g_object_new
(T_TEST_TYPE_SECOND_SERVICE_SECONDTEST_STRING_RESULT, NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
T_TEST_TYPE_SECOND_SERVICE_SECONDTEST_STRING_ARGS
depbase=`echo gen-c_glib/t_test_thrift_test.lo | sed
's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I../.. -I../../lib/cpp/src/thrift -I../../lib/c_glib/src/thrift
-I../../lib/c_glib/src -Igen-c_glib -g -Wall -Wextra -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT
gen-c_glib/t_test_thrift_test.lo -MD -MP -MF $depbase.Tpo -c -o
gen-c_glib/t_test_thrift_test.lo gen-c_glib/t_test_thrift_test.c &&\
mv -f $depbase.Tpo $depbase.Plo
depbase=`echo gen-c_glib/t_test_thrift_test_types.lo | sed
's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I../.. -I../../lib/cpp/src/thrift -I../../lib/c_glib/src/thrift
-I../../lib/c_glib/src -Igen-c_glib -g -Wall -Wextra -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -MT
gen-c_glib/t_test_thrift_test_types.lo -MD -MP -MF $depbase.Tpo -c -o
gen-c_glib/t_test_thrift_test_types.lo gen-c_glib/t_test_thrift_test_types.c &&\
mv -f $depbase.Tpo $depbase.Plo
Makefile:654: recipe for target 'gen-c_glib/t_test_second_service.lo' failed
```
```
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by
[email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by
[email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by
[email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
npm ERR! missing: [email protected], required by [email protected]
Makefile:811: recipe for target 'check-local' failed
make[4]: *** [check-local] Error 1
make[4]: Leaving directory '/thrift/src/lib/js'
Makefile:686: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
make[3]: Leaving directory '/thrift/src/lib/js'
Makefile:536: recipe for target 'check-recursive' failed
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory '/thrift/src/lib/js'
Makefile:580: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/thrift/src/lib'
Makefile:662: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
```
Am I missing something? @jeking3
> Typecasting problem on list items
> ---------------------------------
>
> Key: THRIFT-4476
> URL: https://issues.apache.org/jira/browse/THRIFT-4476
> Project: Thrift
> Issue Type: Bug
> Components: Java - Compiler
> Affects Versions: 0.11.0
> Reporter: Ozan Can Altiok
> Priority: Major
>
> I was trying to add the following into a thrift interface file.
> {{const list<double> timeCoefficients = [24, 60, 60, 1000, 1000, 1000]}}
> With the definition given above the {{.thrift}} file compiled properly.
> However, I noticed that in Python, the items in {{timeCoefficients}} are
> considered to be integer although the list has been defined to include items
> of {{double}} type. Then I modified the definition as given below to make
> sure all the items are of type {{double}}.
> {{const list<double> timeCoefficients = [24.0, 60.0, 60.0, 1000.0, 1000.0,
> 1000.0]}}
> After the change, I ran into the following error during compilation.
> {{[ERROR] .../TimeCoefficients.java:[402,48] error: no suitable method found
> for add(int)}}
> {{[ERROR] method Collection.add(Double) is not applicable}}
> {{[ERROR] (argument mismatch; int cannot be converted to Double)}}
> {{[ERROR] method List.add(Double) is not applicable}}
> {{[ERROR] (argument mismatch; int cannot be converted to Double)}}
> Next, I changed the line as follows and the compilation became successful.
> {{const list<double> timeCoefficients = [24.1, 60.1, 60.1, 1000.1, 1000.1,
> 1000.1]}}
> When I reviewed the generated Java source files, I discovered that
> {{const list<double> timeCoefficients = [24, 60, 60, 1000, 1000, 1000]}}
> compiles to
> {{public static final java.util.List<java.lang.Double> timeCoefficients = new
> java.util.ArrayList<java.lang.Double>();}}
> {{static {}}
> {{ timeCoefficients.add((double)24);}}
> {{ timeCoefficients.add((double)60);}}
> {{ timeCoefficients.add((double)60);}}
> {{ timeCoefficients.add((double)1000);}}
> {{ timeCoefficients.add((double)1000);}}
> {{ timeCoefficients.add((double)1000);}}
> {{}}}
> whilst
> {{const list<double> timeCoefficients = [24.0, 60.0, 60.0, 1000.0, 1000.0,
> 1000.0]}}
> compiles to
> {{public static final java.util.List<java.lang.Double> timeCoefficients = new
> java.util.ArrayList<java.lang.Double>();}}
> {{static {}}
> {{ timeCoefficients.add(24);}}
> {{ timeCoefficients.add(60);}}
> {{ timeCoefficients.add(60);}}
> {{ timeCoefficients.add(1000);}}
> {{ timeCoefficients.add(1000);}}
> {{ timeCoefficients.add(1000);}}
> {{}}}
> which leads to an error.
> When I modified this line as follows
> {{const list<double> timeCoefficients = [24.1, 60.1, 60.1, 1000.1, 1000.1,
> 1000.1]}}
> this line compiled to
> {{public static final java.util.List<java.lang.Double> timeCoefficients = new
> java.util.ArrayList<java.lang.Double>();}}
> {{static {}}
> {{ timeCoefficients.add(24.1);}}
> {{ timeCoefficients.add(60.1);}}
> {{ timeCoefficients.add(60.1);}}
> {{ timeCoefficients.add(1000.1);}}
> {{ timeCoefficients.add(1000.1);}}
> {{ timeCoefficients.add(1000.1);}}
> {{}}}
> My guess is that, even if I put {{.0}} at the end of each numeric constant,
> on the Java side, Thrift compiler considers them to be {{double}} and does no
> typecasts. However, the {{.0}} s are getting lost somewhere and the items
> become integers in the generated Java code. Thus, when it comes to populating
> the array, Java cannot succeed. {{Double}} s cannot be unboxed to integer and
> Java thinks {{int}} and {{Double}} are not related.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)