diff options
author | Eike Stepper | 2012-06-02 07:26:47 +0000 |
---|---|---|
committer | Eike Stepper | 2012-06-02 07:26:47 +0000 |
commit | 0d246d80886db8074b1f9ff4f313eb774c68e9e0 (patch) | |
tree | d8027b053c1b0a6e6bf63df96fcc5f1f15ddc616 /plugins/org.eclipse.emf.cdo.server.ocl | |
parent | 437960de3b5bba1772eaba6e1a2509ad264161b7 (diff) | |
download | cdo-0d246d80886db8074b1f9ff4f313eb774c68e9e0.tar.gz cdo-0d246d80886db8074b1f9ff4f313eb774c68e9e0.tar.xz cdo-0d246d80886db8074b1f9ff4f313eb774c68e9e0.zip |
[381410] IllegalStateException from OCL query with non-Collection result
https://bugs.eclipse.org/bugs/show_bug.cgi?id=381410
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.ocl')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.ocl/src/org/eclipse/emf/cdo/server/ocl/OCLQueryHandler.java | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.ocl/src/org/eclipse/emf/cdo/server/ocl/OCLQueryHandler.java b/plugins/org.eclipse.emf.cdo.server.ocl/src/org/eclipse/emf/cdo/server/ocl/OCLQueryHandler.java index 93bf2fc678..03eb11f66c 100644 --- a/plugins/org.eclipse.emf.cdo.server.ocl/src/org/eclipse/emf/cdo/server/ocl/OCLQueryHandler.java +++ b/plugins/org.eclipse.emf.cdo.server.ocl/src/org/eclipse/emf/cdo/server/ocl/OCLQueryHandler.java @@ -158,7 +158,20 @@ public class OCLQueryHandler implements IQueryHandler } Object result = evaluate(query, object); - addResult(result, context, view); + if (result instanceof Collection<?>) + { + for (Object element : (Collection<?>)result) + { + if (!addResult(element, context, view)) + { + break; + } + } + } + else + { + addResult(result, context, view); + } } catch (Exception ex) { @@ -181,19 +194,6 @@ public class OCLQueryHandler implements IQueryHandler return context.addResult(revision); } - if (result instanceof Collection<?>) - { - for (Object element : (Collection<?>)result) - { - if (!addResult(element, context, view)) - { - return false; - } - } - - return true; - } - return context.addResult(result); } |