Zen Cart Logo
Forums / Bug Reports / [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

[Done v1.5.5] PHP 5.4 warnings: Illegal string offset

Locked

Views: 51,068

Results 1 to 20 of 39
This thread is locked. New replies are disabled.
19 Nov 2012, 7:27 PM
#1
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,065
Plugin Contributions:
56

[Done v1.5.5] PHP 5.4 warnings: Illegal string offset

Using a stock v1.5.1 install (localhost) running php 5.4.8 on Windows 7. Added the product New v1.2 -> Downloads -> Single Download to my cart, signed in and clicked the Checkout button. I was properly redirected to the checkout_payment page, but had two debug*.log files generated:

[19-Nov-2012 20:12:07 Europe/Berlin] PHP Warning:  Illegal string offset 'cost' in C:\xampp\htdocs\v1.5.1\includes\classes\order.php on line 355

[19-Nov-2012 20:12:07 Europe/Berlin] PHP Warning:  Illegal string offset 'title' in C:\xampp\htdocs\v1.5.1\includes\modules\pages\checkout_shipping\header_php.php on line 88
[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'cost' in C:\xampp\htdocs\v1.5.1\includes\classes\order.php on line 355

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\classes\shipping.php on line 32

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\classes\shipping.php on line 32

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\modules\order_total\ot_shipping.php on line 41

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\modules\order_total\ot_shipping.php on line 41

In each case, the illegal offset is associated with an undefined array element. For example, line 355 of order.php contains:

                        'shipping_cost' => $_SESSION['shipping']['cost'],

I'm not quite sure how to proceed. Are these warnings indicative of something that might become errors in a future version of PHP?

19 Nov 2012, 9:30 PM
#2
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,065
Plugin Contributions:
56

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

OK, according to http://php.net/manual/en/language.types.string.php:

"As of PHP 5.4 string offsets have to either be integers or integer-like strings, otherwise a warning will be thrown. Previously an offset like "foo" was silently cast to 0."

It looks like a relatively small change to three files removes the warning:

/includes/modules/pages/checkout_shipping/header_php.php, starting around line 70:

/*-bof BUGFIX: lat9-d
  require(DIR_WS_CLASSES . 'order.php');
  $order = new order;
  -eof BUGFIX: lat9-d */
// register a random ID in the session to check throughout the checkout procedure
// against alterations in the shopping cart contents
if (isset($_SESSION['cart']->cartID)) {
  if (!isset($_SESSION['cartID']) || $_SESSION['cart']->cartID != $_SESSION['cartID']) {
    $_SESSION['cartID'] = $_SESSION['cart']->cartID;
  }
} else {
  zen_redirect(zen_href_link(FILENAME_TIME_OUT));
}

// if the order contains only virtual products, forward the customer to the billing page as
// a shipping address is not needed
//  if ($order->content_type == 'virtual') { BUGFIX: lat9-d
  if ($_SESSION['cart']->get_content_type() == 'virtual') {  /* BUGFIX: lat9-a */
//    $_SESSION['shipping'] = 'free_free';  BUGFIX: lat9-d
    $_SESSION['shipping']['title'] = 'free_free';
    $_SESSION['shipping']['id'] = 'free_free';  /* BUGFIX: lat9-a */
    $_SESSION['shipping']['cost'] = 0;  /*BUGFIX: lat9-a */
    $_SESSION['sendto'] = false;
    zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
  }
  
  require(DIR_WS_CLASSES . 'order.php');  /* BUGFIX: lat9-a */
  $order = new order;  /* BUGFIX: lat9-a */
  

/includes/modules/pages/checkout_payment/header_php.php (line 36):

if (isset($_SESSION['shipping']['id']) && $_SESSION['shipping']['id'] == 'free_free' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') /*-bof BUGFIX lat9-a */ && $_SESSION['cart']->get_content_type() != 'virtual' /*-eof BUGFIX lat9-a */ && $_SESSION['cart']->show_total() < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {
  zen_redirect(zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}

/includes/modules/pages/checkout_confirmation/header_php.php (line 43):

if (isset($_SESSION['shipping']['id']) && $_SESSION['shipping']['id'] == 'free_free' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') /*-bof BUGFIX lat9-a */ && $_SESSION['cart']->get_content_type() != 'virtual' /*-eof BUGFIX lat9-a */ && $_SESSION['cart']->show_total() < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {
23 Nov 2012, 5:30 PM
#3
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,065
Plugin Contributions:
56

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

OK, make that four files ...

/includes/modules/order_total/ot_shipping.php (line 77 in v1.5.1); change from

        if ($_SESSION['shipping'] == 'free_free') {
          $order->info['shipping_method'] = FREE_SHIPPING_TITLE;
          $order->info['shipping_cost'] = 0;
        }

to

        if ($_SESSION['shipping']['id'] == 'free_free') {
          $order->info['shipping_method'] = FREE_SHIPPING_TITLE;
          $order->info['shipping_cost'] = 0;
        }
6 Feb 2013, 9:08 PM
#4
rozdesignz avatar

rozdesignz

Zencart Website Owner

Join Date:
Aug 2011
Location:
Tampa Bay, Florida USA
Posts:
17
Plugin Contributions:
0

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

[04-Feb-2013 06:37:25 Australia/Melbourne] PHP Warning: Illegal string offset 'cost' in /../../../htdocs/store/includes/classes/order.php on line 349

not sure how to remedy this? thanks, Lora

7 Feb 2013, 2:08 PM
#5
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,065
Plugin Contributions:
56

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

rozdesignz:

[04-Feb-2013 06:37:25 Australia/Melbourne] PHP Warning: Illegal string offset 'cost' in /../../../htdocs/store/includes/classes/order.php on line 349

not sure how to remedy this? thanks, Lora
Lora, what shipping module are you using?

17 Mar 2013, 6:00 PM
#6
design75 avatar

design75

Totally Zenned

Join Date:
Dec 2009
Location:
Amersfoort, The Netherlands
Posts:
2,862
Plugin Contributions:
5

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

I am getting this error:

[17-Mar-2013 16:29:43 UTC] PHP Warning:  Illegal string offset 'id' in /var/www/vhost/design75/public_html/includes/modules/payment/moneyorder.php on line 40

This is line 40

        $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_MONEYORDER_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");

using Zen Cart 1.5.1 with PHP version: 5.4.6-1

I am going to implement the above fixes to see if the error is still generated. I will report back with my findings

17 Mar 2013, 6:20 PM
#7
design75 avatar

design75

Totally Zenned

Join Date:
Dec 2009
Location:
Amersfoort, The Netherlands
Posts:
2,862
Plugin Contributions:
5

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

:( no joy, the error is still there

17 Mar 2013, 7:14 PM
#8
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,065
Plugin Contributions:
56

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

Design75, I'm not getting that error for the moneyorder payment class. I've got an unmodified v1.5.1 version of /includes/classes/order.php, which sets the billing['country']['id'] value into the order in the cart() function on line 428.

17 Mar 2013, 9:20 PM
#9
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
177

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

lat9:

/includes/modules/pages/checkout_payment/header_php.php (line 36):

if (isset($_SESSION['shipping']['id']) && $_SESSION['shipping']['id'] == 'free_free' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') /*-bof BUGFIX lat9-a / && $_SESSION['cart']->get_content_type() != 'virtual' /-eof BUGFIX lat9-a */ && $_SESSION['cart']->show_total() < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {
zen_redirect(zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}

> 
> /includes/modules/pages/checkout_confirmation/header_php.php (line 43):
> ```
if (isset($_SESSION['shipping']['id']) && $_SESSION['shipping']['id'] == 'free_free' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') /*-bof BUGFIX lat9-a */ && $_SESSION['cart']->get_content_type() != 'virtual' /*-eof BUGFIX lat9-a */ && $_SESSION['cart']->show_total() < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {

Wouldn't making those changes specifically cause problems with virtual products?

18 Mar 2013, 12:46 PM
#10
lat9 avatar

lat9

Administrator

Join Date:
Sep 2009
Location:
Stuart, FL
Posts:
14,065
Plugin Contributions:
56

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

DrByte:

Wouldn't making those changes specifically cause problems with virtual products?
I don't think so, since the redirect won't ever happen if the cart contains *only *virtual products. Quite honestly, it's been so long since I tackled this that I don't remember why the virtual-product exclusion was necessary ... but I apparently thought so at the time.

7 May 2013, 10:02 PM
#11
torvista avatar

torvista

Totally Zenned

Join Date:
Aug 2007
Location:
Gijón, Asturias, Spain
Posts:
2,866
Plugin Contributions:
7

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

After using php 5.4.7 on my local development server it threw this warning when entering into an order detail page in the admin.
[07-May-2013 21:53:52 UTC] PHP Warning: Illegal string offset 'id' in D:.....\public_html\tienda\includes\modules\payment\cod.php on line 41

After reading this post
http://www.zen-cart.com/showthread.php?200601-UNDER-REVIEW-PHP-5-4-PHP-Warning-Creating-default-object-from-empty-value

I changed this
```php
if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_COD_ZONE > 0) ) {
$check_flag = false;
$check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_COD_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");

      ```php
if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_COD_ZONE > 0) && isset($order->delivery['country']['id']) ) {//steve added last clause for php 5.4.7
        $check_flag = false;
        $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_COD_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");

The line 41 mentioned in the debug log is the $check = $db->Execute...

The error stopped and the page seems to work ok.

11 May 2013, 3:05 PM
#12
zch0071 avatar

zch0071

New Zenner

Join Date:
Jun 2009
Posts:
9
Plugin Contributions:
0

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

How to fix line 355 of order.php?

'shipping_cost' => $_SESSION['shipping']['cost'],
31 Oct 2013, 10:45 PM
#13
countrycharm avatar

countrycharm

Totally Zenned

Join Date:
Jul 2007
Posts:
2,179
Plugin Contributions:
2

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

lat9:

OK, according to http://php.net/manual/en/language.types.string.php:

"As of PHP 5.4 string offsets have to either be integers or integer-like strings, otherwise a warning will be thrown. Previously an offset like "foo" was silently cast to 0."

It looks like a relatively small change to three files removes the warning:

/includes/modules/pages/checkout_shipping/header_php.php, starting around line 70:

/*-bof BUGFIX: lat9-d
require(DIR_WS_CLASSES . 'order.php');
$order = new order;
-eof BUGFIX: lat9-d */
// register a random ID in the session to check throughout the checkout procedure
// against alterations in the shopping cart contents
if (isset($_SESSION['cart']->cartID)) {
if (!isset($_SESSION['cartID']) || $_SESSION['cart']->cartID != $_SESSION['cartID']) {
$_SESSION['cartID'] = $_SESSION['cart']->cartID;
}
} else {
zen_redirect(zen_href_link(FILENAME_TIME_OUT));
}

// if the order contains only virtual products, forward the customer to the billing page as
// a shipping address is not needed
// if ($order->content_type == 'virtual') { BUGFIX: lat9-d
if ($_SESSION['cart']->get_content_type() == 'virtual') { /* BUGFIX: lat9-a /
// $_SESSION['shipping'] = 'free_free'; BUGFIX: lat9-d
$_SESSION['shipping']['title'] = 'free_free';
$_SESSION['shipping']['id'] = 'free_free'; /
BUGFIX: lat9-a */
$_SESSION['shipping']['cost'] = 0; /*BUGFIX: lat9-a */

$_SESSION['sendto'] = false;
zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

require(DIR_WS_CLASSES . 'order.php'); /* BUGFIX: lat9-a /
$order = new order; /
BUGFIX: lat9-a */

> 
> /includes/modules/pages/checkout_payment/header_php.php (line 36):
> ```
if (isset($_SESSION['shipping']['id']) && $_SESSION['shipping']['id'] == 'free_free' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') /*-bof BUGFIX lat9-a */ && $_SESSION['cart']->get_content_type() != 'virtual' /*-eof BUGFIX lat9-a */ && $_SESSION['cart']->show_total() < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {
  zen_redirect(zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}

/includes/modules/pages/checkout_confirmation/header_php.php (line 43):

if (isset($_SESSION['shipping']['id']) && $_SESSION['shipping']['id'] == 'free_free' && defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER') /*-bof BUGFIX lat9-a / && $_SESSION['cart']->get_content_type() != 'virtual' /-eof BUGFIX lat9-a */ && $_SESSION['cart']->show_total() < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {


Hey lat9 I did all this and still getting

> code
> [31-Oct-2013 15:09:14 America/New_York] PHP Warning:  Illegal string offset 'title' in /home/xxxxxx/public_html/includes/classes/order.php on line 354
> [31-Oct-2013 15:09:14 America/New_York] PHP Warning:  Illegal string offset 'cost' in /home/xxxxxx/public_html/includes/classes/order.php on line 356

Any ideas thanks.
3 Nov 2013, 10:40 PM
#14
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
177

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

lat9:

Using a stock v1.5.1 install (localhost) running php 5.4.8 on Windows 7. Added the product New v1.2 -> Downloads -> Single Download to my cart, signed in and clicked the Checkout button. I was properly redirected to the checkout_payment page, but had two debug*.log files generated:

[19-Nov-2012 20:12:07 Europe/Berlin] PHP Warning: Illegal string offset 'cost' in C:\xampp\htdocs\v1.5.1\includes\classes\order.php on line 355

[19-Nov-2012 20:12:07 Europe/Berlin] PHP Warning: Illegal string offset 'title' in C:\xampp\htdocs\v1.5.1\includes\modules\pages\checkout_shipping\header_php.php on line 88

> ```
[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'cost' in C:\xampp\htdocs\v1.5.1\includes\classes\order.php on line 355

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\classes\shipping.php on line 32

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\classes\shipping.php on line 32

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\modules\order_total\ot_shipping.php on line 41

[19-Nov-2012 20:12:08 Europe/Berlin] PHP Warning:  Illegal string offset 'id' in C:\xampp\htdocs\v1.5.1\includes\modules\order_total\ot_shipping.php on line 41

In each case, the illegal offset is associated with an undefined array element. For example, line 355 of order.php contains:

                    'shipping_cost' => $_SESSION['shipping']['cost'],
> I'm not quite sure how to proceed.  Are these warnings indicative of something that might become errors in a future version of PHP?

> **rozdesignz:**
>
> [04-Feb-2013 06:37:25 Australia/Melbourne] PHP Warning:  Illegal string offset 'cost' in /../../../htdocs/store/includes/classes/order.php on line 349
> 
> not sure how to remedy this?  thanks, Lora

> **zch0071:**
>
> How to fix line 355 of order.php?
> ```
'shipping_cost' => $_SESSION['shipping']['cost'],

The following changes are incorporated into the next ZC version to handle the errors reported in this thread:

https://github.com/zencart/zencart/commit/274f4857062bd6df6cc73286272cb78fc86946c9

https://github.com/zencart/zencart/commit/8f47bc47bdf6c8a189f51d00e26deb80026d2886

11 Nov 2013, 3:37 AM
#15
vanhorn_s avatar

vanhorn_s

Zen Follower

Join Date:
Apr 2010
Posts:
283
Plugin Contributions:
0

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

When is the next zc version coming out? I have until Dec 1st before my host forces me into php 5.4, and I have looked at multiple pages of fixes, and this appears to be a very convoluted problem.

11 Nov 2013, 5:54 PM
#16
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
177

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

It is indeed a complex problem.

The links above are what will be included in the next version, specifically to address this problem.

11 Nov 2013, 8:07 PM
#17
vanhorn_s avatar

vanhorn_s

Zen Follower

Join Date:
Apr 2010
Posts:
283
Plugin Contributions:
0

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

Those two pages are missing one.

includes/modules/shipping_estimator.php
Add to line 46:

 require_once('includes/classes/http_client.php'); // shipping in basket
//PHP5.4 fix
$order = new stdClass();
/*
// moved below and altered to include Tare
  // totals info
  $totalsDisplay = '';
12 Nov 2013, 4:50 PM
#18
woodymon avatar

woodymon

Totally Zenned

Join Date:
Sep 2004
Posts:
2,309
Plugin Contributions:
1

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

DrByte:

It is indeed a complex problem.

The links above are what will be included in the next version, specifically to address this problem.

Host just moved the account with a ZC 1.51 shop.

Before the move was running PHP 5.4.15, with no errors appearing in /logs.

But now, following the move to the newer server running PHP 5.4.20, I'm observing repeating cluster of errors in /logs, similar to those which others have posted to this thread.

[09-Nov-2013 17:32:20 America/Chicago] PHP Warning:  Illegal string offset 'title' in /home/acct/public_html/shop/includes/modules/pages/checkout_shipping/header_php.php on line 88

[09-Nov-2013 17:32:20 America/Chicago] PHP Warning:  Illegal string offset 'cost' in /home/acct/public_html/shop/includes/classes/order.php on line 355

[09-Nov-2013 17:32:20 America/Chicago] PHP Warning:  Illegal string offset 'id' in /home/acct/public_html/shop/includes/classes/shipping.php on line 32

[09-Nov-2013 17:32:20 America/Chicago] PHP Warning:  Illegal string offset 'id' in /home/acct/public_html/shop/includes/classes/shipping.php on line 32

[09-Nov-2013 17:32:20 America/Chicago] PHP Warning:  Illegal string offset 'id' in /home/acct/public_html/shop/includes/modules/order_total/ot_shipping.php on line 41

[09-Nov-2013 17:32:20 America/Chicago] PHP Warning:  Illegal string offset 'id' in /home/acct/public_html/shop/includes/modules/order_total/ot_shipping.php on line 41

So in this specific situation, might the two posted github 1.60 commits be compatible with 1.51 as well?

12 Nov 2013, 7:12 PM
#19
woodymon avatar

woodymon

Totally Zenned

Join Date:
Sep 2004
Posts:
2,309
Plugin Contributions:
1

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

As a followup to my post above...

In my attempt to squash the warnings filling up the Zen Cart /logs directory I visited the PHP Switcher in Control Panel. It was set to "native" (at the same time Zen Cart reports PHP 5.4.20).

After switching to PHP 5.3, the catalog side of Zen Cart behaved well, but when I logged into the admin side I observed only white space. So I reset the switcher back to "native" everything was back to normal, except for the warnings continuing to fill /logs.

To test things further I switched to "5.4", and also could not log into ZC admin. So back to "native" it is.

Not sure of the diff between native and 5.4. More research to do.

So is it safe to assume this issue will continue for the foreseeable future, until the PHP 5.4 error reporting issues are dealt with in ZC 1.5.2 and 1.6.0? Or will patch code will be available for ZC 1.5.1?

13 Nov 2013, 4:22 AM
#20
vanhorn_s avatar

vanhorn_s

Zen Follower

Join Date:
Apr 2010
Posts:
283
Plugin Contributions:
0

Re: [Done v1.5.5] PHP 5.4 warnings: Illegal string offset

I did all of the code changes listed on this post, as well as the one in my previous post, and so far, so good.

I would really like to know when 1.6.0, or 1.5.2 will be released though.