You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "BeUKing (JIRA)" <ji...@apache.org> on 2011/03/09 07:07:59 UTC
[jira] Created: (THRIFT-1086) PHP client return wrong value when
connect to Java Thrift Service
PHP client return wrong value when connect to Java Thrift Service
------------------------------------------------------------------
Key: THRIFT-1086
URL: https://issues.apache.org/jira/browse/THRIFT-1086
Project: Thrift
Issue Type: Bug
Reporter: BeUKing
My Java Serivce implement thrift:
i32 get_point(1:required i32 userId)
When use PHP to connect to my service, sometimes, PHP get wrong value (Java client always return right value)
Here is my PHP code:
Declare client:
$this->socket = new TSocket($this->_host, $this->_port, true);
$this->transport = new TFramedTransport($this->socket);
$this->protocol = new TBinaryProtocolAccelerated($this->transport);
$this->client = new ServiceReadClient($this->protocol);
Declare method
private function openTransport()
{
if(!$this->transport->isOpen()){
$this->transport->open();
}
}
private function closeTransport()
{
if($this->transport->isOpen()){
$this->transport->close();
}
}
public function get_point($userId)
{
$this->openTransport();
try
{
$data = $this->client->get_points($userId);
}
catch (Exception $e)
{
$this->closeTransport();
return array ();
}
return $data;
}
-----------------------------
When I change my thrift to
struct Point{
1:required i32 point
}
Point get_jpoint(1:required i32 userId)
Result: PHP client always return correct value.
-----------------------------
I think that is a bug of thrift.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (THRIFT-1086) PHP client return wrong value when
connect to Java Thrift Service
Posted by "BeUKing (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/THRIFT-1086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
BeUKing updated THRIFT-1086:
----------------------------
Description:
My Java Serivce implement thrift:
i32 get_point(1:required i32 userId)
When use PHP to connect to my service, sometimes, PHP get wrong value (Java client always return right value)
Here is my PHP code:
Declare client:
$this->socket = new TSocket($this->_host, $this->_port, true);
$this->transport = new TFramedTransport($this->socket);
$this->protocol = new TBinaryProtocolAccelerated($this->transport);
$this->client = new ServiceReadClient($this->protocol);
Declare method
private function openTransport()
{
if(!$this->transport->isOpen()){
$this->transport->open();
}
}
private function closeTransport()
{
if($this->transport->isOpen()){
$this->transport->close();
}
}
public function get_point($userId)
{
$this->openTransport();
try
{
$data = $this->client->get_points($userId);
}
catch (Exception $e)
{
$this->closeTransport();
return array ();
}
return $data;
}
-----------------------------
When I change my thrift to
struct Point{
1:required i32 point
}
Point get_jpoint(1:required i32 userId)
Result: PHP client always return correct value.
-----------------------------
I think that is a bug of thrift.
was:
My Java Serivce implement thrift:
i32 get_point(1:required i32 userId)
When use PHP to connect to my service, sometimes, PHP get wrong value (Java client always return right value)
Here is my PHP code:
Declare client:
$this->socket = new TSocket($this->_host, $this->_port, true);
$this->transport = new TFramedTransport($this->socket);
$this->protocol = new TBinaryProtocolAccelerated($this->transport);
$this->client = new ServiceReadClient($this->protocol);
Declare method
private function openTransport()
{
if(!$this->transport->isOpen()){
$this->transport->open();
}
}
private function closeTransport()
{
if($this->transport->isOpen()){
$this->transport->close();
}
}
public function get_point($userId)
{
$this->openTransport();
try
{
$data = $this->client->get_points($userId);
}
catch (Exception $e)
{
$this->closeTransport();
return array ();
}
return $data;
}
-----------------------------
When I change my thrift to
struct Point{
1:required i32 point
}
Point get_jpoint(1:required i32 userId)
Result: PHP client always return correct value.
-----------------------------
I think that is a bug of thrift.
> PHP client return wrong value when connect to Java Thrift Service
> ------------------------------------------------------------------
>
> Key: THRIFT-1086
> URL: https://issues.apache.org/jira/browse/THRIFT-1086
> Project: Thrift
> Issue Type: Bug
> Reporter: BeUKing
>
> My Java Serivce implement thrift:
> i32 get_point(1:required i32 userId)
> When use PHP to connect to my service, sometimes, PHP get wrong value (Java client always return right value)
> Here is my PHP code:
> Declare client:
> $this->socket = new TSocket($this->_host, $this->_port, true);
> $this->transport = new TFramedTransport($this->socket);
> $this->protocol = new TBinaryProtocolAccelerated($this->transport);
> $this->client = new ServiceReadClient($this->protocol);
> Declare method
> private function openTransport()
> {
> if(!$this->transport->isOpen()){
> $this->transport->open();
> }
> }
> private function closeTransport()
> {
> if($this->transport->isOpen()){
> $this->transport->close();
> }
> }
> public function get_point($userId)
> {
> $this->openTransport();
> try
> {
> $data = $this->client->get_points($userId);
> }
> catch (Exception $e)
> {
> $this->closeTransport();
> return array ();
> }
> return $data;
> }
> -----------------------------
> When I change my thrift to
> struct Point{
> 1:required i32 point
> }
> Point get_jpoint(1:required i32 userId)
> Result: PHP client always return correct value.
> -----------------------------
> I think that is a bug of thrift.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira