Welcome to the release notes
for Content Server v7.6. For the latest release notes, check the FatWire
e-docs web site. The
release notes contain descriptions of new features, changes in functionality, known
issues or limitations, and other last-minute information about Content Server
7.6.

Getting Started

The Content Server 7.6
document set provides documentation for different kinds of users. Updates to
product documentation, as they are made, are posted to the following URL: http://e-docs.fatwire.com
For a description of the documents, please refer to the
Documentation Notes link on the site. Check the site regularly for the latest
set.

New Features

What's
new in Content Server 7.6 Patch 2

Content Server 7.6 Patch 2 has
important changes as noted below:

Site Capture 1.1 is available as part of the CS 7.6 Patch 2 download

Multi-Ordered BLOB Support Utility

·This utility
removes ordinal values from mungo tables for multivalued blobs to support
the new feature of ordering multi-valued blob attributes introduced via
the fix for #16253. Directions for deploying this utility are in the
readme.txt found in the \Misc\UpdateMungoOrdinals.zip file.

Database
Utility Enhancement

·The
database performance utility has been updated with CS 7.6 patch 2 to include Global_Q,
FW_pubdatastore and _Mungo tables

System Tools
Improvements

·System
Tools includes the following improvements in CS 7.6 Patch 2:

oFile
System Tests show the actual folders

oUsability
improvements

oAdditional
loggers added for log4j

§com.fatwire.logging.cs.file=INFO

§com.fatwire.logging.cs.framework=INFO

§com.fatwire.logging.cs.sseed=INFO

CSDT
Enhancements

·Removed previous requirement that all dependencies be in
the workspace to support incremental updates.
If dependencies are already in the system, the import will be successful.

·Workspace
location and name are now fully configurable. To take advantage of this change,
use PropertyEditor to specify the values for cs.csdtfolder and cs.csdtworkspace
which are found in the Export/Mirror tab.

Deprecated functionality in Content
Server 7.6 Patch 2

·The following tags are deprecated as of this release:

owebservices:invoke

What's new in Content Server 7.6
Patch 1

Content Server 7.6 Patch 1 has
important changes as noted below:

The calendar widget has been
replaced with a new Dojo calendar widget

For foreign character binary
search it is now required that you download icu4j.jar as we are no longer
shipping this file. This download is required if your binary search
results are failing to find these words.

Deprecated functionality in Content
Server 7.6 Patch 1

·eWebEditPro is no longer shipped or supported

Transformation to
HTML and XML were previously provided as a sample java implementation
using Open Office libraries. This is no longer being shipped in the
samples folder

What's
new in Content Server 7.6

Content
Server 7.6 introduces new features to help developers and system administrators
streamline the process of building and maintaining Content Server (CS) web
sites. The CS 7.6 package also includes HF1 which contains important updates
and should be applied immediately following rollup to 7.6.

Content Server Developer Tools (CSDT)

Integrating
CS with Eclipse IDE, which enables developers to write CS code directly
from Eclipse. Within Eclipse, developers get automatic code completion on
CS tags and APIs. Developers can debug code by setting breakpoints and
then directly previewing pages from within Eclipse.

Supporting
bi-directional synchronization of resources between CS and the Eclipse
workspace. CSDT has built-in intelligence to compute and resolve all
dependencies of assets.

Enabling
integration with versioning systems for teams with multiple developers.
This also allows exchange of resources between multiple CS instances.

Providing
a set of powerful command-line tools for developers to create CS resource
packages for distribution to other Content Servers.

System Tools

Allows system administrators to gather, review and download the information
about the Content Server environment directly from the Advanced Interface. The
information includes:

System
Tools allow administrators to configure log4j loggers from the Advanced
Interface if log4j is enabled.

Customizable Single Sign-on (CSSO)

CSSO
facility is a new customization layer included in the FatWire WEM Framework
authentication system, which is built over the Central Authentication Service
(CAS). The CSSO facility contains authentication extensions that you can use to
create a custom SSO solution, without modifying the CAS configuration. A Spring configuration directs the injection of these
extensions into the CAS configuration to implement the desired login behavior.

AssetCache

AssetCache
is a new component introduced into the inCache framework. It is a memory-based
system, built to improve Content Server’s performance by absorbing load that
would otherwise impact the database. AssetCache is available on Content Server
nodes.

Flex Filters API

Flex
Filters API is a formalized API that is now available to build filters
associated with asset types. When assets of those types are saved, the filters
perform operations on the assets.

Rollup Installer enhancements

Rollup
Installer enhancements in CS 7.6 provide options to:

Migrate
to log4j automatically during rollup

Cluster
CAS during deployment

TIKA update to version 0.7

FCKEditor changes

