deleteContentRelations

I have been struggling for more than a day now with this null pointer exception. I have confirmed multiple times that the guid list is not null, and the guids being supplied are valid.

Whenever I invoke deleteContentRelations(sortedListOfGuids), I get the following exception. I have verified that sortedListOfGuids is not NULL and it does have some valid Guids in it.
[I]
10:55:17,679 INFO [PSVelocityAssembler] Velocity reinitialized
10:55:29,743 INFO [PSServerLogHandler] appid: 0 type: 1 time: Fri Sep 18 10:55:
29 EDT 2009 msg: An internal error (end-condition) was encountered. An unexpecte
d exception occurred:
An unexpected exception occurred. The reason was: No user name set in current re
quest information. Please consult the log for further information…
The call-stack was:
java.lang.IllegalStateException: No user name set in current request information

    at com.percussion.webservices.PSWebserviceUtils.getUserName(Unknown Sour

ce)
at com.percussion.webservices.content.impl.PSContentWs.getItemSummaries(
Unknown Source)
at com.percussion.webservices.content.impl.PSContentWs.findDependents(Un
known Source)
at com.gsa.usagov.url.ExtensionsUtil.getDependents(ExtensionsUtil.java:1
25)
at com.gsa.usagov.url.GSA_SortLink.preProcessRequest(GSA_SortLink.java:5
3)
at com.percussion.data.PSExtensionRunner.preProcessRequest(Unknown Sourc
e)
at com.percussion.data.wb.runPreProcessingExtensions(Unknown Source)
at com.percussion.data.wb.runPreProcessingExtensions(Unknown Source)
at com.percussion.cms.handlers.PSQueryCommandHandler.o00000(Unknown Sour
ce)
at com.percussion.cms.handlers.PSQueryCommandHandler.getResultDocument(U
nknown Source)
at com.percussion.cms.handlers.PSContentEditorHandler.getResultDocument(
Unknown Source)
at com.percussion.server.PSInternalRequest.o00000(Unknown Source)
at com.percussion.server.PSInternalRequest.getResultDoc(Unknown Source)
at com.percussion.cms.objectstore.server.PSServerItem.o00000(Unknown Sou
rce)
at com.percussion.cms.objectstore.server.PSServerItem.o00000(Unknown Sou
rce)
at com.percussion.cms.objectstore.server.PSServerItem.load(Unknown Sourc
e)
at com.percussion.cms.objectstore.server.PSServerItem.load(Unknown Sourc
e)
at com.percussion.cms.objectstore.server.PSServerItem.<init>(Unknown Sou
rce)
at com.percussion.cms.objectstore.server.PSServerItem.loadItem(Unknown S
ource)
at com.percussion.search.i.super(Unknown Source)
at com.percussion.search.i.super(Unknown Source)
at com.percussion.search.i.super(Unknown Source)
at com.percussion.search.i$1.run(Unknown Source)

10:55:29,743 ERROR [FTSIndexQueue] An unexpected exception occurred. The reason
was: No user name set in current request information. Please consult the log for
further information.
10:56:16,229 INFO [PSServerLogHandler] appid: 0 type: 1 time: Fri Sep 18 10:56:
16 EDT 2009 msg: An internal error (end-condition) was encountered. An unexpecte
d exception occurred:
An unexpected exception occurred. The reason was: java.lang.NullPointerException
. Please consult the log for further information…
The call-stack was:
java.lang.NullPointerException
at com.percussion.webservices.PSWebserviceUtils.deleteRelationships(Unkn
own Source)
at com.percussion.webservices.content.impl.PSContentWs.deleteContentRela
tions(Unknown Source)
at com.gsa.usagov.url.GSA_SortLink.preProcessRequest(GSA_SortLink.java:6
0)
at com.percussion.data.PSExtensionRunner.preProcessRequest(Unknown Sourc
e)
at com.percussion.data.wb.runPreProcessingExtensions(Unknown Source)
at com.percussion.data.wb.runPreProcessingExtensions(Unknown Source)
at com.percussion.cms.handlers.PSModifyCommandHandler.╥00000(Unknown Sou
rce)
at com.percussion.cms.handlers.PSModifyCommandHandler.processRequest(Unk
nown Source)
at com.percussion.cms.handlers.PSContentEditorHandler.processRequest(Unk
nown Source)
at com.percussion.server.PSApplicationHandler.processRequest(Unknown Sou
rce)
at com.percussion.servlets.PSAppServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
at com.percussion.webdav.PSWebDavRequestFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
at com.percussion.servlets.PSSecurityFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
at com.percussion.servlets.PSCharacterSetFilter.doFilter(Unknown Source)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl

icationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
lter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:178)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrinc
ipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:159)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
e.java:59)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWor
kerThread.java:112)
at java.lang.Thread.run(Unknown Source)

10:56:16,291 ERROR [Cms] An unexpected exception occurred. The reason was: java.
lang.NullPointerException. Please consult the log for further information.[/I]

thanks
Manvinder

What about a user name? Did you verify that was being sent with your request?

Per Javadocs, the API for this method only takes one parameter which is a list of GUIDs.
void deleteContentRelations(List<IPSGuid> ids)

The version that takes the user, says it is deprecated.
Moreover, this method is being invoked from within a preprocessor extension.

manvinder

Also I dont understand how does this method works. It only takes the list of GUIDs of the content items. The same content item can possibly be added to one or more slots. Since it doesnot takes the slot name or the parent GUID, how does it knows from which slot to delete the content item relation.

manvinder

This method wants the GUID of the relationship, not the GUID of the item.

you have get the relationships (with loadContentRelations), then build a list of GUIDs by calling the getGUID() method on each relationship.