Exception in thread "AWT-EventQueue-0" oracle.jbo.JboException: JBO-29000: Unexpected exception caught: org.codehaus.groovy.control.MultipleCompilationErrorsException, msg=startup failed: General error during semantic analysis: JBO-25152: Calling the constructor for class oracle.jbo.Key is not permitted. oracle.jbo.ExprSecurityException: JBO-25152: Calling the constructor for class oracle.jbo.Key is not permitted. at oracle.jbo.script.InternalSecurityPolicyEnforcer.checkConstructor(InternalSecurityPolicyEnforcer.java:304) at oracle.jbo.script.ExprASTScanningVisitor.visitConstructorCallExpression(ExprASTScanningVisitor.java:127) at org.codehaus.groovy.ast.expr.ConstructorCallExpression.visit(ConstructorCallExpression.java:44) at org.codehaus.groovy.ast.CodeVisitorSupport.visitBinaryExpression(CodeVisitorSupport.java:144) at org.codehaus.groovy.ast.CodeVisitorSupport.visitDeclarationExpression(CodeVisitorSupport.java:245) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitDeclarationExpression(ClassCodeVisitorSupport.java:107) at org.codehaus.groovy.ast.expr.DeclarationExpression.visit(DeclarationExpression.java:86) at org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:69) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:193) at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40) at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163) at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) at org.codehaus.groovy.ast.CodeVisitorSupport.visitTryCatchFinally(CodeVisitorSupport.java:82) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitTryCatchFinally(ClassCodeVisitorSupport.java:228) at org.codehaus.groovy.ast.stmt.TryCatchStatement.visit(TryCatchStatement.java:42) at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163) at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) at oracle.jbo.script.ExprASTScan.visit(ExprASTScan.java:97) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.codehaus.groovy.control.customizers.ASTTransformationCustomizer.call(ASTTransformationCustomizer.groovy:232) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1036) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:572) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:550) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:279) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:258) at groovy.lang.GroovyShell.parseClass(GroovyShell.java:613) at groovy.lang.GroovyShell.parse(GroovyShell.java:625) at groovy.lang.GroovyShell.parse(GroovyShell.java:652) at oracle.jbo.ExprEval.parseScript(ExprEval.java:1571) at oracle.jbo.ExprEval.findScript(ExprEval.java:1152) at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:1956) at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:1928) at oracle.jbo.ExprEval.evaluateForRow(ExprEval.java:1647) at oracle.jbo.server.AttributeDefImpl.evaluateTransientExpression(AttributeDefImpl.java:2486) at oracle.jbo.server.ViewRowStorage.getAttributeInternal(ViewRowStorage.java:1947) at oracle.jbo.server.ViewRowImpl.getAttributeValue(ViewRowImpl.java:2036) at oracle.jbo.server.ViewRowImpl.getAttributeInternal(ViewRowImpl.java:886) at oracle.jbo.server.ViewRowImpl.getAttrInvokeAccessor(ViewRowImpl.java:968) at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:916) at oracle.jbo.uicli.binding.JUCtrlValueBinding.internalGetAttributeValueFromRow(JUCtrlValueBinding.java:1248) at oracle.jbo.uicli.binding.JUCtrlListBinding.getTargetRowData(JUCtrlListBinding.java:1988) at oracle.jbo.uicli.binding.JUCtrlListBinding.matchTargetWithLov(JUCtrlListBinding.java:2064) at oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndexInternal(JUCtrlListBinding.java:2522) at oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndex(JUCtrlListBinding.java:2261) at oracle.jbo.uicli.binding.JUCtrlListBinding.findAndUpdateSelectedIndex(JUCtrlListBinding.java:2227) at oracle.jbo.uicli.jui.JUComboBoxCtrlBinding.setValueAt(JUComboBoxCtrlBinding.java:546) at oracle.jbo.uicli.binding.JUCtrlListBinding.updateValuesFromRow(JUCtrlListBinding.java:2885) at oracle.jbo.uicli.jui.JUComboBoxBinding.updateValuesFromRow(JUComboBoxBinding.java:193) at oracle.jbo.uicli.jui.JUComboBoxCtrlBinding.updateValueToCurrentRow(JUComboBoxCtrlBinding.java:505) at oracle.jbo.uicli.jui.JUComboBoxCtrlBinding$1mRunnable.run(JUComboBoxCtrlBinding.java:417) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 1 error at oracle.jbo.ExprEval.parseScript(ExprEval.java:1594) at oracle.jbo.ExprEval.findScript(ExprEval.java:1152) at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:1956) at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:1928) at oracle.jbo.ExprEval.evaluateForRow(ExprEval.java:1647) at oracle.jbo.server.AttributeDefImpl.evaluateTransientExpression(AttributeDefImpl.java:2486) at oracle.jbo.server.ViewRowStorage.getAttributeInternal(ViewRowStorage.java:1947) at oracle.jbo.server.ViewRowImpl.getAttributeValue(ViewRowImpl.java:2036) at oracle.jbo.server.ViewRowImpl.getAttributeInternal(ViewRowImpl.java:886) at oracle.jbo.server.ViewRowImpl.getAttrInvokeAccessor(ViewRowImpl.java:968) at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:916) at oracle.jbo.uicli.binding.JUCtrlValueBinding.internalGetAttributeValueFromRow(JUCtrlValueBinding.java:1248) at oracle.jbo.uicli.binding.JUCtrlListBinding.getTargetRowData(JUCtrlListBinding.java:1988) at oracle.jbo.uicli.binding.JUCtrlListBinding.matchTargetWithLov(JUCtrlListBinding.java:2064) at oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndexInternal(JUCtrlListBinding.java:2522) at oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndex(JUCtrlListBinding.java:2261) at oracle.jbo.uicli.binding.JUCtrlListBinding.findAndUpdateSelectedIndex(JUCtrlListBinding.java:2227) at oracle.jbo.uicli.jui.JUComboBoxCtrlBinding.setValueAt(JUComboBoxCtrlBinding.java:546) at oracle.jbo.uicli.binding.JUCtrlListBinding.updateValuesFromRow(JUCtrlListBinding.java:2885) at oracle.jbo.uicli.jui.JUComboBoxBinding.updateValuesFromRow(JUComboBoxBinding.java:193) at oracle.jbo.uicli.jui.JUComboBoxCtrlBinding.updateValueToCurrentRow(JUComboBoxCtrlBinding.java:505) at oracle.jbo.uicli.jui.JUComboBoxCtrlBinding$1mRunnable.run(JUComboBoxCtrlBinding.java:417) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during semantic analysis: JBO-25152: Calling the constructor for class oracle.jbo.Key is not permitted.
This error occurs because of the difference between the EO.xml in ADF 11.x and 12.x.
ADF 12.x adds "trustMode" attribute to the groovy expression definition. By example:
<ViewAttribute
Name="Ikona"
IsUpdateable="false"
IsSelected="false"
IsPersistent="false"
PrecisionRule="true"
Type="java.lang.String"
ColumnType="CHAR"
AliasName="VIEW_ATTR"
SQLType="VARCHAR"
Passivate="true">
<TransientExpression><![CDATA[try{
oracle.jbo.Key key2 = new oracle.jbo.Key(GrupaZainteresowanId);
if(GrupyZainteresowanLov1.findByKey(key2,1)[0]==null) return "";
else return GrupyZainteresowanLov1.findByKey(key2,1)[0].getAttribute("Ikona");
}
catch(e){
return "Blad: "+e.toString();
}]]></TransientExpression>
<RecalcCondition
trustMode="trusted"><![CDATA[true]]></RecalcCondition>
</ViewAttribute>
As shown in ADF 12.1.3.0 release note:
"JDeveloper 12.1.3 and ADF has introduced a tightening security model for ADF BC Groovy expressions as a stepping stone for upcoming Oracle products. Oracle is progressively introducing this feature to reduce the burden on customers.
For any new ADF application, customers must set via the property inspector trustMode="true" for any ADF BC attributes or similar using a Groovy expression. Otherwise at runtime JBO-25152 will be raised.
For customers porting applications from previous releases of JDeveloper the trustMode will be set to true for existing Groovy expressions, though any new expressions still require developers explicitly set the trustMode."
Just as it is written the groovy expressions are executed by default in untrusted mode.
So you should change trustMode="untrusted" to "trusted"(in xml or through Property Inspector).
No comments:
Post a Comment