(#24292) A new property is
added to control how FCKEditor behaves when you include assets within text.
When you include assets that use <div> tags, FCKEditor does not change
them to <span> tags. If you want FCKEditor to retain the earlier behavior
of change <div> tags to <span> tags, add this property and set it
to true. For further information please refer to the Property Reference Guide.

Database Utility Enhancement

The database performance
utility has been updated with CS 7.6 to include Mungo and AMap tables.

Workflow Enhancement

Workflow locking mechanism
has been improved by eliminating a workflow engine lock for all workflow
operations

REST API Enhancement

The REST interface now
includes an additional API to return site plan navigation.

Features not supported in Content
Server 7.6

RealObjects
attribute editor

Use
of different editors in same asset

Installation and Upgrade Notes

General Notes

See
the SPD on FatWire e-docs web site for the list of J2EE components (web
servers, application servers, DBMSs, JDBC drivers, etc.) that Content Server
7.5 supports. You should also check with FatWire Support to see if there are
any known issues with the configuration you wish to use.

Refer
to the vendor release notes for all J2EE components to obtain the latest
e-fixes, patches, and service packs required to run your components.

A
common problem encountered is a type of JSP Exception such as: "The
major.minor version '48.0' is too recent for this tool to understand".
This error is related to the incorrect version of tools.jar in the class path.
Make sure tools.jar loaded belongs to the correct JRE by launching the JVM with
a -verbose option.

Windows
install will fail if there is a space in the path to CS home directory

If
your installation of Content Server fails, take the following steps before
rerunning the installation:

·Drop
the database tables

·Undeploy
the .ear/.war file

·Delete
the CS installation folder

·Restart
the application/webservers

Installing
a WebServer between Remote Satellite Server and Content Server, you must set
the cookie header property http.protocol.single-cookie-header=true in the
httpaccess.properties file and place it in the Remote Satellite Server Install
Directory /WEB-INF/Classes

Ensure
that the maximum number of open files handles for your publish destination
Operating System is set to 65000, the source should be at least 32000. These
numbers are only a guideline and may need to be adjusted depending on the type
of data and the size of the publish operation.

Be
sure to review the known issues listed in the Installer - Upgrades section before you begin your
upgrade.

Asset Type Name Restrictions

The following
lists display the asset type names used by Content Server.

Beginning
with the release of Content Server 7.5, all administrative database tables
created by FatWire in Content Server will be prefixed with FW_. Asset types
should not be created with a prefix of FW_.

If you have
created asset types using names in our Standard Asset list, upgrade scripts
will encounter errors. Manually back up their data and elements before starting
the upgrade process to preserve these assets. If you install the sample sites,
do not use the Sample Site asset type names listed below when creating custom
asset types.

Standard
assets - These asset types are created by default:

Template

CSElement

SiteEntry

Collection

Page

Query

Link

Linkset

Dimension

DimensionSet

AttrTypes

AdvCols

Segments

Promotions

ScalarVals

HistoryVals

HFields

Asset
Types installed by the FirstSite II Sample Site:

Content_F

Content_A

Content_PD

Content_CD

Content_P

Content_C

Product_F

Product_A

Product_PD

Product_CD

Product_P

Product_C

Media_F

Media_A

Media_PD

Media_CD

Media_P

Media_C

Document_F

Document_A

Document_PD

Document_CD

Document_P

Document_C

FSIIVisitorAttr

FSIIVisitorPDef

FSIIVisitorDef

FSIIVisitorParent

FSIIVisitor

Asset Types installed by the
Burlington Financial Sample Site:

Article

BFMembers

Image

ImageFile

StyleSheet

PDF

DrillHierarchy

AArticles

ContentGroups

AImages

CAttributes

ContentTmpls

CGroupTmpls

Products

ProductGroups

PAttributes

ProductTmpls

PGroupTmpls

Asset Types installed by the GE Lighting Sample Site:

AArticles

ContentGroups

AImages

CAttributes

ContentTmpls

CGroupTmpls

Products

ProductGroups

PAttributes

ProductTmpls

PGroupTmpls

Asset Types installed by the Hello Asset World Sample Site:

HelloArticle

HelloImage

Asset Types installed by the Spark Sample Site:

Spark_Ad

Spark_Contact

Spark_ContentAttrib

SparkContentDef

SparkDoc

SparkContentParent

SparkContentParentDef

SparkDocAttrib

SparkDocDef

SparkDocParentDef

SparkFolder

Spark_Job

Spark_News

Restricted Names for Asset Types:

The following
names (in alphabetical order) are reserved for Content Server's use and must
not be assigned to custom asset types:

ActiveList

AdvCols

AdvCols_Dim

AdvCols_DimP

AdvCols_Extension

AdvCols_ManRec

AdvCols_Publish

AdvCols_SSpec

AdvCols_Types

ApprovalQueue

ApprovedAssetDeps

ApprovedAssets

AssetDefaultTemplate

AssetEditPane

AssetExportData

AssetIndexSourceConfig

AssetListener_reg

AssetPublication

AssetPublishList

AssetQueues

AssetRelationTree

AssetStubElementCatalog

AssetSubtypes

AssetType

Assignment

AssocNamed

AssocNamed_Subtypes

CARTSET

Category

CCFunction

CCRoles

CheckOutInfo

Collection

Collection_Dim

Collection_DimP

Comparators

ComplexAssets

CSElement

CSElement_Arg

CSElement_ArgVals

CSElement_CArgs

CSElement_Composition

CSElement_Dim

CSElement_DimP

CSElement_Map

CSElement_Publish

CSEvents

DeliveryType

Dimension

Dimension_Dim

Dimension_DimP

DimensionSet

DimensionSet_Dim

DimensionSet_DimP

DimensionSet_EDim

DistributionList

dtproperties

ElementCatalog

EmbeddedReference

Externalclients

Externalclientsconfig

Filters

FlexAssetDef_reg

FlexAssetTypes

FlexFilterTypes

FlexGroupTypes

FlexGrpTmplTypes

FlexTmplTypes

FunctionPrivs

Global_Q

GroupParticipants

HFields

HFields_Dim

HFields_DimP

HFields_Extension

HFields_Publish

HistoryVals

HistoryVals_Dim

HistoryVals_DimP

HistoryVals

Extension

HistoryVals

Publish

Include

IndexSourceMetaDataConfig

Link

Link_Dim

Link_DimP

Linkset

Linkset_Dim

Linkset_DimP

Locale

LocaleMap

LocaleTree

MenuArgs

MenuLegalArgs

MimeType

MungoBlobs

ObjectPrivs

ObjectPublish

ObjectRegistry

Page

Page_Dim

Page_DimP

Previewgen

Promotions

Promotions_Dim

Promotions_DimP

Promotions_Extension

Promotions_Goals

Promotions_ManRec

Promotions_Publish

PubContext

PubKeyTable

Publication

Publication_Replicate

PublicationTree

PublishedAssets

PubMessage

PubSession

PubTarget

PubTarget_Distribution

PubTarget_Satellites

PubTarget_Sites

Query

Query_Dim

Query_DimP

Rank

Remove

Replicate

Replicate_Assets

Replicate_AssetTypes

RTInfo

RuleMap

RuleSetDef

SaveSearch

SaveSearch_Roles

SaveSearch_Sites

ScalarVals

ScalarVals_Dim

ScalarVals_DimP

ScalarVals_Extension

ScalarVals_Publish

Scratch

SearchEngineMetaDataConfig

Segments

Segments_Dim

Segments_DimP

Segments_Extension

Segments_Publish

SiteCatalog

SiteEntry

SiteEntry_Dim

SiteEntry_DimP

SiteEntry_Publish

SitePlanTree

Source

StartMenu

StartMenu_Roles

StartMenu_SChoices

StartMenu_Sites

StartParticipantChoice

StartProcessChoice

StatusCode

SystemACL

SystemEvents

SystemIdGenerator

SystemInfo

SystemItemCache

SystemLocalAlias

SystemLocaleString

SystemPageCache

SystemRemoteAlias

SystemSatellite

SystemSeedAccess

SystemSQL

SystemTransforms

SystemUserAttr

SystemUsers

TempBlobs

Template

Template_Arg

Template_ArgVals

Template_CArgs

Template_Composition

Template_Dim

Template_DimP

Template_Map

Template_Publish

Template_Subtypes

Template_Thumb

Template_TName

TempObjects

TNames

TreeTabs

TreeTabs_Items

TreeTabs_Roles

TreeTabs_Sect

TreeTabs_Sect_Roles

TreeTabs_Sect_Sites

TreeTabs_Sites

Type

UITag

UITagItem

UIUserLoggedInDetails

UnassignedObjects

UserPublication

VMACCESSKEY

VMACCESSMETHOD

VMATTRIBUTECATEGORY

VMHISTORYATTRIBUTEDEF

VMHISTORYATTRIBUTEFIELD

VMHISTORYATTRIBUTEFIELDDEF

VMSCALARATTRIBUTEDEF

VMVISITOR

VMVISITORSCALARBLOB

VMVISITORALIAS

VMVISITORSCALARVALUE

Any name that starts with VMz

Workflow

Workflow_ARols

Workflow_Assets

Workflow_DlgA

Workflow_Roles

Workflow_Sites

Workflow_TActs

WorkflowAsgActions

WorkflowAsgsAction

WorkflowConditions

WorkflowDlgActions

WorkflowDlkActions

WorkflowGroups

WorkflowGroups_Dlock

WorkflowGroups_DRoles

WorkflowGroups_ERoles

WorkflowGroups_Sites

WorkflowGrpActions

WorkflowObjects

WorkflowObjsAction

WorkflowParticipants

WorkflowProActions

WorkflowRoutes

WorkflowRoutes_Comp

WorkflowRoutes_Cond

WorkflowRoutes_Dead

WorkflowStatusCode

WorkflowStatusCode_TActs

WorkflowStpActions

WorkflowSubject

For
a given database, the name of a flex asset type must have eight characters
less than the maximum number of characters that are allowed for database
table names.

For
a given database, the name of a basic asset type must have five characters
less than the maximum number of characters that are allowed for database
table names.

Security
Notes

For security reasons, we recommend
that you allow only internal access to the following servlets:

·Install

·HelloCS

·CatalogManager

·TreeManager

·DebugServer

·CacheServer

·Inventory

Browser

In
Internet Explorer, the Tools > Internet Options > Settings > Every
Visit to the page must be set to true.

To
change the character set for Internet Explorer 6.0, click View > Encoding > Unicode (UTF-8).

Notes:

Tree applet conflicts will exist
if you have both CS 6.3 and 7.x running on the same machine on the same port.
To resolve a Java applet issue:

1) Right-click the JVM icon in the
system tray.
2) Select 'Open Control Panel'.
3) In the JVM Control Panel...

