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?