PHP 4.0 Bug #6616 Updated: ext/java: reassigning values for variables causes segfault
| From: | sniper@php.net | Date: | Tue, 21 Nov 2000 08:30:40 +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-38756@lists.php.net to get a copy of this message | ||
ID: 6616
Updated by: sniper
Reported By: bridge@gsnet.com
Status: Feedback
Bug Type: Unknown/Other Function
Assigned To:
Comments:
Does this happen with PHP 4.0.3pl1 or preferrably
with the latest snapshot from http://snaps.php.net/ ?
--Jani
Previous Comments:
---------------------------------------------------------------------------
[2000-09-13 01:43:59] bridge@gsnet.com
A workaround is to avoid using arrays altogether.
Array data can be transferred from java to php
as a String using implode/explode.
---------------------------------------------------------------------------
[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