If
you are rolling up from CS 7.5 Patch 5, and were using inCache earlier, you
must flush your cache after rollup as the caching mechanism has been changed

CS
7.6 Patch 1 contains all publicly available Hot Fixes released for CS 7.5 patch
5 up to and including HF26 as well as CS 7.6 HF1 and HF2

CS
7.5 Language Pack:

The
Language Pack release is a rollup installer which can be installed on CS 7.6
Patch 1. There are two means of installation for the Language Pack:

a. GUI Install which is initiated by
executing csrollupinstall.bat or csrollupinstall.sh

b. Silent
install by following the directions below:

Note
- these steps are required even if you have run an installation of Content
Server previously as the most updated files must be used

1. In the
CS Install folder\ominstallinfo locate omii.ini
2. Place this ini file in a folder other then <installation_folder>
and rename it
3. Edit the renamed omii.ini, add the following property:

To install the Italian Language Pack - it_IT=true

To install the Japanese Language Pack - ja_JP=true

To install the German Language Pack - de_DE=true

To install the French Language Pack - fr_FR=true

To install the Spanish Language Pack - es_ES=true

To install multiple Language Packs at the same time, each property must be on
its own line - for example, to install French and German Language Packs:

fr_FR=true

de_DE=true

4. Go to
the directory where you extracted the rollup package, edit the install.ini
4. Set nodisplay=true
5. Uncomment the loadfile property and set it as loadfile=<path and name
of renamed omii.ini from step 1>
Note: While editing the ini file make sure you specify the
file system path correctly for example, for windows:
CSInstallDirectory=C\:/csinstall or
c\:\\install

Change this line to COM.FutureTense.Apps.CSSetup -silent -files
CombinedLanguageInstall.xml

inCache:

When
deploying inCache, the default RMI setting will discover any other inCache
systems deployed on the same subnet. To avoid multicast issues, configure RMI
to connect only to localhost or eliminate lookup and provide a list of servers
to be communicated with. For further information please refer to the Developers
Guide inCache section, the RMI settings are specified in the cs_cache.xml and
ss_cache.xml files.

