PHP 4.0 Bug #6616 Updated: ext/java: reassigning values for variables causes segfault
| From: | Bug Database | Date: | Wed, 13 Sep 2000 05:43:59 +0000 |
| Subject: | PHP 4.0 Bug #6616 Updated: ext/java: reassigning values for variables causes segfault | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-33086@lists.php.net to get a copy of this message | ||
ID: 6616
User Update by: bridge@gsnet.com
Status: Open
Bug Type: *General Issues
Description: ext/java: reassigning values for variables causes segfault
A workaround is to avoid using arrays altogether.
Array data can be transferred from java to php
as a String using implode/explode.
Previous Comments:
---------------------------------------------------------------------------
[2000-09-08 12:00:44] bridge@gsnet.com
Hmmm.... Although it doesn't crash as much when I don't reassign values to
variables which hold results from java calls, it still dumps core occasionally.... :(
---------------------------------------------------------------------------
[2000-09-07 17:53:04] bridge@gsnet.com
If I call a java object twice from PHP-4.0.2 and assign the result
to the same variable, it generates a segmentation fault
(under both ibm-jdk118 and Blackdown JDK1.2.2-RC4). If I
change the second occurrence of "aStrings" to, say, "aStrings2"
it works fine.
Note that to reproduce this problem, you may need
to reload it more than once. It crashes about as many times as
it works on my configuration.
Heres' the PHP code:
<?
$jTest = new Java("PHPTest");
print("Here is an Array of Strings:<br>n");
$aStrings = $jTest->getAnArrayOfStrings();
for($j=0; $j<sizeof($aStrings); $j++) {
print("<i>".$j."=".$aStrings[$j]."</i><br>n");
}
print("<br>");
print("Here it is again:<br>n");
$aStrings=$jTest->getAnArrayOfStrings();
for($j=0; $j<sizeof($aStrings); $j++) {
print("<i>".$j."=".$aStrings[$j]."</i><br>n");
}
?>
Here's the Java code from PHPTest.java
public class PHPTest {
public String getAString() {
return "This is a String";
}
public String[] getAnArrayOfStrings() {
return new String[]{"Element 1", "Element 2", "Element 3",
"Element 4"};
}
}
The non-default part of my php.ini:
[java]
java.class.path=/usr/local/lib/php_java.jar:/home/bridge/gsnlib/classes:/usr/local/lib/php_java.jar:/home/bridge/externlib:/home/bridge/externlib/Una_Enterprise.zip
java.library.path=/home/bridge/externlib/modules
java.library=/usr/local/jdk1.2.2-RC4/jre/lib/i386/libjava.so
extension_dir=/home/bridge/externlib/modules
extension=libphp_java.so
From php-4.0.2's config.status:
./configure --with-apxs=/usr/local/apache/bin/apxs --with-java --with-mysql
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=6616