Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-06-02 07:26:47 +0000
committerEike Stepper2012-06-02 07:26:47 +0000
commit0d246d80886db8074b1f9ff4f313eb774c68e9e0 (patch)
treed8027b053c1b0a6e6bf63df96fcc5f1f15ddc616 /plugins/org.eclipse.emf.cdo.server.ocl
parent437960de3b5bba1772eaba6e1a2509ad264161b7 (diff)
downloadcdo-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.java28
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);
}

Back to the top