(#26742) The following exception may occur on rollup
install “Could not initialize class
COM.FutureTense.Common.FTProperties” This is due to ehcache picking up
ipv6, to force ipv4 to be used, add the following JVM argument to your startup:

-Djava.net.preferIPv4Stack=true
-Djava.net.preferIPv6Addresses=false

Issues Fixed in Content Server
7.6 Patch 2

Advanced UI

(#26106) Empty
list warning when editing flex assets in Advanced UI, when no Dimensions are enabled
for the site

(#26268) When
bs.security=true, the images are not displayed in the popup window

Advanced UI – Tree Applet

(#24994) Applet
warnings on JRE 1.6 if all the components of applet are not signed

(#25841) Prompt
to enter filter criteria appears twice when the number of first-level nodes
(nodes which were children of the "Root" node) exceeds the value
specified against treeMaxNodes property

API

(#22301) Asset.Load
opearation in Listener implementation on a basic asset or a flex asset with
parent leads to a deadlock

Caching – Satellite Server

(#29470)
Remote Satellite Server 76 patch 1, throws the following error after it has
been started:

[CS][ERROR]
could not read the propertiescs.parentfoldercount and cs.childfoldercount

This
can be safely ignored - logging level is changed to INFO and not ERROR

(#26669)
RSS memory leak in inCache dependency cache

To resolve
this, improvements are made in the way that entries are maintained in
dependency cache, with these improvements, memory used for storing dependency
cache is now optimal.

Content Server – CORE

(#22603
/ 26377) CS calls unnecessary deleteonexit to cleanup temporary files even when
these files are forced deleted at the end of request

(#23165)
Added support for SMTP port other than 25

To change
this from the default of port 25, in futuretense.ini property cs.emailhost specify
the port #

(#26282)
When creating an asset with a named association, the saved association is lost
and is instead associated with a different, unrelated association

Performance

(#25400)
When deleting nodes from Tree tables like AssetRelationTree, a file lock
mechanism is used to protect data integrity. File system may not be able to
handle high loads of file locking. Replace locking w/ transactions

Publishing – Common

(#26848)
DispatchManager not thread-safe.

Publishing – RealTime

(#27779)
Reduce duplicate transaction callbacks

Publishing – Export to Disk

(#26214)
A Page can be published without approving its compositional dependencies but
the behavior is not consistent on subsequent edits.

Publishing
- Real Time

(#24232) First
time Publish fails with no apparent reason

Revision
Tracking

(#24030) Content
server creates too many file for storing revisions

WEM - SSO

(#25567) Prevent
SAXParserException if user has CAS attribute in the principal with special
characters that are not xml escaped

Issues
Fixed in Content Server 7.6

Advanced UI

(#20767 / 24467)
If no java plug-in found when accessing the Advanced UI, Content Server prompts
to download JRE 1.4

(#22921)
Content Server was resolving Variables.action to a value "new" upon save
when the Workflow email object was created. Any variables defined in the body
of the object are meant to be resolved at runtime only.

(#23850) Sort
options in the Advanced Search screen are not localized

NOTE - this is fixed for
new basic assets, to apply the change to existing basic assets, the following
strings need to be replaced in the element
"OpenMarket\Xcelerate\AssetType\<BasicAssetName>\SearchForm.xml":

Caching - Page Caching

Clarkii On-Line Image Editor

(#23864) Insert
image functionality does not work on Safari 5 browser.

(#23916) Browsing
for a new image results in loss of previously uploaded image if operation is
cancelled

(#23923) Response
time delays in saving uploaded images

Content Server Core

(#24145 / 24150)
Folders under \\{CS Install}\Shared that are generated based on a 2 level
parent-child structure have a default numbering limit of 1024

We have
introduced 2 new properties in futuretense.ini to override the current limit of
1024: Refer to the Property file reference for further information

(#24557) System
Events are not supposed to run concurrently across the cluster members. Each
cluster member is supposed to detect if another cluster member has either
already run the event or is still running it. This was not working in the case
where the actual execution time of the event was more than the scheduled
interval between event runs

Editor - FCKEditor

(#21073)
FCKEditor is stripping out html comments when switching between WYSIWYG and
source views

(#22495) Not able
to access cell properties if width of included image is larger than the table
width

(#22750)
JavaScript error may be thrown when selecting included asset in IE

(#24014) Linked
asset is relocated to the beginning of the FCKEditor field if changed using
"Changed Linked Asset" in Safari

(#24238) Added
Cut and Copy Linked and Included Asset options to the right click menu for
FCKEditor

(#24263) Added
IMAGEPICKERID attribute support for AssetMaker Assets in FCKEditor

(#24552)
JavaScript error is thrown when including an embedded link inside a <p>
tag

(#24722) Blank
space added after including an asset in FCKEditor.

(#24954) User
cannot add text after an included image in FCKEditor.

(#21118) Unable
to embed a link in FCKEditor or eWebEditPro with no wrapper page if one existed
in the site

(#24174) Site
Launcher fails when copying assets that have embedded links created with
FCKEditor

Engage

(#24832) vdm:flushinactive and vdm:mergeinactive tags fail with
ORA-01795 in Oracle database, when more than 1000 visitor sessions are linked
by same visitoralias

Flex Assets

(#24155) Not
possible to remove a multi-valued mandatory string attribute

A
button "Delete this <attribute>" has been added to enable the
ability to delete additional multi-valued string attributes in Advanced UI

(#23582) Visio
MimeType not supported in Content Server

InSite Editing

(#24316) Calling
insite:edit tag from an element that is called from
within a form tag with method=post results in message "Failed to check out
the asset implicitly. The asset may be locked by other user" when clicking
on Edit button

Page Cache - inCache

Performance

(#22807 / 24184)
Edit and save of Recommendations resulted in file accumulation due to Content
Server not deleting the old class files but retaining them in a single directory
which results in performance degradation.

(#24666 / 25012)
ADF file is read every time an asset is loaded. To avoid these frequent loads
ADF file is now cached after first read.

(#23986)
NioFileLock warning message repeats in target logs

Publishing - Static

(#23414) During a
publish session if an error occurs in one of the templates, the publish session
log only shows the references published until the error even though all
references are published.

(#23952) If an
asset has a BLOB image rendered with render:getbloburl
and that image is used within an asset link, the link produced is the dynamic
link rather than a static link

Search

(#21390) The
Lucene Global index should include createdby (not updated by) as part of the index
so that the "Author" option in Advance Search (Dash UI) works
properly.

Start Menu

(#21735) When
assigning a default dimension via start menu, the value was not preserved on
asset save

Template

(#22827) If a
template is shared across multiple sites, copying the template will populate
the copied version's Site Catalog pagelet parameters with only that from the
last shared site.

Workflow

(#24487) A
timeout on the last workflow step prevents the workflow action from being
completed

(#24220) Failure
to select a user for each role in the Set Participants screen causes an error
when the workflow is started

Important changes prior to CS
7.6

Other
Important Issues fixed prior to CS 7.6 which are also
applicable to CS 7.6

KeyView Removal (Patch 2)

Effective September 2009,
Content Server no longer ships with KeyView. In place it ships with other
document transformation open source libraries

The patch 2 or higher rollup
installer will:

Remove
the KeyView binaries

Add
the open source libraries, and

Rename
the filters in the database appropriately

Both full text search and
Desktop will use the new transformation libraries.

Known limitations:

If
you were using these filters, the previous conversions will be lost on
asset save e.g. In FirstSiteII, the Document assets will no longer display
the previously converted HTML on editing

JVM
memory allocation may need to be adjusted based on your indexing
requirements as the full text indexing is now dependent on the Apache TIKA
library which is run in the same process as Content Server

Search
indexing is limited to documents of size 150MB.

Indexing
of encrypted files is not supported. If you do want to index, download
bcprov-jdk14-136.jar file from Apache TIKA

Caching - Page Caching
Enhancements (Patch 2)

(#20107)
Improve system performance during cache regeneration phase

This enhancement provides the
ability to specify URLs to be regenerated. An additional module is required to
enable this functionality which can be requested from FatWire
Support

(#20824)
Enable PageBuilder to publish individual pages

To enable new behavior,
please make following configuration changes:

On the editorial system
_______________________

1. Make sure that ft.usedisksync & ft.sync of futuretense.ini are set
correctly; ft.sync and ft.usedisksync should not be empty and should be the
same value on all cluster members.

2. xcelerate.lockdir property in futuretense_xcel.ini
must not be empty and must have the same value on all cluster members

values could lead to inadvertently overlapping slots
across different pages (if Ownerid, Site, and Slotname are

the same) and could cause content to be overwritten
and/or repeated across unrelated pages that happen to use

the same slots.

Timestamp Storage Change
(Patch 4)

As of
patch 4, values of date fields are stored to millisecond accuracy in Content
Server’s database, in the format hh:mm:ss.SSS. The JVM
flag -Dcs.useMilliseconds determines whether the millisecond portion of the
timestamp can be read and how entries in the Lucene search index are affected.
The use of -Dcs.userMilliseconds=true is only supported for use in CS systems
that are integrated with Community Server.

If
-Dcs.useMilliseconds=false (or not set), dates are written to the database to
millisecond accuracy, but the millisecond portion of the timestamp cannot be
read. As a result, when the Lucene search engine reads Content Server’s
database while indexing, it leaves the timestamps of index entries in their
existing format.

Milliseconds
can be read only by APIs and tags, as long as the following conditions hold:

·The
JVM flag -Dcs.useMilliseconds is set to true.

·After
patch 4 is installed, the Lucene Index Conversion Tool was run to include
milliseconds in timestamps (http://<hostname:port>/context/ContentServer?pagename=OpenMarket/Xcelerate/Search/IndexDateChangeUtil).

All
timestamps for Lucene index entries are then assigned the value 000 in the
millisecond position, which is updated to actual time when the entries are
updated.

Switching
back to -Dcs.useMilliseconds=false after a Lucene index has been updated with
millisecond information does not require re-indexing or reversing the
conversion in any way. Setting the -Dcs.useMilliseconds flag to true always requires running the Lucene Index Conversion Tool.

New Logger (Patch 5)

com.fatwire.logging.cs.file to monitor file path, file content
size, and operation time if it is great than 300 ms.

Known
Issues / Limitations in Content Server 7.6 Patch 2

AssetCache

(#26752)
When a revision tracked asset is deleted, on the initial inspection of asset,
AssetCache shows this asset with updated time and valid dependency which is
incorrect

CSDT
– Plug-in

(#26183)
Removing an ElementCatalog entry from an attribute editor will not
automatically remove it when deployed using CSDT. Instead, the obsolete
ElementCatalog entry belonging to the attribute editor should be removed
manually from the target system.

REST
API

(#26183)
Issues when using invalid multi-ticket to call RSS:

When you
use an invalid multi-ticket in a REST call to SS, instead of redirecting to the
login screen, it throws an exception:

When you
use an invalid mult-ticket in a REST call to SS, it does redirect to the login
screen. However, instead of generating a ticket and displaying the requested
information, the redirect fails, and an error is shown.

Known Issues / Limitations in
Content Server 7.6

Access Permissions

(#15056)
Can't edit recommendations without SiteGod role

If an editorial user is added to the
UI and that user is not given SiteGod privileges, the user cannot edit
Recommendation assets if they are more than static list recommendations. The
following error appears on the screen: Error -3 encountered while saving.
Error: errno=-3 on call to catalog manager for table 'RuleSetDef'

Advanced UI

(#25035)
Downloading thread dumps from the System Tools is not supported for WebSphere

(#25321) 500
error is thrown if you browse directly to CS-Cache status when AssetCache is
not started or enabled

(#25310) Message
"An error has occurred" appears when attempting to view logs in Log
Viewer if the logs are empty.

(#25425) Unable
to run the File System test multiple times without changing the type of test to
run

(#24874) Deleting
an optional multi-valued attribute that contains only one value using the
"Delete this item" button will not remove the value, the value in the
data field should be manually removed

API

(#1513)
Content Server requires column names returned in
length order

When implementing an IList, Content
Server requires that column names be returned in length order, especially when
one column name is a prefix of another column name (i.e., order and order_id).
This can affect performance if the implementing IList class wants to maintain a
column order.

(#2046) ics.CommitBatchedCommands() does not
return the correct status.

ics.CommitBatchedCommands() does not return the correct status
or set the errno variable properly in every situation.

(#13653)
JSP Processing Adds Whitespace

Take an xml page that wraps code that
streams a document back to the user -- this allows for checking the user
credentials before the doc is streamed. If we try to call out the a JSP to do the validation the stream fails - it
actually spits the bytes into the browser since something IS coming before the
header. The JSP the I called was completely on 1 line
so it should not have 'preserved' any white space

When using asset:export
/ asset.export tags on an asset that isn't a page or collection, the output XML
doesn't contain info about the unnamed associations.

(#14765)
GetCompleAttribute would throw exception if the asset does not have a parent

In flex Asset, getCompleAttribute method always assumes that there is a parent for the
passing in asset type + definition, if there is none, a CS.DB exception would
be thrown relating to getting "assetid" from ResultSet while the
resultset is empty.

(#14801)
ASSET.LOAD does not set any error number when trying to load an asset that
doesn't exist

Instead
of byte d = fileObj.getBinary() , the example should
be changed to

byte d =
newbyte[fileObj.getBinaryStream().available()];

(#18639) ASSET.DELETEREVISION is missing a mapping in the tag file

The
parser for ASSET.DELETEREVISION is in
com.openmarket.xcelerate.commands.AssetDispatcher. It does call through to OBJECT.DELETEREVISION,
so if the ObjectDispatcher.tag file is incorrect then an error will result.

(#20816)
Asset API allows delete of parent asset that is referenced by another

(#20873)
Dynamic loading of new DataSource using loadproperty tag is not supported

(#25420) Asset
API is not able to set the fw_uid

API - XML Tags

(#21312) If a
session variable and CS variable use the same name within a coding element,
SessionVariables.somename incorrectly gets resolved to Session<value of
Variables.somename> first. This causes the SessionVariable to be unresolved.
To workaround this issue, variable names should be different than the names of
variables stored in the session.

AssetCache

(#25240)
Uploading a BLOB larger than 5MB will result in an exception "Error met
serializing / deserializing <Assettype ID> for copying purpose in
AssetCache". This can be safely ignored.

AssetMaker Assets

(#25301) Unable
to create asset of type AMAsset on Oracle database when it has an URL attribute and if revision tracking is enabled for the asset
type

Basic Assets

(#20993)
Content Server does not support the creation of attributes which are named the
same as standard attributes

Browser Support

(#19635)
If Apache WebServer is not configured to use HTTP1.1, pages will be cached by IE

(#19759)
Using Firefox with the Advanced UI tree off or InSite popup to select an asset
during asset association produces no response

·When
assets are added using BulkLoader, the assets will not be indexed in Lucence.
You will need to re-indexed after import.

·BulkApprover
will not update the PubAsset Table to reflect the publish status after running
Approve and Mark_Publish

Caching - BLOB Server

(#25431) Saving
an asset from Dash UI after changing a blob attribute does not flush BlobServer
correctly

Caching - Satellite Server

(#17435) Satellite disk cache grows with uncached blobs

Any
blob which is not supposed to be cached by the Satellite Server will be added
under <sscacedir>/uncachedblob. This
directory can grow if blobs are not being cached on the satellite server. The
content of this directory can be safely deleted at any time. It can be deleted
manually or by using the FlushServer reset call. Note: FlushServer reset
call will also clear all the cache from the Satellite Server

(#18448) CS does not respect cache-control=no-cache

(#18534)
Undesired headers are being passed from client to Remote Satellite Server when
a WebServer (Sun Web Server 6.1) is in the middle of Content Server and Remote
Satellite Server

CatalogManager

(#605)
Deletingtables
using CatalogManager.

If you have enabled revision tracking
for an object table, and then you delete the table using CatalogManager,
Content Server still thinks that the table is being revision tracked.

(#2037) SystemSQLcolumn tablename is
allowed to be null.

Content Server allows the value in the
tablename column in the SystemSQL table to be null. However, for result set
caching to work properly, this value must be specified.

(#2534) Cannot log in to ContentServer if username is the same as "id" value in SystemUsers.

You cannot log into Content Server if
the username you are using to log in has the same "id" value of a
different user in the SystemUsers table. For example, DefaultReader has an ID
value of 2. If you create a user with the username "2," that user
cannot log in.

CatalogMover

(#2272)
Selecting a specific HTML file for import does not work
properly if more than one file exists in the directory location.

(#2548) CatalogMover does not export from columns that hold
blobs.

For example, a table is created with a
column using the data type specified by the property cc.blob. An image is
uploaded to the table. When CatalogMover exports the row, the image is not
written out to the export data.

Content Server Developer Tools

(#24252) When
creating templates using the existing element option, if the specified element
does not exist, an empty template will be created on CS but cannot be exported

(#24483) If
filename length of exported file exceeds the OS filename limitation, the file
cannot be exported. This is likely to happen if filename of uploaded blob is
too long.

(#24813) Page
Subtypes are created for specific sites however when importing into the
destination, the site specifications are not preserved resulting in the subtype
being enabled on all sites on the destination

(#24846) Deleting
a site does not update the information on the exported assets. The workaround
is to first unshare the assets from the site which you wish to delete then
delete the site.

(#24859) Deleting
of non-asset resources should be done manually on each destination. This is
currently no sync for deleted non-asset resources

(#24883) User
must be cautious of the order which resources are imported. Consider situation
where all developers have A points to B in their
system. Then one developer changes A to point to C and deletes B. If other
developers were to sync B before A, the import will fail since you cannot
delete an asset that is being referenced.

(#25173) During
import, you may experience some indexing data exceptions. This will only affect
the search index and not the actual data import. Re-Index the affected asset
types after the import if necessary.

(#25231
/ 25341) Resources that contain fw_uids which include slashes or commas cannot
be exported

(#25384) The Sync
and FW workspace views in Eclipse do not properly display UTF-8 characters on
Windows.

(#25403) The
locale hierarchy information is not preserved for exported hierarchical
DimensionSet. The workaround is to manually configure the hierarchal
information after import.

(#25417) Slots
from InSite Templating are not supported

(#25418)
Exporting a Page which contains a category will result in the category field
missing in the exported data. This should be manually added after the import on
the target system

(#25437) Key/Value
pairs containing assetIDs are not id mapped on the destination. These need to
be manually remapped on the destination

(#25457) Segments
containing ScalarVals and HistoryVals do not get id mapped correctly. The
workaround is to recreate the Segment on the destination

(#25465) Flex
Attributes must be imported before the rest of the asset family

(#25482) Embedded
Links are not id mapped. These links will need to be updated on the destination

(#25496) CSDT
Eclipse Plug-in does not save mapped values correctly.

(#25525) Command
line option of fromSites and toSites is not supported for Tree Tab resources

(#25534) TreeTabs
can have customized elements to handle rendering logic. The elements are currently
not exported/imported along with the TreeTab. Related
elements need to be created manually.

(#25536)
SiteCatalog resources do not contain a dependency on the ElementCatalog
resource. These currently need to be exported/imported manually

(#25547)
The CSDT Eclipse Plug-in auto complete will add double quotes if your AppServer
does not support this, the double quotes must be changed to single quotes
manually

(#25550) File
timestamp should be the same as that on the asset

(#25552) CSDT
does not support assets enabled for revision tracking

CS - Desktop

(#22358)
Locale selected during creating an asset from CS-Desktop doesn't appear in
CS-Desktop before save even though its saved correctly

CS-DocLink

(#16999) CS-DocLink : Change to Doc Type does not take
effect after refresh

After
the Document Type is changed in CS, refreshing DocLink does not make this
change active - the user must logout and log back in for the change to be
effective.

(#18649) Required fields are not marked as "Required" in DocLink Edit
Configuration screen.

Required
fields are not marked as "Required" in DocLink Edit Configuration
screen. But From CS-DocLink Client interface its
prompting properly for all required fields problem only with Edit Configuration
field.

CSElement

(#14288) If a wrapper page has a "." in its name, code will not
execute.

ANY
template or site entry cannot have a "." in its name

Dash UI

(#15009) Two
instance of browsers for dash (different servers) are not allowed

(#15098)
Template drop-down does not have the correct values for basic assets

(#15099)
Dash UI - Copy keeps referenced by incorrectly

Dash UI - Copy keeps referenced by
incorrectly 1). Create a product asset - say A - (this is the master) 2).
Create a translation - say B 3). Go back to asset 'A' and click on copy (don't
click on save) Observe - In the Relation tab - the Referenced by shows 'B'. (this is because its copying everything from A - which is
incorrect) On saving - the referenced by is refreshed correctly

(#17087) Dash - Site description truncated to 20 characters in the select a
site drop down.

(#22042) Uploaded
BLOBs of 10MB or greater will lose some bytes of data. This is due to an issue
with Oracle's ADF faces upLoadFile UI component.

(#24946)
Javascript errors are thrown if the Dash UI is opened from the Dash button on
Advanced UI’s tool bar and then the user closes the Advanced UI browser window.

Database

(#3617)
ContentServer doesn't handle field length correctly
when using UTF-8.

e.g. The maximum length of asset's name
is 64 characters in html form (input type="text"
maxlength="64"). If I enter 64 letters into the text field,
SQLException occurs. That happens because the name field is VARCHAR(64), which is 64 bytes which is incorrect for
UTF-8.

Editor - eWebEditPro

(#20949)
In InSite, the text selected to add the included asset is appearing at the top
of the popup

Editor - FCKEditor

(#19369)
For assets created prior to Content Server 7.5 Patch 1 - If the first piece of
data in the FCKEditor window is an embedded link or included asset, you must
switch to source view to add additional content prior to the embedded link or
included asset. Similarly, if the last asset is an embedded link or included
asset, source view must also be used to add additional content immediately
following the link or included asset.

(#22592) LAZYLOAD
option is not supported for Basic Assets when using Safari or Firefox

Editor - ImageEditor

(#20866)
Image transparencies are replaced with a light grey color when saving an asset
with a BLOB attribute using ImageEditor.

Engage

(#18620) Static Recommendations have a strange behavior over 100

Use multiple named associations for collection purposes rather than
recommendations.

(#19182)
Recommendation selection criteria "Random" will organize based on the
weighted rating.

(#19816)
The index on VMVisitorAlias that puts a unique constraint on the combination of
visitoridentifier and visitor columns causes the page to fail to render and
stack traces will appear in the log when the same visitor visits the site
again. To resolve this issue, drop the index on this combination.

Flex Assets

(#20906)
When running Content Server on WebLogic, the "Add Another"
functionality of multivalued attributes will result in the "Select Product
Parent Definition" form being displayed

InSite Editing

(#) Multiple users editing a single asset at the same time may cause data
corruption under load conditions

(#17284)
A JavaScript error is seen on save after an InSite edit operation on a template
that has a <p> </p> tag around the insite:edit
tag for a field with editor=FCKEditor.

To workaround this issue, place the <p> and </p> inside a div tag

(#20966)
JavaScript error and lists do not update when replacing existing asset by
adding a newly created asset

(#21026)
Switching the template when an asset is in edit mode will load the asset in
preview mode, but the left nav will remain in edit mode

Install - Installer

(#15594)
When cs.use.short.jsp.names=false (the new default value - used to be true by
default), JSP elements that contain dots (such as
"www.inc.com/common/flexLinkButton ") will not get deployed properly.

They will be deployed without the .jsp
extension so the AppServer won't know how to run them. To work around this,
clients who use dots in their jsp element names should set
cs.use.short.jsp.names=true.

3. Set the
ContentServer/SatelliteServer user password with <SETVARIABLE
NAME="passwordVar" VALUE=" "/> ..specify the password in the value filed

4. Set the fwadmin user password with
<SETVARIABLE NAME="passwordAdminVar" VALUE=" "/> ..specify the password in the
value filed

5. Save the file and run the silent
install as specified in the install guide. During the delivery install make sure
Development is set to FALSE in omii.ini file -
NOTE - this is case sensitive and should be typed in all UPPERCASE

(#18198) Lock escalations may occur when Real Time
Publishing is running in multi-threaded mode using MSSQL Database.

The resolution to this is to make the
following change to adv.pub.xml:

(#23805) inCache
should be initialized on all cluster members prior to caching any pages in
order to ensure that the cache remain in sync between cluster members

Publishing

For a site that uses static publishing
when you change the template on an asset and save it, and publish, then the
asset remains in the publish list with the old template and also shows in the
new one. Changing to a 3rd template on the asset and publishing added it to the
publish list 3 times (one for each template it had been saved and published
with). This is a problem because the template the user wants is higher in the
list than the other ones, and so the html output is overwritten with one of the
template choices the user doesn't want.

(#15300) Tree tabs are NOT mirrored to the Destination system.

Tree
tabs are NOT mirrored to the Destination system when user uses the mirror site
configuration option in source system.
In order to mirror the tree tabs you need to do the following:

·Login
and go to the admin tab in the tree applet

·Go
to Sites and select a site..sat FSII

·Scroll
down and click on 'Mirror site configuration for FSII Destination (dynamic)'

·Click
'Mirror'

(#16940) RealTime: All fields (Attributes) and their corresponding data NOT
published to CS target system.

If
Mirror publish fails with an error "Address already in use: connect"
then you can set the property http.protocol.version=1.0 in the file httpaccess.properties
and try the publish again. You can create the file
httpaccess.properties in the same folder that stores the
commons-logging.properties.

Rollup

(#22438)
Exception is thrown when starting WebLogic server and after logout from
Advanced UI after rollup with WEM. This can be safely ignored.

java.net.ConnectException:
Tried all: '1' addresses, but could not connect over HTTP to server

Satellite Server

(#15219) Content Server and Satellite Server have to be in the same time zone

(#25269)
Content-type header is lost when a wrapper page is called using Co-resident
Satellite Server. Content Server logs "Unable to set header (header name)
because the header has already been committed". The workaround is to
increase the application server response buffer size.

Search

(#20900)
Lucene fails to index text that comes after dashes, underscores and other
special characters

(#21003)
If indexing takes longer than the cs.timeout setting, exceptions will be thrown
and indexing may be in an unstable state. The timeout should be adjusted based
on the size of index

(#23309) Any
modifications made to replace or customize the date attribute editor in Content
Server UIs will need to account for the possibility of the presence
of milliseconds in date fields if cs.useMilliseconds is set to true. The
Zapatec widget used by default in Advanced and Dash UIs has already been
modified to strip milliseconds, as it does not support them in its date format.

(#24827) Content
Server does not support indexing legacy Word95 documents and throws an
exception in the logs.

Search - Dash UI

ABC-DEF-HIJ is sometimes indexed as
one word and sometimes indexed separately as "ABC" and
"DEF-HIJ", when this occurs, searching for "ABC-DEF-HIJ"
will not always return the proper results.

(#20877)
Search for text within XML or HTML tags is not supported

Site Management

(#22700)
Creating a site without an InSite Preview asset results in errors in the log
which can be safely ignored and "Variables.previewAsset"
appearing in the InSite Preview Asset field in Advanced UI

Site Launcher

(#14933) Site
Launcher: the CS-Desktop information in the replicated site does not set the
description field for CS Desktop to enabled in the copied site

(#15179)
If site to be replicated is too big, then SiteLauncher takes considerable
amount of time to replicate (more than 2+ hrs).

(#16099)
Type:ID MAP entry causes error during site replication

(#18302)
Replicated FirstSite II does not work after replication if content assets are
shared

Tags

(#)
POST tag sends login and logout requests to the URL being posted.

The POST tag works
incorrectly when USERNAME, PASSWORD or LOGOUT attributes are passed to it.
Login and logout requests are sent to the URL being posted to instead of
CatalogManager. One workaround is to perform login before this tag is executed.
Alternatively, FormPoster API can be directly used to perform the post
operation.

(#2458)
SQLEXP adds a percent sign (%) to the front and back of the literal when LIKE
is used.

(#5763)
SEARCHSTATE.ADDRICHTEXTCONSTRAINT fails when the resultset returns more than
1000 rows.

(#17666) Unable to delete page and basic assets using asset:void
tag if a valid pubid is not present in session.

Workaround is to set the pubid in the session to "0", then remove it
again after voiding.

Template

(#8014)
Do not use <throwexception> in template code.

Do not use the tag
<throwexception> in the code of a template asset. <throwexception> effectively kills execution in CS
for itself and any nested or parent CS engine. This breaks template execution
and streaming of data to the client. In addition, when a user approves a
template for export publish, a <throwexception> terminates the execution
of the approval page and the user gets no feedback.

User Management - LDAP

(#16520) For LDAP - If you are using Engage specify visitor ACL for Default
Reader along with Browser ACL

(#17275) Site names that include a hyphen '-' are not supported if using LDAP

User Management

(#2153) The dir:replaceattrs tag does not give an
error when an attribute or user does not exist.

The dir:replaceattrs tag, which is part of the CS-Direct
application that Content Server uses for user management, does not throw an
exception when it is trying to replace the user attribute value of a
nonexistent user attribute or for a nonexistent user.

(#13432) Updates
made to ACLs are not reflected consistently

If the updates are made using CS User
Admin Screen, they are reflected immediately. However, if ACLs are updated
directly in LDAP server, then we recommend that you

1.Restart your
portal/Application server for the changes to take effect or

When a user has finished their assignment and the assignment
is 'queued' (in an all-voting step) the Abstain function is incorrectly missing
from the workflow actions dropdown. If this occurs when the asset is in
workflow deadlock, the user may change his vote to fix the deadlock.

XMLPost

(#1558)
XML namespaces are stripped from XML elements during evaluation.

Miscellaneous

For example, if you have a Content
Server event that is scheduled to occur every minute and one of the events took
70 seconds to execute, the next event is ignored.

(#2035) Changing
cc.contentkey causes problems.

Changing the value of the cc.contentkey property to something other than the
default value causes problems with CS tables that depend on this property.
FatWire recommends that you do not change this property.

(#13969)
<render:LogDep> could cause un-linked cache

If there is a
un-recognized rendermode passed, the system will cache the page and not log the
dependencies. This will cause the page not being flushed in anyway since there
dependencies are not there. The correct behavior should be:

When
opening documents from a URL location in Microsoft Office 2007, the Office
library makes an HTTP HEAD request to the web server for the opening URL.
Content Server does not support HEAD requests which causes this exception to
appear in the log file.

(#25183) WAS
ignores the servlet session API function setMaxInactiveInterval setting which
is set from cs.timeout. To set the session inactive timeout use the WAS admin
console to change the session setting for the application or place the timeout
value appropriately in the web.xml file.

(#25553) Preview
functionality does not work if values are specified in previewhost and
previewservlet and you preview using the InSite button

Known
Issues / Limitations in Web Experience Management 1.1

Articles Sample Application

(#22461)
Creating / Inspecting FW_ArticleAsset from Advanced UI throws the following
exception in the log which can be safely ignored:

[CS.DB][ERROR]
No where clause value for column category in table Category
[CS.DB][ERROR] Unable to build a where clause from columns category,assettype
for query CategoryDescription

REST API

(#21510)
AssetMaker AssetType presentation in Advanced UI is not preserved when created
through REST API

The INPUTFORM tag support is limited in ASSET
API when creating basic asset types via REST. As a result, unsupported
INPUTFORM TYPES are interpreted as <INPUTFORM TYPE="TEXT"
WIDTH="48" REQUIRED="YES"/>. In order for users to see
proper asset type attributes in Content Server UI's, the INPUTFORM tags need to
be updated in the asset descriptor file through the database (AssetType table
in CSE).

(#21531)
Although description is a required attribute for a Site, the Sites REST service
doesn't validate for a Site description during create/edit.

(#21535)
If you delete a role via REST, the corresponding entry for Site and Users is
not deleted

Use WEM Admin UI to delete a role or manually
clean up the UserPublication table to remove the dependencies

(#21835)
Setting BufferingConfig.xml to use multiple threads is not supported

(#21956)
When using REST API the following message is displayed on the server side and
can be safely ignored:

com.sun.jersey.core.impl.provider.xml.SAXParserContextProvider
getInstance
WARNING: JAXP feature XMLConstants.FEATURE_SECURE_PROCESSING cannot be set on a
SAXParserFactory. External general entity processing is disbaled but other
potential securty related features will not be enabled.
org.xml.sax.SAXNotRecognizedException:
http://javax.xml.XMLConstants/feature/secure-processing

(#22366)
Multivalued association is not returned with the ordinal value

(#22441)
Deleted groups are not deleted from the Security Configuration.

The group can be manually deleted by removing
the entries from the FW_CSSecurityConfig table.

(#22499)
When under load, the following exception may occur when using Buffered Writes, this can be safely ignored as the data is properly
returned: