Issue 1:
Oliver Becker opened SPR-9164 and commented

When doing number arithmetic in SpEL the result type is apparently one of double, long or int.

This has the unwanted effect that for example float or BigDecimal values will be changed to int.

new java.math.BigDecimal("12.34")

evaluates to 12.34

-(new java.math.BigDecimal("12.34"))

evaluates to -12

see org.springframework.expression.spel.ast

OpPlus, OpMinus, OpMultiply, OpDivide

Affects: 3.1.1

Reference URL: #80

Attachments:

SpELFloatLiteralTest.java (1.24 kB)

Issue Links:

#13358 Expression language not compare BigDecimals with integers ("is duplicated by")

#13832 SpEL: OpEQ should use equals()

#15943 Downgrade accidental use of Java 1.7 APIs

#14121 Add SpEL support for float literals

#14546 SpEL's arithmetic operations should explicitly detect BigInteger/Short/Byte and fall back to double handling for unknown Number subtypes

1 votes, 7 watchers

Issue 2:
David J. M. Karlsen opened SPR-1371 and commented

Using JamonPerformanceMonitorInterceptor while log4j is in debug level will consistently fail (eg. each time) with a NPE:

Trace from server: 1198777258 at host localhost >>

java.rmi.RemoteException: ; nested exception is:

java.lang.NullPointerException

java.lang.NullPointerException

at java.lang.String.length(String.java(Inlined Compiled Code))

at java.lang.StringBuffer.<init>(StringBuffer.java(Compiled Code))

at org.springframework.aop.interceptor.AbstractPerformanceMonitorInterceptor.createInvocationTraceName(AbstractPerformanceMonitorInterceptor.java:80)

at org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor.invokeUnderTrace(JamonPerformanceMonitorInterceptor.java:57)

at org.springframework.aop.interceptor.AbstractTraceInterceptor.invoke(AbstractTraceInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)

at $Proxy0.findAccountData(Unknown Source)

at my.package.crg.server.func.ejb.CRGServiceBean.findAccountData(CRGServiceBean.java:77)

at my.package.crg.server.func.ejb.EJSRemoteStatelessCRGService_692891ba.findAccountData(EJSRemoteStatelessCRGService_692891ba.java:35)

at my.package.crg.server.func.ejb._EJSRemoteStatelessCRGService_692891ba_Tie.findAccountData(_EJSRemoteStatelessCRGService_692891ba_Tie.java:158)

at no.dnbnor.crg.server.func.ejb._EJSRemoteStatelessCRGService_692891ba_Tie._invoke(_EJSRemoteStatelessCRGService_692891ba_Tie.java:82)

at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:615)

at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:468)

at com.ibm.rmi.iiop.ORB.process(ORB.java:396)

at com.ibm.CORBA.iiop.ORB.process(ORB.java:1608)

at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2164)

at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)

at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)

<< END server: 1198777258 at host localhost

Affects: 1.2.5

Issue Links:

#6161 Nullpointerexception in StringBuffer when using the org.springframework.aop.interceptor.PerformanceMonitorInterceptor ("is duplicated by")