You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Paul Santa Maria <pa...@yahoo.com.INVALID> on 2015/12/13 06:51:18 UTC

DotCMIS not throwing an exception for a failed Alfresco query

I'm using DotCMIS 0.7 against IBM P8 5.2 fncmis and Alfresco 5.0.d repositories.  This query works fine for P8, and fails for Alfresco:
  ' Execute the query
  Dim queryResults As IItemEnumerable(Of IQueryResult)
  Try
    queryResults = m_Session.Query("select * from EntryTemplate where VersionStatus=1", False)
    If queryResults.PageNumItems < 0 Then Exit Function
  Catch ex As Exception
    m_ErrorString = ex.Message
    Exit Function
  End Try
PROBLEM:Even though Alfresco is returning an HTTP error 400, DotCMIS isn't throwing an exception.  Instead, it hangs for about two minutes, then finally gets a network "Timeout" error.
Alfresco URI:POST http://centos7:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom/query HTTP/1.1

Alfresco Response:HTTP 400:<html><head><title>Apache Chemistry OpenCMIS - invalidArgument error</title><style><!--H1 {font-size:24px;line-height:normal;font-weight:bold;background-color:#f0f0f0;color:#003366;border-bottom:1px solid #3c78b5;padding:2px;} BODY {font-family:Verdana,arial,sans-serif;color:black;font-size:14px;} HR {color:#3c78b5;height:1px;}--></style></head><body><h1>HTTP Status 400 - <!--exception-->invalidArgument<!--/exception--></h1><p><!--message-->Type is unsupported in query: EntryTemplate<!--/message--></p><hr noshade='noshade'/><!--stacktrace--><pre>
org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException: Type is unsupported in query: EntryTemplate
    at org.alfresco.opencmis.search.CMISQueryParser.buildSource(CMISQueryParser.java:1412)
    at org.alfresco.opencmis.search.CMISQueryParser.parse(CMISQueryParser.java:139)
    at org.alfresco.repo.search.impl.solr.DbCmisQueryLanguage.executeQueryImpl(DbCmisQueryLanguage.java:116)
        ...

Q: How is Alfresco *supposed* to respond so that DotCMIS will detect an error and throw an exception?  Is HTTP status 400 sufficient, or should Alfresco do "something else"?
Q:Is there any way to make DotCMIS respond to an HTTP 400 by throwing a .Net exception?

Re: DotCMIS not throwing an exception for a failed Alfresco query

Posted by Florian Müller <fm...@apache.org>.
Hi Paul,

Please check if and how many concurrent connections you have open to the 
Alfresco server.
.Net limits the number of concurrent connections to a server. Starving 
requests eventually fail with a timeout. See also CMIS-559 [1].

- Florian


[1] https://issues.apache.org/jira/browse/CMIS-559



> I'm using DotCMIS 0.7 against IBM P8 5.2 fncmis and Alfresco 5.0.d
> repositories.  This query works fine for P8, and fails for Alfresco:
>   ' Execute the query
>   Dim queryResults As IItemEnumerable(Of IQueryResult)
>   Try
>     queryResults = m_Session.Query("select * from EntryTemplate where
> VersionStatus=1", False)
>     If queryResults.PageNumItems < 0 Then Exit Function
>   Catch ex As Exception
>     m_ErrorString = ex.Message
>     Exit Function
>   End Try
> PROBLEM:Even though Alfresco is returning an HTTP error 400, DotCMIS
> isn't throwing an exception.  Instead, it hangs for about two minutes,
> then finally gets a network "Timeout" error.
> Alfresco URI:POST
> http://centos7:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom/query
> HTTP/1.1
> 
> Alfresco Response:HTTP 400:<html><head><title>Apache Chemistry
> OpenCMIS - invalidArgument error</title><style><!--H1
> {font-size:24px;line-height:normal;font-weight:bold;background-color:#f0f0f0;color:#003366;border-bottom:1px
> solid #3c78b5;padding:2px;} BODY
> {font-family:Verdana,arial,sans-serif;color:black;font-size:14px;} HR
> {color:#3c78b5;height:1px;}--></style></head><body><h1>HTTP Status 400
> -
> <!--exception-->invalidArgument<!--/exception--></h1><p><!--message-->Type
> is unsupported in query: EntryTemplate<!--/message--></p><hr
> noshade='noshade'/><!--stacktrace--><pre>
> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException:
> Type is unsupported in query: EntryTemplate
>     at
> org.alfresco.opencmis.search.CMISQueryParser.buildSource(CMISQueryParser.java:1412)
>     at
> org.alfresco.opencmis.search.CMISQueryParser.parse(CMISQueryParser.java:139)
>     at
> org.alfresco.repo.search.impl.solr.DbCmisQueryLanguage.executeQueryImpl(DbCmisQueryLanguage.java:116)
>         ...
> 
> Q: How is Alfresco *supposed* to respond so that DotCMIS will detect
> an error and throw an exception?  Is HTTP status 400 sufficient, or
> should Alfresco do "something else"?
> Q:Is there any way to make DotCMIS respond to an HTTP 400 by throwing
> a .Net exception?